我在查找一個查詢,它將返回一個高負載的sql語句列表。我不想使用任何Oracle工具,如ADDM或AWR。我需要一個查詢語句,它將返回高負載的sql語句。如何使用oracle視圖識別Oracle中的高負載SQL?
7
A
回答
3
您可以直接查詢AWR表,這可能是最簡單的方法。
或者,我以前在Oracle 8i上使用的一個簡單技術,沒有啓用統計信息,就是從v $ sql中選擇具有最高緩衝區獲取執行率的SQL。您可以使用此查詢發揮只搜索高執行數查詢,或者那些做高物理IO等
的AWR和ASH表將提供更好的信息,但是這可能是一個簡單的第一步:
select a.sql_id, a.ratio, a.executions
from
(
select sql_id, buffer_gets/executions ratio, executions
from v$sql
where executions > 10
order by 2 desc
) a
where rownum <= 10
1
要快速找到,如果你有長時間運行佔用你的資源流程看v $ sesson_long_ops:
SELECT * FROM v$session_longops
見:http://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_2092.htm
我勸你看看這太:http://docs.oracle.com/cd/B28359_01/server.111/b28274/instance_tune.htm
然後,您可以乘坐SID查找正在運行的SQL:
SELECT sql_text FROM v$session s
LEFT JOIN v$sqlarea sa ON s.sql_hash_value=sa.hash_value AND s.sql_address=sa.address
WHERE sid=&sid
如果您正在運行UNIX您還可以看看在top
命令(top10
或topas
在不同的unix口味) 然後,你可以採取消耗最多CPU的查詢的進程ID,然後使用以下來獲得有問題的SQL。
SELECT
s.username,
sa.sql_text
FROM v$process p
INNER JOIN v$session s ON p.addr=s.paddr
LEFT JOIN v$sqlarea sa ON s.sql_hash_value=sa.hash_value AND s.sql_address=sa.address
WHERE s.username IS NOT NULL AND p.spid=&SPID
相關問題
- 1. Oracle直方圖 - 識別列
- 2. 如何識別Oracle中的記錄
- 3. 使用Oracle視圖的BatchUpdate
- 4. 在oracle中加入sql視圖sql
- 5. 如何使用Oracle SQL
- 6. 如何使用Oracle Sql Loader
- 7. 如何識別鎖定的PL/SQL包(Oracle 10.0.4.2)?
- 8. Oracle中的SQL加載器
- 9. 使用Oracle SQL
- 10. Oracle中的語言識別器
- 11. 如何檢測活動oracle會話中的高峯負責人?
- 12. 如何使用JAVA或ORACLE或VBA來識別PATTERN?
- 13. 如何在Oracle APEX中使用Oracle DBMS_ALERT
- 14. Oracle SQL:無效標識符
- 15. 如何監視Oracle上的SQL活動?
- 16. 從Oracle視圖
- 17. 在Oracle中使用SYSobjects讀取視圖
- 18. Unitils/DBunit/Oracle - 如何在oracle視圖中插入數據集?
- 19. Oracle SQL創建視圖無效標識符
- 20. oracle中的Materiliaze視圖
- 21. 如何使用Oracle 9i的PL/SQL
- 22. 如何識別「壞」視圖?
- 23. 使用Oracle sql loader加載時出錯
- 24. 如何識別視圖中的PK列
- 25. 如何從Hibernate HQL(oracle)可視化SQL?
- 26. 如何使Oracle查詢可識別ASP.NET表格適配器?
- 27. 如何在Oracle中SQL
- 28. 如何在Oracle SQL Developer中
- 29. SQL - 如何在Oracle
- 30. 的Oracle SQL - 使用上的級聯柱LISTAGG從視圖
Thx for replay。你能告訴我什麼查詢我必須使用從AWR獲取數據?最昂貴的SQL語句。就像這樣:http://docs.oracle.com/cd/B19306_01/server.102/b28051/tdppt_sqlid.htm#BABECDJG? 順便說一句。如何v $ sqlarea視圖? – Marshall
許多這些實時統計來自ASH表。如果您要啓動企業管理器,您可以跟蹤其會話並查看它正在執行哪些SQL來生成這些圖表。看看v $ active_session_history,看看你能想出什麼。 –