Oracle中SQL語句執行效率的查詢與解決 (1)
一、識別佔用資源較多的語句的方法(4種方法)
1.測試組和終端使用者反饋的與反應緩慢有關的問題。
2.利用V_$SQLAREA檢視提供了執行的細節。(執行、讀取磁碟和讀取緩衝區的次數)
• 資料列
EXECUTIONS:執行次數
DISK_READS:讀盤次數
COMMAND_TYPE:命令型別(3:select,2:insert;6:update;7delete;47:pl/sql程式單元)
OPTIMIZER_MODE:優化方式
SQL_TEXT:Sql語句
SHARABLE_MEM:佔用shared pool的記憶體多少
BUFFER_GETS:讀取緩衝區的次數
• 用途
1、幫忙找出效能較差的SQL語句
2、幫忙找出最高頻率的SQL
3、幫忙分析是否需要索引或改善聯接
監控當前Oracle:family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的session,如出現時鐘的標誌,表示此程式中的sql執行時間較長。
4. Trace工具:
a)檢視資料庫服務的初始引數:timed_statistics、user_dump_dest和max_dump_file_size
b)Step 1: alter session set sql_trace=true
c)Step 2: run sql;
d)Step 3: alter session set sql_trace=false
e)Step 4:使用 “TKPROF”轉換跟蹤檔案
f)Parse,解析數量大通常表明需要增加資料庫伺服器的共享池大小,
query或current提取數量大表明如果沒有索引,語句可能會執行得更有效,
disk提取數量表明索引有可能改進效能,
library cache中多於一次的錯過表明需要一個更大的共享池大小
二、如何管理語句處理和選項
•基於成本(Cost Based) 和基於規則(Rule Based) 兩種優化器, 簡稱為CBO 和RBO
•Optimizer Mode引數值:
Choose:如果存在訪問過的任何表的統計資料 ,則使用基於成本的Optimizer,目標是獲得最優的通過量。如果一些表沒有統計資料,則使用估計值。如果沒有可用的統計資料,則將使用基於規則的Optimizer。
All_rows:總是使用基於成本的Optimizer,目標是獲得最優的通過量。
First_rows_n:總是使用基於成本的Optimizer,目標是對返回前N行(“n”可以是1,10,100或者1000)獲得最優的響應時間。
First_rows:用於向後相容。使用成本與試探性方法的結合,以便快速傳遞前幾行。
RULE:總是使用基於規則的Optimizer
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-264856/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中SQL語句執行效率的查詢與解決 (3)OracleSQL
- Oracle中SQL語句執行效率的查詢與解決 (2)OracleSQL
- Oracle中SQL語句執行效率問題的查詢與解決OracleSQL
- 查詢Oracle正在執行的SQL語句OracleSQL
- 查詢Oracle正在執行和執行過的SQL語句OracleSQL
- 查詢執行慢的SQL語句SQL
- 查詢正在執行的SQL語句SQL
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- 查詢效率低下的sql的語句SQL
- Oracle 查詢某個session正在執行的sql語句OracleSessionSQL
- oracle檢視執行最慢與查詢次數最多的sql語句OracleSQL
- mysql查詢效率慢的SQL語句MySql
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- 查詢sql語句執行次數SQL
- SQL Server 查詢歷史執行的SQL語句SQLServer
- 查詢正在執行的sql語句及該語句執行的時間SQL
- 文章主題: 在Oracle中查詢剛才執行過的SQL語句OracleSQL
- SQL查詢語句 (Oracle)SQLOracle
- 【SQL】Oracle sql語句 minus函式執行效率與join對比SQLOracle函式
- oracle查詢語句執行計劃中的表消除Oracle
- SQL 查詢語句的執行順序解析SQL
- 查詢orcale執行的SQL語句記錄SQL
- 在mysql查詢效率慢的SQL語句MySql
- 資料庫查詢優化:使用explain分析sql語句執行效率資料庫優化AISQL
- 一條 SQL 查詢語句是如何執行的?SQL
- T-sql語句查詢執行順序SQL
- GaussDB SQL查詢語句執行過程解析SQL
- 輸入的查詢 SQL 語句,是如何執行的?SQL
- sql server中如何檢視執行效率不高的語句SQLServer
- 查詢當前正在執行的SQL語句並KILLSQL
- oracle、my sql、sql隨機查詢語句OracleSQL隨機
- MySQL資料庫詳解(一)SQL查詢語句是如何執行的?MySql資料庫
- MySql定位執行效率較低的SQL語句MySql
- ORACLE 鎖表的解決方法及查詢引起鎖表SQL語句[轉]OracleSQL
- ORACLE 鎖表的解決方法及查詢引起鎖表SQL語句方法OracleSQL
- oracle使用profiler分析語句執行效率Oracle
- 百萬資料查詢測試 只需1秒--Sql語句效率測試SQL
- 一條查詢語句的執行流程