Optimizer_Dynamic_Sampling參數說明

by Daphne Lin 27. 三月 2011 22:59

作者:申建忠

精誠資訊 恆逸教育訓練中心 資深講師


從Oracle 10g開始,Optimizer(最佳化處理程式)預設採用CBO(Cost Based Optimizer)模式。最佳化處理程式需要Table(表格)的statistics(統計資料)找出成本最低的Execution plan(執行計畫),因此統計資料的正確性對執行計畫的選擇扮演相當重要的角色。雖然Oracle 10g開始有自動收集統計資料的Job(工作),將會在每天晚上與週六日自動執行統計資料收集作業。但是還是有些表格剛剛建立時,並沒有統計資料存在。因此Oracle資料庫藉由optimizer_dynamic_sampling參數,讓最佳化處理程式遇到沒有統計資料存在的表格時,可以動態地使用抽樣的方式得到統計資料,讓最佳化處理程式得以正確地找到執行成本相對低的執行計畫。


Optimizer_Dynamic_Sampling的參數值為整數,可由0到10。以下針對每個參數值進行說明:

0=>表示關閉動態抽樣收集,讓最佳化處理程式使用Data Dictionary(資料辭典的內容(如表格所被配置的extent個數與表格欄位個數與資料形態等)計算可能的統計資料。

1=>SQL敘述句(Statement)所使用到的所有表格都沒有統計資料存在,而且滿足下列4個條件時,最佳化處理程式便可以藉由抽樣其中32個區塊(block),取得表格的統計資料。

條件1.SQL敘述句中,至少有一個表格沒有統計資料,且該表格不是partitioned table。

條件2.該表格(滿足條件1的表格)與其他表格結合(join)或位在子查詢內(subquery)或在不可合併的視觀表內(non-mergeable view)。

條件3.該表格(滿足條件2的表格)沒有索引存在。

條件4.該表格(滿足件3的表格)的區塊數量大於32個。

2=>SQL敘述句所使用的表格,至少有一個表格沒有統計資料。但抽樣的資料區塊個數為64個。

3=>滿足optimizer_dynamic_sampling=2的所有條件,且SQL敘述句中有至少一個運算式(expression:例如where last_name='King')。

此時將抽樣64個資料區塊當作分析統計的基準。

4=>滿足optimizer_dynamic_sampling=3的所有條件,且SQL敘述句中對同一個table使用多個述詞(predicate:例如where last_name='King' and salary>10000)

此時將抽樣32個資料區塊當作分析統計的基準。

5=>滿足optimizer_dynamic_sampling=4的要求,但抽樣的資料區塊數量為2倍的預設區塊數量(32),即使用64個區塊。

6=>滿足optimizer_dynamic_sampling=5的要求,但抽樣的資料區塊數量為4倍的預設區塊數量(32),即使用128個區塊。

7=>滿足optimizer_dynamic_sampling=6的要求,但抽樣的資料區塊數量為8倍的預設區塊數量(32),即使用256個區塊。

8=>滿足optimizer_dynamic_sampling=7的要求,但抽樣的資料區塊數量為32倍的預設區塊數量(32),即使用1024個區塊。

9=>滿足optimizer_dynamic_sampling=8的要求,但抽樣的資料區塊數量為128倍的預設區塊數量(32),即使用4096個區塊。

10=>對所有滿足optimizer_dynamic_sampling=9的表格,使用整個表格所有的區塊進行分析。



可在課程中了解更多的Optimizer…
相關學習資源︰10gAW I :Oracle 10g資料庫之資料庫管理實作課程-I

                        10gAW II: Oracle 10g資料庫之資料庫管理實作課程-II

                        11gAW I :Oracle 11g資料庫之資料庫管理實作課程–I

                        11gAW II:Oracle 11g資料庫之資料庫管理實作課程–II

                        10gPER:Oracle 10g資料庫之效能調整

                        11gPER:Oracle 11g資料庫之效能調整

Tags:

Oracle資料庫 | 申建忠Frank Shen

新增評論




  Country flag
biuquote
  • 評論
  • 線上預覽
Loading






NET Magazine國際中文電子雜誌

NET Magazine國際中文電子版雜誌,由恆逸資訊創立於2000,自發刊日起迄今已發行超過500篇.NET相關技術文章,擁有超過40000名註冊讀者群。NET Magazine國際中文電子版雜誌希望藉於電子雜誌與NET Developer達到共同學習與技術新知分享,歡迎每一位對.NET 技術有興趣的朋友們多多支持本雜誌,讓作者群們可以有持續性的動力繼續爬文。<請加入免費訂閱>

月分類Month List