【DB筆試面試823】在Oracle中,如何查看過去某一段時間數據庫系統的會話是否有問題?程序員
能夠經過DBA_HIST_ACTIVE_SESS_HISTORY視圖來進行查詢,首先查詢指定時間段的等待事件,下例中的SQL語句查詢的是2016年5月10號下午17點30分到19點30分這段時間內數據庫的等待事件和SQL的執行狀況,其中,COUNTS列的值比較大的就是SQL執行時間較長的,須要特別關注:面試
1SELECT D.EVENT, D.SQL_ID, COUNT(1) COUNTS
2 FROM DBA_HIST_ACTIVE_SESS_HISTORY D
3 WHERE D.SAMPLE_TIME >= TO_DATE('2016-05-10 17:30:00', 'YYYY-MM-DD HH24:MI:SS')
4 AND D.SAMPLE_TIME <= TO_DATE('2016-05-10 19:30:00', 'YYYY-MM-DD HH24:MI:SS')
5 GROUP BY D.EVENT,D.SQL_ID;
下面的SQL語句能夠查詢到具體SQL的掃描操做,初步預估SQL問題:數據庫
1SELECT TO_CHAR(D.SAMPLE_TIME, 'YYYY-MM-DD HH24:MI:SS') SAMPLE_TIME,
2 D.SQL_ID,
3 D.SQL_PLAN_HASH_VALUE,
4 D.SQL_PLAN_OPERATION,
5 D.SQL_PLAN_OPTIONS,
6 D.EVENT
7 FROM DBA_HIST_ACTIVE_SESS_HISTORY D
8 WHERE D.SAMPLE_TIME >= TO_DATE('2016-05-10 17:30:00', 'YYYY-MM-DD HH24:MI:SS')
9 AND D.SAMPLE_TIME <= TO_DATE('2016-05-10 19:30:00', 'YYYY-MM-DD HH24:MI:SS')
10 ORDER BY D.SNAP_ID;
根據以上的SQL語句能夠知道,對錶作的是不是全表掃描,以及當時會話的等待事件是什麼,而後就能夠根據等待事件進行SQL分析了。微信
以下的SQL語句能夠查詢某一段時間內,會話所持有的鎖信息:網絡
1SELECT D.SQL_ID,
2 CHR(BITAND(P1, -16777216) / 16777215) ||CHR(BITAND(P1, 16711680) / 65535) "Lock",
3 BITAND(P1, 65535) "Mode",
4 COUNT(1) COUNTS,
5 COUNT(DISTINCT D.SESSION_ID) COUNTS1
6 FROM DBA_HIST_ACTIVE_SESS_HISTORY D
7 WHERE D.SAMPLE_TIME >= TO_DATE('2016-05-10 17:30:00', 'YYYY-MM-DD HH24:MI:SS')
8 AND D.SAMPLE_TIME <= TO_DATE('2016-05-10 19:30:00', 'YYYY-MM-DD HH24:MI:SS')
9 AND D.EVENT = 'enq: TX - row lock contention'
10 GROUP BY D.SQL_ID,
11 (CHR(BITAND(P1, -16777216) / 16777215) ||
12 CHR(BITAND(P1, 16711680) / 65535)),
13 (BITAND(P1, 65535));
以下的SQL語句能夠查詢系統問題時間段內的會話詳情:app
1SELECT D.CURRENT_OBJ#,
2 D.CURRENT_FILE#,
3 D.CURRENT_BLOCK#,
4 D.CURRENT_ROW#,
5 D.EVENT,
6 D.P1TEXT,
7 D.P1,
8 D.P2TEXT,
9 D.P2,
10 CHR(BITAND(P1, -16777216) / 16777215) ||CHR(BITAND(P1, 16711680) / 65535) "Lock",
11 BITAND(P1, 65535) "Mode",
12 D.BLOCKING_SESSION,
13 D.BLOCKING_SESSION_STATUS,
14 D.BLOCKING_SESSION_SERIAL#,
15 D.SQL_ID,
16 TO_CHAR(D.SAMPLE_TIME, 'YYYYMMDDHH24MISS') SAMPLE_TIME
17 FROM DBA_HIST_ACTIVE_SESS_HISTORY D
18 WHERE D.SAMPLE_TIME >= TO_DATE('2016-05-10 17:30:00', 'YYYY-MM-DD HH24:MI:SS')
19 AND D.SAMPLE_TIME <= TO_DATE('2016-05-10 19:30:00', 'YYYY-MM-DD HH24:MI:SS')
20 AND D.EVENT = 'enq: TX - row lock contention';
& 說明:ide
有關一些具體的分析過程能夠參考個人BLOG案例:http://blog.itpub.net/26736162/viewspace-2123996/學習
本文選自《Oracle程序員面試筆試寶典》,做者:小麥苗
spa
==================================================================================================================【乾貨來了|小麥苗IT資料分享】★小麥苗DB職場乾貨:https://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w★小麥苗數據庫健康檢查:https://share.weiyun.com/5lb2U2M★小麥苗微店:https://weidian.com/?userid=793741433★各類操做系統下的數據庫安裝文件(Linux、Windows、AIX等):https://pan.baidu.com/s/1hqff3Evv6oj2-Tn87MpFkQ★小麥苗分享的資料:https://share.weiyun.com/57HUxNi★小麥苗課堂資料:https://share.weiyun.com/5fAdN5m★小麥苗課堂試聽資料:https://share.weiyun.com/5HnQEuL★小麥苗出版的相關書籍:https://share.weiyun.com/5sQBQpY★小麥苗博客文章:https://share.weiyun.com/5ufi4Dx★數據庫系列(Oracle、MySQL、NoSQL):https://share.weiyun.com/5n1u8gv★公開課錄像文件:https://share.weiyun.com/5yd7ukG★其它經常使用軟件分享:https://share.weiyun.com/53BlaHX★其它IT資料(OS、網絡、存儲等):https://share.weiyun.com/5Mn6ESi★Python資料:https://share.weiyun.com/5iuQ2Fn★已安裝配置好的虛擬機:https://share.weiyun.com/5E8pxvT★小麥苗騰訊課堂:https://lhr.ke.qq.com/★小麥苗博客:http://blog.itpub.net/26736162/★OCP培訓:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA★12c的OCP培訓:https://mp.weixin.qq.com/s/hMLHlyjMHhLmA0xN4hLvfw★OCM培訓:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA★高可用(RAC+DG+OGG)培訓:https://mp.weixin.qq.com/s/4vf042CnOdAD8zDyjUueiw★小麥苗課堂騰訊視頻:http://v.qq.com/vplus/71f69a319a24c6808cd6e6189ae90664
==================================================================================================================
● 本文做者:小麥苗,只專一於數據庫的技術,更注重技術的運用操作系統
● 做者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列題目來源於做者的學習筆記,部分整理自網絡,如有侵權或不當之處還請諒解
● 版權全部,歡迎分享本文,轉載請保留出處
● QQ:646634621 QQ羣:23016159九、618766405
● 微信:lhrbestxh
● 微信公衆號:DB寶
● 提供Oracle OCP、OCM、高可用(rac+dg+ogg)和MySQL最實用的技能培訓
● 題目解答如有不當之處,還望各位朋友批評指正,共同進步
長按下圖識別二維碼或微信掃描下圖二維碼來關注小麥苗的微信公衆號:DB寶,學習最實用的數據庫技術。
本文分享自微信公衆號 - DB寶(lhrdba)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。