Oracle數(shù)據(jù)庫查詢執(zhí)行過的SQL語句方法匯總
1. 直接查詢V$SQL或V$SQLAREA視圖
通過系統(tǒng)視圖V$SQL
和V$SQLAREA
可直接獲取共享池中緩存的SQL執(zhí)行記錄,包括歷史SQL文本、執(zhí)行次數(shù)、CPU/耗時等統(tǒng)計信息:
-- 查詢所有執(zhí)行過的SQL(按總耗時降序) SELECT sql_id, sql_text, executions, ROUND(elapsed_time/1000, 2) AS total_elapsed_time_s, ROUND(cpu_time/1000, 2) AS cpu_time_s, first_load_time, last_active_time FROM v$sql ORDER BY elapsed_time DESC;
- 關鍵字段:
sql_text
(SQL文本)、executions
(執(zhí)行次數(shù))、last_active_time
(最后執(zhí)行時間)16。
2. 結合會話信息關聯(lián)查詢
通過關聯(lián)V$SESSION
和V$SQL
視圖,可追溯SQL執(zhí)行者及會話信息:
-- 查詢SQL執(zhí)行者及會話詳情 SELECT s.sid, s.username, s.osuser, s.machine, q.sql_text, q.executions, q.last_load_time FROM v$session s JOIN v$sql q ON s.sql_id = q.sql_id WHERE q.last_active_time > SYSDATE - 7; -- 近7天執(zhí)行的SQL
- 說明:
v$session
提供會話的登錄用戶、操作系統(tǒng)信息,v$sql
關聯(lián)具體SQL內容23。
3. 按時間或操作類型過濾
針對特定時間段或操作類型(如DELETE
、UPDATE
)進行精確篩選:
-- 查詢2025年3月1日后的DELETE操作記錄 SELECT sql_text, parsing_user_id, last_active_time FROM v$sqlarea WHERE sql_text LIKE 'DELETE%' AND last_active_time >= TO_DATE('2025-03-01', 'YYYY-MM-DD');
- 注意:
v$sqlarea
視圖包含完整的SQL文本,但需注意LIKE
模糊匹配的性能影響47。
4. 按用戶或權限過濾
通過parsing_user_id
或parsing_schema_name
字段追蹤特定用戶的SQL執(zhí)行記錄:
-- 查詢用戶SCOTT執(zhí)行過的SQL SELECT sql_text, executions, last_active_time FROM v$sql WHERE parsing_user_id = (SELECT user_id FROM dba_users WHERE username = 'SCOTT');
- 依賴權限:需具備
DBA_USERS
和V$SQL
的查詢權限57。
注意事項
- 數(shù)據(jù)保留周期:
V$SQL
和V$SQLAREA
存儲的是共享池中的緩存SQL,若實例重啟或SQL被淘汰,歷史記錄可能丟失16。 - 權限要求:查詢系統(tǒng)視圖需授予
SELECT_CATALOG_ROLE
或直接授權(如GRANT SELECT ON v_$sql TO user;
)78。 - 性能影響:高頻查詢系統(tǒng)視圖可能對數(shù)據(jù)庫性能產生輕微影響,建議在非高峰時段操作23。
以上方法可綜合使用,建議優(yōu)先通過V$SQL
按時間或用戶維度縮小查詢范圍,再關聯(lián)會話信息定位問題SQL14。
總結
到此這篇關于Oracle數(shù)據(jù)庫查詢執(zhí)行過的SQL語句方法的文章就介紹到這了,更多相關Oracle查詢執(zhí)行過SQL語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Oracle數(shù)據(jù)庫恢復教程之resetlogs操作
這篇文章主要給大家介紹了關于Oracle數(shù)據(jù)庫恢復教程之resetlogs操作的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Oracle數(shù)據(jù)庫具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-05-05Oracle通過正則表達式分割字符串 REGEXP_SUBSTR的代碼詳解
這篇文章主要介紹了Oracle通過正則表達式分割字符串 REGEXP_SUBSTR的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05Oracle dbca時報:ORA-12547: TNS:lost contact錯誤的解決
這篇文章主要給大家介紹了關于Oracle在dbca時報:ORA-12547: TNS:lost contact錯誤的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-11-11Oracle使用fy_recover_data恢復truncate刪除的數(shù)據(jù)
這篇文章主要介紹了Oracle使用fy_recover_data恢復truncate刪除的數(shù)據(jù),文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-07-07ORACLE數(shù)據(jù)庫應用開發(fā)常見問題及排除
ORACLE數(shù)據(jù)庫應用開發(fā)常見問題及排除...2007-03-03解析如何查看Oracle數(shù)據(jù)庫中某張表的字段個數(shù)
本篇文章是對查看Oracle數(shù)據(jù)庫中某張表的字段個數(shù)進行了詳細的分析介紹,需要的朋友參考下2013-06-06