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語句及執行該語句的使用者OracleSQL
- SQL查詢語句 (Oracle)SQLOracle
- 【SQL】Oracle sql語句 minus函式執行效率與join對比SQLOracle函式
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- mysql查詢效率慢的SQL語句MySql
- SQL Server 查詢歷史執行的SQL語句SQLServer
- SQL 查詢語句的執行順序解析SQL
- 在mysql查詢效率慢的SQL語句MySql
- 資料庫查詢優化:使用explain分析sql語句執行效率資料庫優化AISQL
- 一條 SQL 查詢語句是如何執行的?SQL
- GaussDB SQL查詢語句執行過程解析SQL
- 輸入的查詢 SQL 語句,是如何執行的?SQL
- 後臺執行SQL語句(oracle)SQLOracle
- MySQL資料庫詳解(一)SQL查詢語句是如何執行的?MySql資料庫
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- Oracle中如何查詢未使用繫結變數的SQL語句?Oracle變數SQL
- java連線oracle執行sql語句JavaOracleSQL
- MySQL系列之一條SQL查詢語句的執行過程MySql
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- 一條查詢語句的執行流程
- 根據emp,dept,salgrade表進行的sql查詢語句(1)SQL
- sql語句執行順序與效能優化(1)SQL優化
- MySQL 查詢常用操作(0) —— 查詢語句的執行順序MySql
- 查詢oracle正在執行的SQL和事務OracleSQL
- oracle查詢sql執行耗時、執行時間、sql_idOracleSQL
- 01 | 基礎架構:一條SQL查詢語句是如何執行的?架構SQL
- 一文讀懂一條 SQL 查詢語句是如何執行的SQL
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- sql語句如何執行的SQL
- MYSQL 中 exists 語句執行效率變低MySql
- Oracle SQL精妙SQL語句講解OracleSQL
- [求指導] 如何通過程式碼分析一個查詢語句的執行效率
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- postgresql dba常用sql查詢語句SQL
- ORACLE結構化查詢語句Oracle
- MySQL 查詢語句執行過程淺析MySql
- oracle常用後臺程序及sql語句執行流程OracleSQL