配置查詢優化器

2021-05-25 02:54:28 字數 1389 閱讀 7328

1.配置還是不配置

沒有任何乙個引數的選值適用於所有情況

2.配置路線圖

3.設定正確的引數

-optimizer_mode 查詢優化器依據該值決定哪個是最高效的執行計畫

all_rows:獲取所的記錄更重要

first_rows_n(n=1,10,100...1000)獲取前幾行更重要

-optimizer_features_enable 保留查詢優化器在舊版本上原有的行為

-db_file_multiblock_read_count在多塊讀的情況下,資料庫引擎使用最大i/o大小取決於初始化引數db_file_multiblock_read_count和db_block_size的乘積,因此在多塊讀時最大的塊數是用最大的i/o吞吐量除以乙個塊的大小。在工作量統計資訊不可用時,多塊讀操作的開銷計算有直接影響

無系統統計資訊時多塊多的系統開銷io_cost約=blocks/1.6765*db_file_multiblock_read_count(0.6581次方)

工作量統計資訊計畫多塊操作i/o開銷io_cost約=blocks/mbrc * mreadtim/sreadtim

-optimizer_dynamic_sampling查詢優化器使用動態取樣作為評估依據,取值(0-10)個等級

-optimizer_index_cost_adj 調節索引掃瞄開銷

io_cost=(blevel+(leaf_blocks+clustering_factor)*selectivity)*optimizer_index_cost_adj/100

-optimizer_index_caching 用於在執行in-list遍歷和巢狀迴圈連線時,指出預計已存在於快取記憶體的索引塊數

io_cost=(blevel+leaf_blocks*selectivity)*(1-optimizer_index_caching/100)+clustering_factor*selectivity)*optimizer_index_cost_adj/100

-optimizer_secure_view_merging 用於控制檢視合併,可設定為false或true

false允許查詢優化器每次都執行檢視合併

true只在不會引起安全問題的情況下允許檢視合併

4.pga管理

-workarea_size_policy指定控制工作大小的方式

-pga_aggregate_target指定乙個例項可用的總pga大小

-sort_area_size指定用於合併連線、排序、聚合的工作區大小

-sort_area_retained_size指定用於排序操作的工作區大小

--hash_area_size指定用於hash連線工作區域大小

-bitmap_merge_area_size指定用於合併與點陣圖索引相關工作區大小

Oracle 配置查詢優化器

一.背景介紹 查詢優化器對於sql語句的效能非常重要,因為我們寫的sql語句最後被資料庫執行,是通過查詢優化器生成執行計畫實現的。如果查詢優化器生成的執行計畫低效,那麼就會導致低劣的效能。有一些引數的配置能夠影響到查詢優化器生成高效的執行計畫,但也是有風險的。總之,可以這麼說,配置查詢優化器的代價是...

mysql 查詢優化器 資料庫查詢優化器

所謂查詢優化,目標是關聯式資料庫下或者 newsql 的 sql server 層對 sql 語句進行優化,在不改變期望結果的情況下使得資料庫引擎計畫執行時間最短。狹義的查詢優化技術是指邏輯優化與物理優化 在後面會細講 廣義上的查詢優化技術包括從 sql 語句輸入開始,對 sql 語句的重寫,內部執...

MYSQL查詢優化器

1 優化器本質 計算io成本 減少io訪問次數 計算cpu成本 制定成本消耗最低的方案 2 優化的兩個階段 邏輯查詢計畫優化 邏輯表示式,算術運算子等 物理查詢計畫優化 mysql中的各級buffer cache 1 buffer cache用於訪問加速以記憶體空間換取效能 2 在幾乎所有需要磁碟i...