执行下列命令语句
sqlplus / as sysdba < create tablespace test datafile '/data/test01.dbf' size 10240M; quit; EOF 通过ps -ef|grep sqlplus命令得到上面所执行的命令的进程id为:12345 (1)关于v$process 执行下面的SQL是查不到相关的信息: select * from v$process where spid='12345'; 因为这个spid字段对应的并不是我们用ps命令从系统中查询到的进程id,而是这个进程执行的当前SQL的进程id, 也就是上面命令中的“create tablespace test datafile '/data/test01.dbf' size 10240M;”所对应的进程id,如果想 通过用ps命令从系统中查询到的进程id查看对应的信息,那么必须使用下面语句: select spid,sid,process,sql_address from v$session where process='12345' 上面sql中的process就是通过ps查看的进程id,而spid就是里面的sql语句所对应的进程id。 还可以通过上面的sql_address 查看正在执行的SQL语句内容: select sql_text from v$sqlarea s,v$session ses where s.address=ses.sql_address and ses.process='12345'; (2)关于v$session (3)几个相关的SQL --查看系统进程对应的信息 --查看会话对应的sql内容
select se.saddr,se.sid,se.serial#,p.pid,se.paddr,s.sql_id,s.sql_text
from v$session se ,v$process p, v$sqlarea s
where se.paddr=p.addr and se.sql_address=s.address and se.process='&1'
and se.username is not null
--查看所有的会话
select se.username,se.saddr,se.sid,se.serial#,se.process,s.sql_id
from v$session se,v$sqlarea s
where se.sql_address=s.address
select se.username,se.process,s.sql_text
from v$session se,v$sqlarea s
where se.sql_address=s.address and s.sql_id='&1'