幾種常用的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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python教程: 反射及常用的幾種方法Python反射
- MySql常用30種SQL查詢語句優化方法MySql優化
- 介紹幾種提高mysql的效能和對於sql的優化的方法MySql優化
- 檢視SQL執行計劃的幾種常用方法YQSQL
- 建樹的幾種常用方法
- iframe跨域的幾種常用方法跨域
- Mysql多欄位大表的幾種優化方法MySql優化
- sql最佳化的幾種方式SQL
- SQL隱碼攻擊的檢測方式有幾種?常用方法介紹!SQL
- SQL優化的方法論SQL優化
- Linux埠轉發的幾種常用方法Linux
- 資料庫SQL調優的幾種方式資料庫SQL
- webpack打包優化的幾種方案Web優化
- iOS 開發中 runtime 常用的幾種方法iOS
- css實現三欄佈局的幾種方法及優缺點CSS
- 【NLP】常用優化方法優化
- MySQL 優化常用方法MySql優化
- oracle優化之生產系統不改程式碼解決SQL效能問題的幾種方法Oracle優化SQL
- Python中的單例模式的幾種實現方式的及優化Python單例模式優化
- 幾種集合的幾種方法
- JS常用判斷空對像的幾種方法JS
- Flutter工具:Dart中幾種常用的Json轉Object方式FlutterDartJSONObject
- Mysql慢SQL分析及優化MySql優化
- 關於python單例的常用幾種實現方法Python單例
- linux中後臺執行程式常用的幾種方法Linux行程
- 外貿找客戶郵箱常用的幾種方法
- 常用的幾種專案衝突管理的解決方法
- 達夢SQL優化方法statSQL優化
- 論JVM爆炸的幾種姿勢及自救方法JVM
- mysql最佳化通常使用的幾種方法MySql
- 幾種常見取樣方法及原理
- 幾種常見的NO SQL DBSQL
- [譯] 降維技術中常用的幾種降維方法
- 總結幾個webpack打包優化的方法Web優化
- Hive使用Calcite CBO優化流程及SQL優化實戰Hive優化SQL
- Markdown常用的幾種語法
- 常用的jQuery事件有幾種?jQuery事件
- 幾種常用的排序程式碼排序
- 淺談常用影片加密原理及加密的幾種應用形式加密