oracle

推荐列表 站点导航

当前位置:首页 > 数据库 > oracle >

探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句

来源:网络整理  作者:  发布时间:2020-12-15 21:30
本篇文章是对Oracle数据库查看一个进程是如何执行相关的实际SQL语句进行了详细的分析介绍,需要的朋友参考下...
v$rollstat r,



6,'Update',
where se.paddr=p.addr and se.sql_address=s.address and se.process='&1'

复制代码 代码如下:

sqlplus / as sysdba <<EOF

select se.username,se.saddr,se.sid,se.serial#,se.process,s.sql_id


查询前台发出的SQL语句.

(SELECT paddr FROM v$session WHERE sid=&sid);

复制代码 代码如下:

--查看系统进程对应的信息
其他
create tablespace test datafile '/data/test01.dbf' size 10240M;
quit;
21,'Create View',
执行下列命令语句

where s.paddr = p.addr
select * from v$process where spid='12345';

复制代码 代码如下:

63,'Analyze Index',
EOF
FROM v$session b
WHERE a.sql_address = b.address;

select se.username,se.process,s.sql_text

复制代码 代码如下:

v$transaction t,




还可以通过上面的sql_address 查看正在执行的SQL语句内容:
where se.sql_address=s.address and s.sql_id='&1'
from v$session se,v$sqlarea s
35,'Alter Database',
FROM v$sql t1, v$session t2
select sql_text from v$sqlarea s,v$session ses where s.address=ses.sql_address and ses.process='12345';


通过ps -ef|grep sqlplus命令得到上面所执行的命令的进程id为:12345
select
where se.sql_address=s.address
SELECT sql_text


from v$session se ,v$process p, v$sqlarea s
(3)几个相关的SQL
and r.usn = n.usn (+)



9,'Create Index',
SELECT DECODE (sql_hash_value,0, prev_hash_value,sql_hash_value ),


也就是上面命令中的“create tablespace test datafile '/data/test01.dbf' size 10240M;”所对应的进程id,如果想
41,'Drop Tablespace',
7,'Delete',
根据SPID查询session


--查看所有的会话
substr(s.username,1,18) username,substr(s.program,1,15) program,p.spid,s.process,
and t.xidusn = r.usn (+)
(select sid from (select sid,serial#,username,program from v$session where status='ACTIVE'));
(1)关于v$process

复制代码 代码如下:

53,'Drop User',
上面sql中的process就是通过ps查看的进程id,而spid就是里面的sql语句所对应的进程id。
AND t2.sid = &sid;
根据process查询sql语句
SELECT * FROM v$session WHERE paddr IN

from
ORDER BY piece ASC;
WHERE c.spid = '$processID'))

执行下面的SQL是查不到相关的信息:
v$session s,
通过用ps命令从系统中查询到的进程id查看对应的信息,那么必须使用下面语句:

SELECT * FROM v$process WHERE addr IN
--查看会话对应的sql内容
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
23,'Validate Index',
15,'Alter Table',

复制代码 代码如下:

v$process p,
WHERE b.paddr = (SELECT addr
SELECT sql_text

0,'No Command',
select se.saddr,se.sid,se.serial#,p.pid,se.paddr,s.sql_id,s.sql_text
decode(s.command,
FROM v$sqltext a
v$rollname n

SELECT b.sql_text, sid, serial#, osuser, machine
s.command||': Other') command
(2)关于v$session
from v$session se,v$sqlarea s
order by username
因为这个spid字段对应的并不是我们用ps命令从系统中查询到的进程id,而是这个进程执行的当前SQL的进程id,

复制代码 代码如下:

40,'Alter Tablespace',
from v$open_cursor
39,'Create Tablespace',
在查询 v$session 视图的时候,我们根据command字段内部表示解码每一个字段,当我们需要快速找出他们的 Oracle 系统的内部情况时非常有用。
根据SID查询process
DBA如何查询其他用户所进行的操作
and se.username is not null
WHERE t1.address = t2.sql_address
select spid,sid,process,sql_address from v$session where process='12345'

复制代码 代码如下:

1,'Create Table',

复制代码 代码如下:

select user_name,sql_text
3,'Select',
2,'Insert',

and s.taddr = t.addr (+)

复制代码 代码如下:

WHERE (a.hash_value, a.address) IN (
FROM v$process c

FROM v$session a, v$sqlarea b
62,'Analyze Table',


复制代码 代码如下:

where sid in
(SELECT addr FROM v$process WHERE spid=&spid);

相关热词: oracle oracle数据库 SQL语句

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/oracle/4241.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句

2020-12-15 编辑:

v$rollstat r,



6,'Update',
where se.paddr=p.addr and se.sql_address=s.address and se.process='&1'

复制代码 代码如下:

sqlplus / as sysdba <<EOF

select se.username,se.saddr,se.sid,se.serial#,se.process,s.sql_id


查询前台发出的SQL语句.

(SELECT paddr FROM v$session WHERE sid=&sid);

复制代码 代码如下:

--查看系统进程对应的信息
其他
create tablespace test datafile '/data/test01.dbf' size 10240M;
quit;
21,'Create View',
执行下列命令语句

where s.paddr = p.addr
select * from v$process where spid='12345';

复制代码 代码如下:

63,'Analyze Index',
EOF
FROM v$session b
WHERE a.sql_address = b.address;

select se.username,se.process,s.sql_text

复制代码 代码如下:

v$transaction t,




还可以通过上面的sql_address 查看正在执行的SQL语句内容:
where se.sql_address=s.address and s.sql_id='&1'
from v$session se,v$sqlarea s
35,'Alter Database',
FROM v$sql t1, v$session t2
select sql_text from v$sqlarea s,v$session ses where s.address=ses.sql_address and ses.process='12345';


通过ps -ef|grep sqlplus命令得到上面所执行的命令的进程id为:12345
select
where se.sql_address=s.address
SELECT sql_text


from v$session se ,v$process p, v$sqlarea s
(3)几个相关的SQL
and r.usn = n.usn (+)



9,'Create Index',
SELECT DECODE (sql_hash_value,0, prev_hash_value,sql_hash_value ),


也就是上面命令中的“create tablespace test datafile '/data/test01.dbf' size 10240M;”所对应的进程id,如果想
41,'Drop Tablespace',
7,'Delete',
根据SPID查询session


--查看所有的会话
substr(s.username,1,18) username,substr(s.program,1,15) program,p.spid,s.process,
and t.xidusn = r.usn (+)
(select sid from (select sid,serial#,username,program from v$session where status='ACTIVE'));
(1)关于v$process

复制代码 代码如下:

53,'Drop User',
上面sql中的process就是通过ps查看的进程id,而spid就是里面的sql语句所对应的进程id。
AND t2.sid = &sid;
根据process查询sql语句
SELECT * FROM v$session WHERE paddr IN

from
ORDER BY piece ASC;
WHERE c.spid = '$processID'))

执行下面的SQL是查不到相关的信息:
v$session s,
通过用ps命令从系统中查询到的进程id查看对应的信息,那么必须使用下面语句:

SELECT * FROM v$process WHERE addr IN
--查看会话对应的sql内容
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
23,'Validate Index',
15,'Alter Table',

复制代码 代码如下:

v$process p,
WHERE b.paddr = (SELECT addr
SELECT sql_text

0,'No Command',
select se.saddr,se.sid,se.serial#,p.pid,se.paddr,s.sql_id,s.sql_text
decode(s.command,
FROM v$sqltext a
v$rollname n

SELECT b.sql_text, sid, serial#, osuser, machine
s.command||': Other') command
(2)关于v$session
from v$session se,v$sqlarea s
order by username
因为这个spid字段对应的并不是我们用ps命令从系统中查询到的进程id,而是这个进程执行的当前SQL的进程id,

复制代码 代码如下:

40,'Alter Tablespace',
from v$open_cursor
39,'Create Tablespace',
在查询 v$session 视图的时候,我们根据command字段内部表示解码每一个字段,当我们需要快速找出他们的 Oracle 系统的内部情况时非常有用。
根据SID查询process
DBA如何查询其他用户所进行的操作
and se.username is not null
WHERE t1.address = t2.sql_address
select spid,sid,process,sql_address from v$session where process='12345'

复制代码 代码如下:

1,'Create Table',

复制代码 代码如下:

select user_name,sql_text
3,'Select',
2,'Insert',

and s.taddr = t.addr (+)

复制代码 代码如下:

WHERE (a.hash_value, a.address) IN (
FROM v$process c

FROM v$session a, v$sqlarea b
62,'Analyze Table',


复制代码 代码如下:

where sid in
(SELECT addr FROM v$process WHERE spid=&spid);

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/oracle/4241.shtml

相关文章

风云图片

推荐阅读

返回oracle频道首页