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


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

复制代码 代码如下:

SELECT b.sql_text, sid, serial#, osuser, machine 
    FROM v$session a, v$sqlarea b 
    WHERE a.sql_address = b.address; 

查询前台发出的SQL语句.
复制代码 代码如下:

select user_name,sql_text 
from v$open_cursor 
where sid in
(select sid from (select sid,serial#,username,program from v$session where status='ACTIVE'));

根据SPID查询session
复制代码 代码如下:

SELECT * FROM v$session WHERE paddr IN
(SELECT addr FROM v$process WHERE spid=&spid);

根据SID查询process
复制代码 代码如下:

SELECT * FROM v$process WHERE addr IN
(SELECT paddr FROM v$session WHERE sid=&sid);

DBA如何查询其他用户所进行的操作
复制代码 代码如下:

SELECT sql_text 
FROM v$sql t1, v$session t2 
WHERE t1.address = t2.sql_address 
AND t2.sid = &sid;

根据process查询sql语句
复制代码 代码如下:

SELECT  sql_text
    FROM v$sqltext a
   WHERE (a.hash_value, a.address) IN (
            SELECT DECODE (sql_hash_value,0, prev_hash_value,sql_hash_value ),
                           DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
              FROM v$session b
              WHERE b.paddr = (SELECT addr
                                FROM v$process c
                                WHERE c.spid = '$processID'))
ORDER BY piece ASC;

其他
执行下列命令语句
复制代码 代码如下:

sqlplus / as sysdba <<EOF
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
在查询 v$session 视图的时候,我们根据command字段内部表示解码每一个字段,当我们需要快速找出他们的 Oracle 系统的内部情况时非常有用。
复制代码 代码如下:

select
substr(s.username,1,18) username,substr(s.program,1,15) program,p.spid,s.process,
decode(s.command,
0,'No Command',
1,'Create Table',
2,'Insert',
3,'Select',
6,'Update',
7,'Delete',
9,'Create Index',
15,'Alter Table',
21,'Create View',
23,'Validate Index',
35,'Alter Database',
39,'Create Tablespace',
41,'Drop Tablespace',
40,'Alter Tablespace',
53,'Drop User',
62,'Analyze Table',
63,'Analyze Index',
s.command||': Other') command
from
v$session s,
v$process p,
v$transaction t,
v$rollstat r,
v$rollname n
where s.paddr = p.addr
and s.taddr = t.addr (+)
and t.xidusn = r.usn (+)
and r.usn = n.usn (+)
order by username

(3)几个相关的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

--查看会话对应的sql内容
复制代码 代码如下:

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'



相关阅读:
跟我学习javascript创建对象(类)的8种方法
理解php依赖注入和控制反转
PHP获取mysql数据表的字段名称和详细信息的方法
js小数计算小数点后显示多位小数的实现方法
MAC系统Safari浏览器没有自动代理搜索如何让其拥有
简介JavaScript中的unshift()方法的使用
C语言实现时间戳转日期的算法(推荐)
js data日期初始化的5种方法
Swift中用到extension的一些基本的扩展功能讲解
jquery 为a标签绑定click事件示例代码
jquery属性选择器not has怎么写 行悬停高亮显示
Asp.net SignalR快速入门
js实现浏览本地文件并显示扩展名的方法
RedHat系统上基本的网络连接和设置方法
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 六枝-铁岭 哈尔滨西-九江 十堰-光泽 本溪-凌海 原平-凌海 浩良河-德州 江山-泉州 兖州-青岛北 临汾-霍州 淮南东-砀山南 缙云-三堂集 刘家河-巴林 桃山-寒葱沟 辽阳-阿金 九江-庐山 达拉滨-海城 武山-咸宁 石门县北-贵定 进贤南-福州南 祁县-五台山 中宁-兰州 神树-绥化 姑家堡-包头 缙云-桐柏 老边-辽阳 柴沟堡-孝感 西斗铺-包头东 义乌-襄阳东 邢台-西平 漠河-加格达奇 石岭-八仙筒 安图-哈尔巴岭 正镶白旗-道德 瓦房店-广水 内乡-绍兴 长春-上海虹桥 汨罗东-洛阳龙门 皋兰-兰州西 桂林北-池州 嫩江-齐齐哈尔 沙沱-六盘水 轸溪-凉红 湖州-绍兴东 唐山-新民 克东-冯屯 巢湖-信丰 邵阳-文地 富拉尔基-碾子山 宿松-淮北 沁县-襄阳 韶关东-广州 三亚-银滩 长兴-青岛 民权-锦州 滨海北-沧州西 孟家岗-八虎力 古城镇-苇河 定西-灵宝 徐水-呼和浩特 宝木吐-二道沟 兰考南-岳阳东 彭水-达州 金华-鹰潭北 瑞安-德清 兰考南-南陵 沟帮子-宁陵县 玉门-广安 惠安-惠东 昆山南-泉州 兰岭-虎林 济源-武乡 清河城-龙南 济南-梧州 岳阳-石家庄北 滦河沿-昌平北 甘河-里木店 定边-成都 富拉尔基-石人城 通北-公主岭 正定-紫阳 营口到金华要坐什么,要多久
从济南长途汽车站到洪楼广场坐几路车,
快递查询KA06714774535的包裹,7月3号邮寄至今还没有收到
北京到为什么没西安动车
南汇到杨浦区国定路335号2号楼1043室怎么坐车
苏州到昆山列车时刻表
苏州相王弄怎么走去啊
...是在一些枝干上被虫子钻了洞,还有些淡黄色的屎排在洞口,
新疆有哪些地方有特色
南车集团株洲电力机车研究所怎么样机械专业研究生适合在哪
去石家庄的华药医院坐几路车
杭州到平湖有高铁吗
乌鲁木齐到北海
凤凰到西安如何做列车
重庆至宁波的火车列车 是否经过达州
从上海火车列车站到南汇大学城有哪些车可以乘,具体末班车时间是
有没有具体点的 从日照到湖南溢阳 最快做什么车 给下票价钱数
谁知道啊,长春—广州火车列车票提前几天出售我10月6日走,明天能
洞口到南宁的高速车
株洲/湘潭到张家界自助游线路/张家界自驾游攻略/张家界自助游
上海英国领事馆在哪?
求上海到西藏列车火车的时刻表和价格表(2011年10月的)
广州到清远不走广清高速,怎么坐车
从湖北宜昌到江西省崇义县,请问坐列车火车是在湖南郴州去方便还
成都东站到玉林西路的车 摆脱快点 硪今天晚上8点火车列车。
绵阳到宜宾怎么去方便,下了车在怎么到蜀南竹海.请帮帮忙忙!
宝鸡到汉中的过路列车火车有几趟
广西柳州和湖北荆州的快递今天晚上8点上车的,13号晚上之前能
佛冈县 到广州最早的客车汽车是几点 有没到客车汽车东站的 最好有时
平邑到南京坐列车火车最省怎么走,多少钱,有哪些车次谢谢

Copyright © 2016 phpStudy |