重慶分公司
重慶分公司
oracle常見hint
與優(yōu)化器模式相關的hint
- 1.1 /*+ all_rows */ 讓優(yōu)化器啟動CBO
- 1.2 /*+ first_rows(n)*/優(yōu)化器啟動CBO,選擇會快返回前n行數(shù)據(jù)的執(zhí)行計劃。與first_rows_n不同,first_rows_n n只能為1,10,100,1000.
- 1.3 /*+ rule */ 啟動RBO,與其他hint連用,其他hint一般會失效。
與表及索引訪問相關的hint
- 2.1 full(xxx) 全表掃描
- 2.2 index(目標表 目標索引1 目標索引2)
- 2.3 no_index(目標表 目標索引1 目標索引2)
- 2.4 index_desc(目標表 目標索引1 目標索引2) 讓優(yōu)化器對目標索引執(zhí)行降序掃描,如目標索引是降序,則hint則以升序掃描目標索引。
- 2.5 index_ffs(目標表 目標索引1 目標索引2) 索引快速全掃描
與表連接順序相關的hint
- 3.1 ordered 讓優(yōu)化器在執(zhí)行多表連接時,按照他們在sql中where條件出現(xiàn)順序進行連接。查詢轉(zhuǎn)換可能會導致這個hint失效。
- 3.2 leading(表1 表2) 讓優(yōu)化器將我們執(zhí)行多個表的連接結果作為目標sql表連接過程中的結果集,并將hint中自左到右的第一個表,作為表連接的驅(qū)動表。
與表連接方法相關的hint
- 4.1 use_merge(表1 表2) 讓優(yōu)化器將我們指定的多個表作為被驅(qū)動表與其他表或結果集做排序合并連接。
- 4.2 no_use_merge(表1 表2)
- 4.3 use_nl(表1 表2) 讓優(yōu)化器將我們指定的多個表作為被驅(qū)動表與其他表或結果集做嵌套循環(huán)連接。經(jīng)常與leading合用。
- /*+use_nl(s,X) leading X */
- 4.4 no_use_merge(表1 表2)
- 4.5 use_hash(表1 表2) 讓優(yōu)化器將我們指定的多個表作為被驅(qū)動表與其他表或結果集做哈希連接。經(jīng)常與leading合用。
- 4.6 no_use_merge(表1 表2)
- 4.7 merge_aj 針對子查詢的hint,讓優(yōu)化器對目標表執(zhí)行排序合并反連接。
- 4.8 nl_aj 針對子查詢的hint,讓優(yōu)化器對目標表執(zhí)行嵌套循環(huán)反連接。
- 4.9 hash_aj 針對子查詢的hint,讓優(yōu)化器對目標表執(zhí)行哈希反連接。
- 4.10 merge_sj 針對子查詢的hint,讓優(yōu)化器對目標表執(zhí)行排序合并半連接。
- 4.11 nl_sj 針對子查詢的hint,讓優(yōu)化器對目標表執(zhí)行嵌套循環(huán)半連接。
- 4.12 hash_sj 針對子查詢的hint,讓優(yōu)化器對目標表執(zhí)行哈希半連接
與查詢轉(zhuǎn)換相關的hint
- 5.1 use_concat 是針對目標sql的hint,讓優(yōu)化器對目標sql使用in_list擴展或or_list擴展。
- 5.2 no_expand 是use_concat反義hint,不讓優(yōu)化器對目標sql使用in_list擴展或or_list擴展。
- 5.3 merge 是針對單個目標視圖的hint,讓優(yōu)化器對目標視圖執(zhí)行視圖合并(view merging)
- 5.4 no_merge 是針對merge的反義hint,不讓優(yōu)化器對目標視圖執(zhí)行視圖合并(view merging)
- 5.5 unnest 是針對子查詢的hint,讓優(yōu)化器對目標sql中的子查詢展開(subquery unnesting)
- 5.6 no_unnest 是針對unnest反義的hint,不讓優(yōu)化器對目標sql中的子查詢展開(subquery unnesting)
- 5.7 expand_table(表) 讓優(yōu)化器在不考慮成本的情況下,對表進行表擴展
- 5.8 no_expand_table(表) expand_table(表)的反義hint,不對表進行表擴展
與并行有關的hint
- 6.1 parallel 并行
- 6.2 no_parallel 針對整個目標sql的hint
- 6.3 parallel_index(表 index-1 index-2 ... index-n n n n )
- 6.4 no_parallel_index(表 index-1 index-2 ... index-n)
其他常見hint
- 7.1 driving_site 讓優(yōu)化器在我們指定目標表所在的節(jié)點上執(zhí)行目標sql。只適用于帶dblink的分布式查詢語句。
- 7.2 append 讓優(yōu)化器執(zhí)行帶子查詢的insert時,繞開buffer cache,使用直接路徑插入。
- 7.3 append_values 讓優(yōu)化器執(zhí)行帶values的insert時,繞開buffer cache,使用直接路徑插入。(11R2)
- 7.4 push_pred 針對目標視圖的hint,讓優(yōu)化器對目標視圖執(zhí)行連接謂詞推入。
- 7.5 no_push_pred 針對目標視圖的hint,不讓優(yōu)化器對目標視圖執(zhí)行連接謂詞推入。
- 7.6 push_subq 針對子查詢的hint,讓優(yōu)化器盡早執(zhí)行目標sql中不能做子查詢展開的子查詢。
- 7.7 no_push_subq 針對子查詢的hint,讓優(yōu)化器最后執(zhí)行目標sql中不能做子查詢展開的子查詢。
- 7.8 opt_param 針對目標sql的hint,用來修改針對目標sql比系統(tǒng)級,session級更細顆粒的更改。
- 7.9 optimizer_features_enable('優(yōu)化器版本號') 更改優(yōu)化器版本
- 7.10 qb_name 對一個查詢塊指定自定義的名稱。
- 7.11 cardinality 針對單個目標表的hint,用來設置對目標表執(zhí)行掃描操作后的cardinality的值。(對唯一索引掃描無效)
- 7.12 swap_join_inputs 針對hash連接的hint,讓優(yōu)化器交換原h(huán)ash連接的驅(qū)動表和被驅(qū)動表順序。
分享題目:oracle常見hint
網(wǎng)站路徑:
http://weahome.cn/article/jsdjjp.html
-
在線咨詢
微信咨詢
電話咨詢
-
028-86922220(工作日)
18980820575(7×24)
-
提交需求
-
返回頂部