程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 查詢oraclesql的執行計劃時,一個很重要的視圖--dba_hist_sql_plan

查詢oraclesql的執行計劃時,一個很重要的視圖--dba_hist_sql_plan

編輯:Oracle教程

查詢oraclesql的執行計劃時,一個很重要的視圖--dba_hist_sql_plan


本文的編寫得到枯榮長老的大力幫助,在此表示感謝。

本文適用的oracle db版本為oracle 10g或者更高版本.

之所以說這個視圖很重要,是因為該視圖中有一列是在awrsqrpt報告中沒有的。這一列就是 filter_predicates列。

SELECT plan_hash_value,

TO_CHAR(RAWTOHEX(child_address)), TO_NUMBER(child_number), id, LPAD(' ', DEPTH) || operation operation, options, object_owner, object_name, optimizer, cost, access_predicates, filter_predicates FROM V$SQL_PLAN WHERE sql_id = 'bkcyk7bf380t6' ORDER BY 1, 3, 2, 4; 重點關注optimizer列,filter_predicates列。 若是該sql不在shared pool中時,改為執行如下的sql: set linesize 500 set pagesize 500 col plan_hash_value format 9999999999 col id format 999999 col operation format a30 col options format a15 col object_owner format a15 col object_name format a20 col optimizer format a15 col cost format 9999999999 col access_predicates format a15 col filter_predicates format a15
SELECT plan_hash_value, id, LPAD (' ', DEPTH) || operation operation, options, object_owner, object_name, optimizer, cost, access_predicates, filter_predicates FROM dba_hist_sql_plan WHERE sql_id = 'fahv8x6ngrb50' ORDER BY plan_hash_value, id; 重點關注filter_predicates列。--這一列能幫助判斷不走索引的原因。這一列的查詢結果若是為null,那就是正常的。若是不為null,那就需要額外關注不為空的原因,如下圖所示: \

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved