| 視圖 | 粒度 | 特色 | 適用場景 |
|---|---|---|---|
| V$SQL | Parent + Child Cursor | 完整 SQL 文本 (CLOB)、解析/執行統計、等待事件、優化器資訊、執行中用戶數 | 深度診斷單條 SQL、追蹤 Child Cursor 共用情況 |
| V$SQLAREA | 唯一 SQL 字串 | 聚合統計,無 Child Cursor 細節,較輕量 | 快速掃描高耗 SQL、全庫 Top N 分析 |
| V$SQLSTATS (10gR2+) | SQL ID + Plan Hash | 不連接用戶資訊,行更持久(共用池 aged out 仍保留),查詢最快 | 歷史 SQL 效能趨勢、跨快照比對、生產庫低負載巡檢 |
| V$SQLTEXT / _WITH_NEWLINES | 單行 SQL 片段 | PIECE 欄位排序還原完整語句,保留換行符(_WITH_NEWLINES) | 程式化解析 SQL 文本、提取特定類型語句(COMMAND_TYPE) |
非 DBA 開發人員需:
GRANT SELECT_CATALOG_ROLE TO dev_user;
SELECT sql_id, executions, buffer_gets, disk_reads,
ROUND(elapsed_time/1e6/NULLIF(executions,0),3) avg_elapsed_sec,
sql_text
FROM v$sqlarea
WHERE executions > 0
ORDER BY buffer_gets DESC
FETCH FIRST 20 ROWS ONLY;
SELECT sql_id, plan_hash_value, executions,
ROUND(elapsed_time/1e6/NULLIF(executions,0),3) avg_elapsed_sec,
last_active_time
FROM v$sqlstats
WHERE sql_id = 'abc123def456'
ORDER BY last_active_time;
SELECT sql_text
FROM v$sqltext_with_newlines
WHERE sql_id = 'abc123def456'
ORDER BY piece;
V$SQL_PLAN / DBMS_XPLAN.DISPLAY_CURSOR 看實際執行計劃。SQL_ID + CHILD_NUMBER 精確定位 Child Cursor。V$SQLSTATS 到歷史表,構建 SQL 效能基線庫。