Oracle中hint語句的30個用法

來源:互聯網
上載者:User

在SQL語句最佳化過程中,經常會用到hint,下面我們來介紹一下在SQL最佳化過程中常見Oracle中"HINT"的 30個用法:

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';

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.