文章詳情頁
Oracle Optimizer:遷移到使用基于成本的優化器-----系列1.2
瀏覽:44日期:2023-11-18 17:00:33
Oracle Optimizer:遷移到使用基于成本的優化器-----系列1.23.2基于成本的優化器(CBO) 基于成本優化器遵循計算代價的方法學。所有的執行計劃隨成本標識,優化器選擇成本最低的一個。在執行計劃中,較高的成本將意味著較高的資源。成本越低,對查詢來說越高效。CBO使用所有存儲在數據字典中可用的統計資料信息和柱狀圖,用戶提供提示和的參數設置來達成使用的成本,CBO生成所有可能訪問方法的排列然后選擇最合適的。排列的數量依靠于查詢中出現的表數量,有時能達到約80,000個排列甚至更多,請參考系列的第二部分參數章節來設置相關參數。CBO也可能完成諸如查詢轉換、視圖合并或轉換的操作,增加join謂詞等等。這將改變原始語句并改變正存在或者是新添加的謂詞,得自新的訪問計劃的所有的這些目的會比原來存在的好些。注重轉換并不影響返回的數據,而僅僅是執行路徑,請參考系列第二部分參數章節相關聯的信息。3.2.1統計資料統計資料按順序提供了準確的輸入以供CBO正常工作;生成的數據存儲在對象中并且包括諸如表中行的數量、列中單一值、索引中頁的塊數等等信息。統計資料越準確,優化器提供的結果越高效。請參考本系列第三部分生成統計資料章節中怎樣生成這些信息和如何最好地維持它。統計資料可能是精確的或估計的,它用COMPUTE 子句分析在對象中所有的數據,它將給優化器精確的信息以工作并且達到完美的執行計劃。用ESTIMATE子句,將會分析在對象中提及的樣本大小的數據內容從而生成統計資料,樣本大小會被指定成隨機分析的行的數量或者行的百分比從而生成統計資料,也可以指定可選的塊樣例,假如系統中存在巨額表數據,它將節約時間。好的執行計劃的前提依靠于估計值和精確值有多接近,可以試驗一下設置不同的樣本大小來達到適合的目標或對不同類型的表產生不同的評估級別,這種思想對達到接近精確統計是相當可行的。統計資料存儲在所有者為SYS用戶的數據詞典中,下面的視圖顯示了表、列,索引的收集統計信息.表:DBA_TABLESNUM_ROWS –行的數量BLOCKS – 已用的塊數量EMPTY_BLOCKS –未使用的空塊數量AVG_SPACE – 分配給表的平均自由空間(以字節計),考慮所有空的和自由的塊.CHAIN_CNT – 鏈連或移動的行的數量AVG_ROW_LEN –以字節計的平均行的長度LAST_ANALYZED – 上次表分析的日期SAMPLE_SIZE –提供給ESTIMATE統計的樣本大小,對于COMPUTE則等于NUM_ROWS列的值.GLOBAL_STATS –對于分區表, YES –收集統計資料將作為一個整體, NO –收集統計資料將估計表USER_STATS –假如用戶指明為表設置統計,則為YES對于一個表的單獨分區的統計資料從DBA_TAB_PARTITIONS可以找到,簇統計資料從DBA_CLUSTERS可以找到.列DBA_TAB_COLUMNS NUM_DISTINCT – 單一值的數量LOW_VALUE –最小值HIGH_VALUE – 最高值DENSITY – 列的聚集度.NUM_NULLS –涉及列空值的記錄數 NUM_BUCKETS – 柱狀圖中柱的數量,參考柱狀圖章節SAMPLE_SIZE –ESTIMATE統計提供的樣本大小,假如是COMPUTE則等于全部行數LAST_ANALYZED -上次表分析的日期DBA_TAB_COL_STATISTICS 顯示相似的數據,–對于分區表列統計資料從DBA_PART_COL_STATISTICS和DBA_SUBPART_COL_STATISTICS可以找到索引DBA_INDEXES BLEVEL –索引的深度,從根級到葉級LEAF_BLOCKS –頁級塊的數量. DISTINCT KEYS – 單一鍵值的數量AVG_LEAF_BLOCKS_PER_KEY –每一個單一鍵值出現的平均數量對于獨特索引應該為1AVG_DATA_BLOCKS_PER_KEY –單一鍵值指向的表中塊的平均數量CLUSTERING_FACTOR –決定行按索引排序的總數.假如數量靠近塊的數量,則該表是按照索引順序排序的,也就是說,頁未級的的全部指向表中同一塊的行.假如索引與行數接近,索引會隨機排序, 也就是說, 頁未級的的全部是分散指向多個塊的行。NUM_ROWS – 索引行數SAMPLE_SIZE - ESTIMATE統計提供的樣本大小,假如是COMPUTE則等于全部行數LAST_ANALYZED -上次表分析的日期GLOBAL_STATS對于分區表, YES –收集統計資料將作為一個整體, NO –收集統計資料將估計表USER_STATS假如用戶指明為表設置統計,則為YESPCT_DIRECT_Access –索引組織表的次要索引,有效猜測行的百分比單一分區索引統計可從DBA_IND_PARTITIONS 和DBA_IND_SUBPARTITIONS找到涉及到柱狀圖信息的數據詞典以后將會討論. (待續) right'>(出處:清風軟件下載學院)
排行榜
