之前Jason介紹了相關的Oracle SQL調優,今天給利用Oracle SQL工具來進行調優留下點Memory。
首先我們一般可以利用以下的語句來識別Oracle“低效執行”的SQL語句:
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
SQL_TEXT
FROM V$SQLAREA
WHERE EXECUTIONS>0
AND BUFFER_GETS >0
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8
ORDER BY 4 DESC;
還有一些實時監控ORACLE的語句可以參考Oracle數據庫性能監控。
當然我們更需要使用TKPROF工具來查詢SQL性能狀態:
SQL trace 工具收集正在執行的SQL的性能狀態數據并記錄到一個跟蹤文件中. 這個跟蹤文件提供了許多有用的信息。
例如:解析次數、執行次數、CPU使用時間等.
這些數據將可以用來優化你的系統.
設置SQL TRACE在會話級別: 有效
ALTER SESSION SET SQL_TRACE TRUE;
設置SQL TRACE 在整個數據庫有效
SQL_TRACE=TRUE,
TIMED_STATISTICS=ON
USER_DUMP_DEST參數說明了生成跟蹤文件的目錄
用TKPROF工具解析閱讀TRC文件,之后Jason會重點介紹下。
之后我們還需要用EXPLAIN PLAN 分析SQL語句。
EXPLAIN PLAN 是一個很好的分析SQL語句的工具
它甚至可以在不執行SQL的情況下分析語句
通過分析,我們就可以知道ORACLE是怎么樣連接表Plan_table
@\RDBMS\ADMIN\utlxplan.sql
Explain Plan 的用法如下,
explain plan
[set statement_id = ‘text’]
[into [owner.]table_name]
for statement;
或者設置AUTOTRACE
SQL> set autotrace on
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabledS
P2-0611: Error enabling STATISTICS report
SQL>@\SQLPLUS\admin\plustrace.sql
AUTOTRACE
SQL> SET AUTOTRACE ON
SQL> SET AUTOTRACE TRACEONLY
SQL> SELECT …..
Oracle提供了不少有用的工具,在利用tuning task,tuning set調優oracle中Jason也介紹了些,之后會提供TKPROF的用法原文轉自:http://www.anti-gravitydesign.com