Oracle HINT的常用用法在SQL優(yōu)化過程中
在SQL優(yōu)化過程中有很多的用法可供我們大家選擇的,今天我們主要向大家介紹一些i實(shí)際應(yīng)用中比較常見Oracle HINT的幾種用法,我在一個(gè)信譽(yù)度很好的網(wǎng)站找到一個(gè)關(guān)于SQL優(yōu)化過程中常見Oracle HINT的用法的資料,拿出來供大家分享。
在SQL語句優(yōu)化過程中,我們經(jīng)常會(huì)用到hint,現(xiàn)總結(jié)一下在SQL優(yōu)化過程中常見Oracle HINT的用法:
- /*+ALL_ROWS*/
表明對(duì)語句塊選擇基于開銷的優(yōu)化方法,并獲得***吞吐量,使資源消耗最小化.
例如:
- SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
- /*+FIRST_ROWS*/
表明對(duì)語句塊選擇基于開銷的SQL優(yōu)化過程中常見Oracle HINT的用法,并獲得***響應(yīng)時(shí)間,使資源消耗最小化.
例如:
- SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
- /*+CHOOSE*/
表明如果數(shù)據(jù)字典中有訪問表的統(tǒng)計(jì)信息,將基于開銷的優(yōu)化方法,并獲得***的吞吐量;
表明如果數(shù)據(jù)字典中沒有訪問表的統(tǒng)計(jì)信息,將基于規(guī)則開銷的優(yōu)化方法;
例如:
- SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
- /*+RULE*/
表明對(duì)語句塊選擇基于規(guī)則的優(yōu)化方法.
例如:
- SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
- /*+FULL(TABLE)*/
表明對(duì)表選擇全局掃描的方法.
例如:
- SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT';
- /*+ROWID(TABLE)*/
提示明確表明對(duì)指定表根據(jù)ROWID進(jìn)行訪問.
例如:
- SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'
- AND EMP_NO='SCOTT';
- /*+CLUSTER(TABLE)*/
提示明確表明對(duì)指定表選擇簇掃描的訪問方法,它只對(duì)簇對(duì)象有效.
例如:
- SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
- WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
- /*+INDEX(TABLE INDEX_NAME)*/
表明對(duì)表選擇索引的掃描方法.
以上的相關(guān)內(nèi)容就是對(duì)SQL優(yōu)化過程中常見Oracle HINT的用法的介紹,望你能有所收獲。
【編輯推薦】