多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > V$SESSION SQL_ID 為空,找不到SQL_ID

V$SESSION SQL_ID 為空,找不到SQL_ID

來源:程序員人生   發布時間:2015-04-17 08:28:49 閱讀次數:3192次

兄弟,是否是遇到過查詢 V$SESSION.SQL_ID 但是呢 SQL_ID 是空,然后找不到SQL的為難情況?太多人問這個問題了。

我相信你們也沒百度/GOOGLE到好的解決辦法,今天就分享1個方法,教大家抓SQL(本方法基于ORACLE11G,10G 就洗洗睡吧)。

首先我們來做個實驗:

SQL> select sid from v$mystat where rownum=1;
 
       SID
----------
      1150
 
SQL> update test set owner='BIGSB' where object_id<100;
 
98 rows updated

在1150這個SESSION里面履行1個UPDATE,不要提交。

SQL> select sid from v$mystat where rownum=1;
 
       SID
----------
      1338
 
SQL>  update test set owner='SB' where object_id<10;

在1338里面跑另外1個UPDATE,由于1150沒提交,1138處于行鎖等待。

這個時候通過以下腳本去查詢數據庫

SQL> select inst_id, 2 sid, 3 sql_id, 4 event, 5 blocking_session, 6 blocking_instance 7 from gv$session a 8 where blocking_session is not null; INST_ID SID SQL_ID EVENT BLOCKING_SESSION BLOCKING_INSTANCE ---------- ---------- ------------- --------------------------------------- ---------------- ---------------- 1 1338 852mvmth18w37 enq: TX - row lock contention 1150 1 SQL> select sql_id from gv$session where inst_id=1 and sid=1150; SQL_ID -------------


確切,SQL_ID是空的,或許有人會說,那我去查詢PREV_SQL_ID,恩你去試1試吧,那個SQL_ID是事物的SQL_ID,其實不是UPDATE的SQL_ID

SQL> select prev_sql_id from gv$session where inst_id=1 and sid=1150; PREV_SQL_ID ------------- 9m7787camwh4m SQL> select sql_text from gv$sql where sql_id='9m7787camwh4m'; SQL_TEXT -------------------------------------------------------------------------------- begin :id := sys.dbms_transaction.local_transaction_id; end;


所以很多人這個時候就蛋疼了,不知道咋辦。現在教大家另外1種方法

SQL> select PREV_EXEC_START,USERNAME,MODULE,ACTION FROM GV$SESSION WHERE INST_ID=1 AND SID=1150; PREV_EXEC_START USERNAME MODULE ACTION --------------- ------------------------------ ----------------------- 2015-04⑴0 18:01:44 SCOTT PL/SQL Developer Command Window - New SQL> SELECT SQL_ID,SQL_TEXT,LAST_ACTIVE_TIME,MODULE,ACTION FROM GV$SQL WHERE INST_ID=1 AND LAST_ACTIVE_TIME=TO_DATE('2015-04⑴0 18:01:44','YYYY-MM-DD HH24:MI:SS'); SQL_ID SQL_TEXT LAST_ACTIVE_TIME MODULE ACTION ------------- -------------------------------------------------------------------------------- ---------------- ---------------------------------------------------------------- ---------------------------------------------------------------- 2syvqzbxp4k9z select u.name, o.name, a.interface_version#, o.obj# from association$ a, us 2015/4/10 18:01: 6c9wx6z8w9qpu select a.default_selectivity from association$ a 2015/4/10 18:01: 2xyb5d6xg9srh select a.default_cpu_cost, a.default_io_cost from association$ a 2015/4/10 18:01: d1s917pgj7650 update test set owner='BIGSB' where object_id<100 2015/4/10 18:01: PL/SQL Developer Command Window - New


現在就能夠把SQL 抓到了

請注意:

1.在高并發的情況下,可能會出現多個可疑SQL

2.LAST_ACTIVE_TIME與PREV_EXEC_START可能有小的誤差(秒計)

這個時候,請自己判斷,腦袋不要太笨。


select a.inst_id, a.sid, a.sql_id, b.sql_id, b.sql_text from gv$session a, gv$sql b where a.inst_id = b.inst_id and a.PREV_EXEC_START = b.LAST_ACTIVE_TIME and a.USERNAME = b.PARSING_SCHEMA_NAME and a.MODULE_HASH = b.MODULE_HASH and a.ACTION_HASH = b.ACTION_HASH select a.inst_id, a.sid, a.event, a.sql_id, b.sql_text running_sql, c.sql_in_session, c.sql_id_in_v$sql, c.sql_text blocking_sql, a.blocking_session, a.blocking_instance from gv$session a, (select sql_id, sql_text from (select sql_id, sql_text, row_number() over(partition by sql_id order by sql_id) as rn from gv$sql) where rn = 1) b, (select a.inst_id, a.sid, a.sql_id sql_in_session, b.sql_id sql_id_in_v$sql, b.sql_text from gv$session a, gv$sql b where a.inst_id = b.inst_id and a.PREV_EXEC_START =b.LAST_ACTIVE_TIME and a.USERNAME = b.PARSING_SCHEMA_NAME and a.MODULE_HASH = b.MODULE_HASH and a.ACTION_HASH = b.ACTION_HASH) c where a.sql_id = b.sql_id and a.blocking_session is not null and a.BLOCKING_SESSION = c.sid and a.BLOCKING_INSTANCE = c.inst_id;







??
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 偷拍欧美视频 | 高清免费a级在线观看国产 高清免费国产在线观看 | 日本三级中文 | 五月天欧美激情午夜情 | 东方伊人免费在线观看 | 国产91精品久久久久久久 | 日韩中文字幕视频在线 | 欧美三级观看 | 日韩在线视频不卡一区二区三区 | 亚洲图片日韩 | 欧美人与性动交α欧美精品图片 | 日本一区二区在线播放 | 精品视频在线观看免费 | free性德国丰满hd | 日本护士做xxxxxx视频 | 91亚洲在线| 亚洲精品a | 91午夜精品亚洲一区二区三区 | 一级作爱视频 | 精品不卡一区中文字幕 | 色偷偷亚洲女人天堂观看欧 | 69热在线观看 | 亚洲国产精品综合欧美 | 中文字幕乱码中文乱码51精品 | 亚洲精品视频在线观看免费 | 亚洲精品国产精品国自产观看 | 国产综合久久久久久 | 成人a一级毛片免费看 | 亚洲一区二区观看 | 欧美高清在线不卡免费观看 | 中午字幕在线观看 | 91福利一区二区在线观看 | 宇都宫紫苑在线播放 | 劲爆欧美第一页 | 一级毛片女人18水真多 | 国产国产成人精品久久 | 最近最新高清中文字幕 | 黄网址大全免费观看免费 | 欧美猛交xxxxx | 欧美艾v福利视频在线观看 欧美爱爱爽爽视频在线观看 | www黄色免费|