婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ORACLE中的的HINT詳解

ORACLE中的的HINT詳解

熱門標簽:電話機器人那種好 上海網絡外呼系統 百度地圖標注飯店位置怎么 外呼系統好點子 區域地圖標注怎么設置 南通電銷外呼系統哪家強 理財產品電銷機器人 百度地圖標注注解 地圖標注的坐標點

hints是oracle提供的一種機制,用來告訴優化器按照我們的告訴它的方式生成執行計劃。我們可以用hints來實現:  

1) 使用的優化器的類型  

2) 基于代價的優化器的優化目標,是all_rows還是first_rows。  

3) 表的訪問路徑,是全表掃描,還是索引掃描,還是直接利用rowid。  

4) 表之間的連接類型  

5) 表之間的連接順序  

6) 語句的并行程度  

2、HINT可以基于以下規則產生作用  

表連接的順序、表連接的方法、訪問路徑、并行度  

3、HINT應用范圍  

dml語句  

查詢語句  

4、語法  

 {DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */ 

or  

 {DELETE|INSERT|SELECT|UPDATE} --+ hint [text] [hint[text]]... 

如果語(句)法不對,則ORACLE會自動忽略所寫的HINT,不報錯  

1. /*+ALL_ROWS*/  

表明對語句塊選擇基于開銷的優化方法,并獲得最佳吞吐量,使資源消耗最小化.  

例如:  

SELECT /*+ALL_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 

2. /*+FIRST_ROWS*/  

表明對語句塊選擇基于開銷的優化方法,并獲得最佳響應時間,使資源消耗最小化.  

例如:  

SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 

3. /*+CHOOSE*/  

表明如果數據字典中有訪問表的統計信息,將基于開銷的優化方法,并獲得最佳的吞吐量;  

表明如果數據字典中沒有訪問表的統計信息,將基于規則開銷的優化方法;  

例如:  

SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 

4. /*+RULE*/  

表明對語句塊選擇基于規則的優化方法.  

例如:  

SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 

5. /*+FULL(TABLE)*/  

表明對表選擇全局掃描的方法.  

例如:  

SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT'; 

6. /*+ROWID(TABLE)*/  

提示明確表明對指定表根據ROWID進行訪問.  

例如:  

 SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA' 
 AND EMP_NO='SCOTT'; 

7. /*+CLUSTER(TABLE)*/  

提示明確表明對指定表選擇簇掃描的訪問方法,它只對簇對象有效.  

例如:  

SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS 
 
 WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO; 

8. /*+INDEX(TABLE INDEX_NAME)*/  

表明對表選擇索引的掃描方法.  

例如:    

 SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS */ FROM BSEMPMS WHERE SEX='M'; 

9. /*+INDEX_ASC(TABLE INDEX_NAME)*/  

表明對表選擇索引升序的掃描方法.  

例如:  

SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='SCOTT'; 

10. /*+INDEX_COMBINE*/  

為指定表選擇位圖訪問路經,如果INDEX_COMBINE中沒有提供作為參數的索引,將選擇出位圖索引的布爾組合方式.  

例如:  

SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS 
WHERE SAL5000000 AND HIREDATE 

11. /*+INDEX_JOIN(TABLE INDEX_NAME)*/  

提示明確命令優化器使用索引作為訪問路徑.  

例如:  

SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE 
FROM BSEMPMS WHERE SAL60000; 

12. /*+INDEX_DESC(TABLE INDEX_NAME)*/  

表明對表選擇索引降序的掃描方法.  

例如:  

SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='SCOTT'; 

13. /*+INDEX_FFS(TABLE INDEX_NAME)*/  

對指定的表執行快速全索引掃描,而不是全表掃描的辦法.  

例如:  

SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305'; 

14. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/  

提示明確進行執行規劃的選擇,將幾個單列索引的掃描合起來.  

例如:  

 SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306'; 

15. /*+USE_CONCAT*/  

對查詢中的WHERE后面的OR條件進行轉換為UNION ALL的組合查詢.  

例如:  

 SELECT /*+USE_CONCAT*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M'; 

16. /*+NO_EXPAND*/  

對于WHERE后面的OR 或者IN-LIST的查詢語句,NO_EXPAND將阻止其基于優化器對其進行擴展.  

例如:  

SELECT /*+NO_EXPAND*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M'; 

17. /*+NOWRITE*/  

禁止對查詢塊的查詢重寫操作.  

18. /*+REWRITE*/  

可以將視圖作為參數.  

19. /*+MERGE(TABLE)*/  

能夠對視圖的各個查詢進行相應的合并.  

例如:  

SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO 
 
 ,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO 
 
 AND A.SAL>V.AVG_SAL; 

20. /*+NO_MERGE(TABLE)*/  

對于有可合并的視圖不再合并.  

例如:  

SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELECT DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL; 

21. /*+ORDERED*/  

根據表出現在FROM中的順序,ORDERED使ORACLE依此順序對其連接.  

例如:  

 SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1; 

22. /*+USE_NL(TABLE)*/  

將指定表與嵌套的連接的行源進行連接,并把指定表作為內部表.  

例如:  

SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO; 

23. /*+USE_MERGE(TABLE)*/  

將指定的表與其他行源通過合并排序連接方式連接起來.  

例如:  

SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO; 

24. /*+USE_HASH(TABLE)*/  

將指定的表與其他行源通過哈希連接方式連接起來.  

例如:  

SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO; 

 25. /*+DRIVING_SITE(TABLE)*/  

強制與ORACLE所選擇的位置不同的表進行查詢執行.  

例如:  

SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO; 

26. /*+LEADING(TABLE)*/  

將指定的表作為連接次序中的首表.  

27. /*+CACHE(TABLE)*/  

當進行全表掃描時,CACHE提示能夠將表的檢索塊放置在緩沖區緩存中最近最少列表LRU的最近使用端  

例如:  

SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS; 

28. /*+NOCACHE(TABLE)*/  

當進行全表掃描時,CACHE提示能夠將表的檢索塊放置在緩沖區緩存中最近最少列表LRU的最近使用端  

例如: 

SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS; 

29. /*+APPEND*/  

直接插入到表的最后,可以提高速度.  

insert /*+append*/ into test1 select * from test4 ; 

30. /*+NOAPPEND*/  

通過在插入語句生存期內停止并行模式來啟動常規插入.  

insert /*+noappend*/ into test1 select * from test4 ; 

31. NO_INDEX: 指定不使用哪些索引  

/*+ NO_INDEX ( table [index [index]...] ) */ 
select /*+ no_index(emp ind_emp_sal ind_emp_deptno)*/ * from emp where deptno=200 and sal>300; 

32. parallel  

select /*+ parallel(emp,4)*/ * from emp where deptno=200 and sal>300; 

另:每個SELECT/INSERT/UPDATE/DELETE命令后只能有一個/*+ */,但提示內容可以有多個,可以用逗號分開,空格也可以。  

如:/*+ ordered index() use_nl() */  

--------- 

類似如下的一條語句:insert into xxxx select /*+parallel(a) */ * from xxx a;數據量大約在75G左右,這位兄弟從上午跑到下午還沒跑完,過來問我咋回事,說平常2hrs能跑完的東西跑了好幾個小時還撒動靜。查看系統性能也比較 正常,cpu,io都不繁忙,平均READ速度在80M/s左右(勉強湊合),但平均寫速度只有10M不到。等待事件里面大量的‘ ‘PX Deq Credit: send blkd',這里能看出并行出了問題,從而最后得知是并行用法有問題,修改之后20分鐘完成了該操作。正確的做法應該是:  

alter session enable dml parallel; 
insert /*+parallel(xxxx,4) */ into xxxx select /*+parallel(a) */ * from xxx a;

因為oracle默認并不會打開PDML,對DML語句必須手工啟用。 另外不得不說的是,并行不是一個可擴展的特性,只有在數據倉庫或作為DBA等少數人的工具在批量數據操作時利于充分利用資源,而在OLTP環境下使用并行 需要非常謹慎。事實上PDML還是有比較多的限制的,例如不支持觸發器,引用約束,高級復制和分布式事務等特性,同時也會帶來額外的空間占用,PDDL同 樣是如此。

--------- 

select count(*) 
 From wid_serv_prod_mon_1100 a 
 where a.acct_month = 201010 
  and a.partition_id = 10 
  and serv_state not in ('2HB', '2HL', '2HJ', '2HP', '2HF') 
  and online_flag in (0) 
  and incr_product_id in (2000020) 
  and product_id in (2020966, 2020972, 2100297, 2021116) 
  and billing_mode_id = 1 
  and exp_date > to_date('201010', 'yyyymm') 
  and not exists (select /*+no_index (b IDX_W_CDR_MON_SERV_ID_1100)*/ 
     1 
     from wid_cdr_mon_1100 b 
     where b.acct_month = 201010 
      and b.ANA_EVENT_TYPE_4 in 
        ('10201010201', '10202010201', '10203010201', '10203010202', '10203030201', '10203030202', '10204010201', '10204010202', '10204030201') 
      and a.serv_id = b.serv_id) 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Oracle中基于hint的3種執行計劃控制方法詳細介紹

標簽:遼源 自貢 中衛 海東 紹興 百色 寧波 昭通

巨人網絡通訊聲明:本文標題《ORACLE中的的HINT詳解》,本文關鍵詞  ORACLE,中,的的,HINT,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ORACLE中的的HINT詳解》相關的同類信息!
  • 本頁收集關于ORACLE中的的HINT詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩精品欧美日韩精品| 色噜噜偷拍精品综合在线| 亚洲人成网站在线| 五月激情六月综合| 欧美丝袜自拍制服另类| 亚洲靠逼com| 99视频超级精品| 国产精品久久一卡二卡| 丁香婷婷综合网| 亚洲欧洲精品一区二区三区| 色综合色综合色综合| 亚洲h动漫在线| 日韩欧美国产午夜精品| 精品一区二区三区久久久| 久久久久久毛片| av亚洲产国偷v产偷v自拍| 一区二区三区在线播放| 欧美日韩黄色影视| 久久国产剧场电影| 日本一区二区三区免费乱视频| zzijzzij亚洲日本少妇熟睡| 亚洲va韩国va欧美va精品| 91精品国产欧美日韩| 国产精品系列在线播放| 一区二区三区鲁丝不卡| 26uuu色噜噜精品一区| 美女视频黄a大片欧美| 亚洲国产精品黑人久久久| 色综合久久中文综合久久97| 日韩中文字幕区一区有砖一区 | 亚洲蜜臀av乱码久久精品| 欧美在线色视频| 麻豆精品在线观看| 亚洲第一精品在线| 欧美另类久久久品| 国产一区二区三区香蕉| 成人免费在线视频观看| 欧美日韩精品综合在线| 成人在线综合网站| 亚洲不卡av一区二区三区| 国产精品欧美久久久久无广告| 欧美性受xxxx黑人xyx| 青青草91视频| 一区二区三区加勒比av| 久久久精品影视| 欧美精品亚洲一区二区在线播放| 韩国v欧美v日本v亚洲v| 亚洲va天堂va国产va久| 综合欧美一区二区三区| 国产日韩精品一区| 日韩欧美国产一区二区在线播放| 91麻豆swag| jlzzjlzz亚洲日本少妇| 高清在线不卡av| 精品一区二区日韩| 日韩av一区二区三区四区| 亚洲一区影音先锋| 一区二区三区四区在线播放| 欧美国产精品劲爆| 欧美国产一区二区在线观看| 亚洲精品一区二区三区蜜桃下载| 555www色欧美视频| 欧美日韩精品系列| 欧美三级日韩在线| 欧美日韩高清在线| 91久久国产最好的精华液| 99综合电影在线视频| 福利电影一区二区| 懂色一区二区三区免费观看| 国产福利视频一区二区三区| 国产精品一二三四| 国产成人aaaa| 波多野结衣中文一区| 99re这里只有精品6| 91久久精品一区二区二区| 欧美在线免费视屏| 欧美一区二区三区公司| 欧美精品一区二区不卡| 久久午夜老司机| 中文字幕欧美激情一区| 国产精品大尺度| 亚洲免费观看在线视频| 石原莉奈一区二区三区在线观看| 免费看日韩精品| 国产精品影音先锋| 91蜜桃在线观看| 欧美日韩精品久久久| 精品第一国产综合精品aⅴ| 中文在线免费一区三区高中清不卡| 国产精品久久久久精k8| 亚洲第一成年网| 久久99精品久久久| 白白色 亚洲乱淫| 欧美精品123区| 国产亚洲精品超碰| 亚洲综合色噜噜狠狠| 麻豆国产欧美一区二区三区| 高清在线不卡av| 欧美精品v日韩精品v韩国精品v| 国产欧美一区在线| 午夜精品一区二区三区免费视频| 狠狠色伊人亚洲综合成人| av成人老司机| 日韩美女视频在线| 亚洲乱码中文字幕| 国内外精品视频| 欧美日韩一二三| 欧美国产日本韩| 美女网站一区二区| 在线观看网站黄不卡| 久久女同性恋中文字幕| 亚洲国产日韩av| 成人网男人的天堂| 精品国产一区二区亚洲人成毛片| 中文字幕字幕中文在线中不卡视频| 日韩精品一二三四| 色一区在线观看| 国产精品视频线看| 美女精品一区二区| 欧美亚洲综合久久| 亚洲免费av网站| 成人99免费视频| 久久婷婷国产综合国色天香 | 久久久91精品国产一区二区三区| 亚洲国产成人porn| 成人小视频免费观看| 精品国产一二三| 天堂久久久久va久久久久| 91高清视频免费看| 亚洲精品综合在线| 91在线porny国产在线看| 国产日韩影视精品| 狠狠色丁香婷婷综合| 欧美日韩久久一区二区| 亚洲黄一区二区三区| 99免费精品在线观看| 中文字幕一区二区三区在线不卡| 久久国产精品一区二区| 欧美精品一区二区三区蜜桃视频 | 精品一区二区久久| 制服丝袜成人动漫| 午夜a成v人精品| 欧美日韩国产电影| 日日摸夜夜添夜夜添国产精品| 欧美日韩国产区一| 奇米色一区二区| 精品第一国产综合精品aⅴ| 国产精品自拍网站| 国产精品传媒入口麻豆| 色偷偷久久一区二区三区| 亚洲精品中文在线| 在线视频你懂得一区| 日韩成人午夜精品| 26uuu另类欧美| av亚洲产国偷v产偷v自拍| 日韩一区中文字幕| 欧洲国内综合视频| 五月天欧美精品| 欧美大片日本大片免费观看| 国产又粗又猛又爽又黄91精品| 欧美一卡二卡在线观看| 国产精品一区免费在线观看| 久久精品人人做人人爽人人| 不卡免费追剧大全电视剧网站| 亚洲精品免费在线播放| 欧美怡红院视频| 国产一区二区三区在线观看精品 | 国产欧美一区二区三区网站| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 91官网在线免费观看| 亚洲高清免费视频| 欧美r级在线观看| 91网站最新地址| 日本麻豆一区二区三区视频| 久久精品人人爽人人爽| 91黄视频在线观看| 国产一区日韩二区欧美三区| 亚洲色图19p| 日韩欧美色综合网站| 97久久精品人人爽人人爽蜜臀| 奇米色777欧美一区二区| 亚洲欧美日韩一区| 久久久www成人免费无遮挡大片| 色乱码一区二区三区88| 国产成a人亚洲精| 青青草原综合久久大伊人精品| 国产精品美女久久久久久久久| 欧美一级一区二区| 欧美中文字幕一区二区三区亚洲| 国产精品1024| 六月婷婷色综合| 亚洲尤物在线视频观看| 国产精品网站导航| 久久久无码精品亚洲日韩按摩| 欧美日韩二区三区| 91成人在线精品| 色88888久久久久久影院按摩 | 午夜欧美2019年伦理| 亚洲天堂精品在线观看| 久久品道一品道久久精品|