Oracle中“HINT”的使用方法

uuxa發表於2008-04-22
1. /*+ALL_ROWS*/
表示對語句塊選擇基於開銷的最佳化方法,並獲得最佳吞吐量,使資源消耗最小化。
2. /*+FIRST_ROWS*/
表示對語句塊選擇基於開銷的最佳化方法,並獲得最佳響應時間,使資源消耗最小化。
[@more@]
3. /*+CHOOSE*/ 
表示如果資料字典中有訪問表的統計資訊,將基於開銷的最佳化方法,並獲得最佳的吞吐量。
表示如果資料字典中沒有訪問表的統計資訊,將基於規則開銷的最佳化方法。
4. /*+RULE*/
  表示對語句塊選擇基於規則的最佳化方法。
5. /*+FULL(TABLE)*/
  表示對錶選擇全域性掃描的方法。
6. /*+ROWID(TABLE)*/
  提示明確表明對指定表根據ROWID進行訪問。
7. /*+CLUSTER(TABLE)*/
  提示明確表明對指定表選擇簇掃描的訪問方法,它只對簇物件有效。
8. /*+INDEX(TABLE INDEX_NAME)*/
  表示對錶選擇索引的掃描方法。
9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
  表示對錶選擇索引升序的掃描方法.
10. /*+INDEX_COMBINE*/
  為指定表選擇點陣圖訪問路經,如果INDEX_COMBINE中沒有提供作為引數的索引,將選擇出點陣圖索引的布
爾組合方式。
11. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
  提示明確命令最佳化器使用索引作為訪問路徑。
12. /*+INDEX_DESC(TABLE INDEX_NAME)*/
  表明對錶選擇索引降序的掃描方法。
13. /*+INDEX_FFS(TABLE INDEX_NAME)*/
  對指定的表執行快速全索引掃描,而不是全表掃描的辦法。
14. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/
  提示明確進行執行規劃的選擇,將幾個單列索引的掃描合起來。育學網 H+vq#q+i2z
15. /*+USE_CONCAT*/
  對查詢中的WHERE後面的OR條件進行轉換為UNION ALL的組合查詢。  
  
16. /*+NO_EXPAND*/
  對於WHERE後面的OR 或者IN-LIST的查詢語句,NO_EXPAND將阻止其基於最佳化器對其進行擴充套件。
17. /*+NOWRITE*/
  禁止對查詢塊的查詢重寫操作
18. /*+REWRITE*/
  可以將檢視作為引數。
19. /*+MERGE(TABLE)*/
  能夠對檢視的各個查詢進行相應的合併。
20. /*+NO_MERGE(TABLE)*/
  對於有可合併的檢視不再合併。
21. /*+ORDERED*/ 
根據表出現在FROM中的順序,ORDERED使ORACLE依此順序對其連線。
22. /*+USE_NL(TABLE)*/
  將指定表與巢狀的連線的行源進行連線,並把指定表作為內部表。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7416120/viewspace-1002848/,如需轉載,請註明出處,否則將追究法律責任。

相關文章