幾種常用的SQL優化工具及方法
1. sql 詳細執行計劃,主要檢查驅動路徑,索引是否合適;同一個pl/sql視窗連續執行即可;
explain plan for (select * from HW_PC_SIGNED_COMPANY_V sc) ;
select * from table(dbms_xplan.display(null,null,'all'));
2. sql monitor,檢視sql主要花在哪些時間,真實的行數和IO;三個sql依次執行;
SELECT /*+monitor*/ * from HW_PC_SIGNED_COMPANY_V sc ;
select * from v$sql s where s.SQL_TEXT like 'SELECT /*+monitor*/ * from HW_PC_SIGNED%' ;
select dbms_sqltune.report_sql_monitor('ftswqgup6hzxx') from dual ;
3. SQLT
http://space.itpub.net/35489/viewspace-764348
檢視TXT檔案。
4. SQL Profile 及使用SQL Tuning Advisor來嘗試SQL調優
http://space.itpub.net/35489/viewspace-747164
5. 10046 EVENT
trace 檔案的格式都是 sid_ora_pid.trc , 其中sid 表示資料庫的instance name, pid 表示 process id .
A. 可以在PL/SQL中加入如下的語句來進行trace .
EXECUTE IMMEDIATE 'ALTER SESSION SET timed_statistics=true' ;
EXECUTE IMMEDIATE 'ALTER SESSION SET max_dump_file_size=“unlimited”';
EXECUTE IMMEDIATE 'ALTER SESSION SET TRACEFILE_IDENTIFIER=''TEST_TRACEFILE''';
EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ''10046 trace name context forever,level 8''';
在最後加入如下語句執行
EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ''10046 trace name context off'';
B. 使用10046 event 跟蹤其他使用者session :
對其他使用者session設定 dbms_system.set_ev
說明:5個引數 sid/serial#/ev/level/username
Select sid,serial# from v$session where username is not null ;
SID SERIAL#
---------- ---------- -----
113 227
或者通過spid查詢sid, serial# :
SQL> select b.*, a.* from v$process a, v$session b
where a.addr = b.paddr and a.spid in (1914, 19140) ;
執行跟蹤:
exec dbms_system.set_ev(113,227,10046,8,'');
結束跟蹤:
exec dbms_system.set_ev(113,227,10046,0,'');
最後的trace檔案都需要使用 tkprof 進行格式轉化
tkprof xxx.trc xxx.txt explain=apps/passwd sort='(prsela,exeela,fchela)'
6. SQL Trace
SQL> set autotrace traceonly
顯示: expain+statistics(不顯示資料)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-764856/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL優化常用方法11SQL優化
- SQL優化常用方法10SQL優化
- SQL優化常用方法16SQL優化
- SQL優化常用方法2SQL優化
- SQL優化常用方法5SQL優化
- SQL優化常用方法8SQL優化
- SQL優化常用方法3SQL優化
- SQL優化常用方法19SQL優化
- SQL優化常用方法20SQL優化
- SQL優化常用方法18SQL優化
- SQL優化常用方法12SQL優化
- SQL優化常用方法46SQL優化
- SQL優化常用方法52SQL優化
- SQL優化常用方法33SQL優化
- SQL優化常用方法29SQL優化
- SQL優化常用方法26SQL優化
- SQL優化常用方法25SQL優化
- SQL優化常用方法39SQL優化
- SQL優化常用方法27SQL優化
- SQL優化常用方法22SQL優化
- SQL優化常用方法30SQL優化
- MySql常用30種SQL查詢語句優化方法MySql優化
- Oracle SQL效能優化常用方法OracleSQL優化
- 50種方法優化SQL Server優化SQLServer
- 介紹幾種提高mysql的效能和對於sql的優化的方法MySql優化
- 簡單常用的幾項程式碼優化方法優化
- 幾種優化ajax的執行速度的方法優化
- 淺談MySQL中優化sql語句查詢常用的30種方法MySql優化
- 檢視SQL執行計劃的幾種常用方法YQSQL
- SQL語句優化方法用hint的30種方法SQL優化
- SQL Server常用的幾種啟動方式SQLServer
- iframe跨域的幾種常用方法跨域
- Mysql多欄位大表的幾種優化方法MySql優化
- 【SQL優化】SQL優化工具SQL優化
- css中常用的幾種居中方法CSS
- 五十種巧妙優化SQL Server資料庫的方法優化SQLServer資料庫
- 12種jQuery效能優化方法解析(常用 轉載)jQuery優化
- webpack打包優化的幾種方案Web優化