【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(四)
說明
1.整理了一些本人平時SQL 調優中常用到的一些Hint,方便大家參考
2.Hint相關文章地址:
Oracle Hint之概念與用法: http://blog.itpub.net/69992972/viewspace-2756965/
Oracle Hint之常用Hint功能概述(一): http://blog.itpub.net/69992972/viewspace-2757087/
Oracle Hint之常用Hint功能概述(二): http://blog.itpub.net/69992972/viewspace-2757182/
Oracle Hint之常用Hint功能概述(三): http://blog.itpub.net/69992972/viewspace-2757238/
Oracle Hint之常用Hint功能概述(四): http://blog.itpub.net/69992972/viewspace-2757242/
Oracle Hint之常用Hint功能概述(五): http://blog.itpub.net/69992972/viewspace-2757273/
未分類Hint(其一)
Hint 名 |
功能概述 |
舉例 |
/*+ append */ |
該hint讓最佳化器將直接路徑(Direct-path)INSERT與INSERT語句的子查詢語法一起使用來插入資料( 僅針對insert語句中有子查詢而不使用values關鍵字有效)。 注意: 1.常規INSERT是序列模式下的預設設定。在序列模式下,僅當包含APPEND HINT時才能使用直接路徑 2.在並行模式下,預設為直接路徑INSERT。 在並行模式下,僅當指定NOAPPEND HINT時,才能使用常規插入 3.INSERT是否會被並行執行的決定與APPEND HINT無關 4.在直接路徑INSERT中,資料被附加到表的末尾,而不是使用當前分配給表的現有空間。結果就是直接路徑INSERT可能比常規INSERT快得多 5. 僅INSERT語句的子查詢語法支援APPEND HINT,而不支援VALUES子句。 如果使用VALUES子句指定APPEND HINT,則將其忽略並使用常規插入 |
|
/*+ append_values */ |
該hint讓最佳化器將直接路徑INSERT與VALUES子句一起使用( 僅針對insert語句中有values關鍵字有效)。如果未指定此hint,則使用常規INSERT 注意: 1.在直接路徑INSERT中,資料被附加到表的末尾,而不是使用當前分配給表的現有空間。結果,直接路徑INSERT可能比常規INSERT快得多 2.該HINT可在下面的兩個情況下大大提高效能: (1)在Oracle Call Interface(OCI)程式中,當使用大型陣列繫結或帶有行回撥的陣列繫結時 (2)在PL / SQL中,當使用帶有帶有VALUES子句的INSERT語句的FORALL迴圈載入大量行時 3. 僅INSERT語句的VALUES子句支援APPEND_VALUES HINT。如果使用INSERT語句的子查詢語法指定APPEND_VALUES HINT,則將其忽略,並將使用常規插入 |
|
/*+ noappend */ |
該hint透過在INSERT語句的持續時間內禁用並行模式來讓最佳化器使用常規INSERT。APPEND HINT有提到:常規INSERT是序列模式下的預設設定,而直接路徑INSERT是並行模式下的預設設定 |
|
/*+ cache(tab) */ |
該hint讓最佳化器在執行全表掃描時將為表檢索的塊放在LRU列表中最近使用的緩衝區快取中。所以該hint對於小型查詢表很有用 |
SELECT /*+ FULL (e) CACHE(e) */ last_name FROM emp e; |
/*+ nocache(tab) */ |
該hint讓最佳化器在執行全表掃描時將為表檢索的塊放在LRU列表中最近最少使用的緩衝區快取中。 這是緩衝區快取記憶體中塊的預設方式 |
SELECT /*+ FULL (e) NOCACHE(e) */ last_name FROM emp e; |
/*+ clustering */ |
該hint僅對啟用了attribute clustering的表上的INSERT和MERGE操作有效。該hint為直接路徑插入(序列或並行)。該hint會覆蓋建立或更改表的DDL中的“NO ON LOAD”設定。該hint對未啟用attribute clustering的表沒有影響 |
|
/*+ no_clustering */ |
和CLUSTERING HINT一樣,該hint僅對啟用了attribute clustering的表上的INSERT和MERGE操作有效。但該hint禁用直接路徑插入(序列或並行)的屬性聚類。該hint將覆蓋在建立或更改表的DDL中的“YES ON LOAD”設定。該hint對未啟用attribute clustering的表沒有影響 |
|
/*+ cursor_sharing_exact */ |
一般在安全的情況下,Oracle可以使用繫結變數替換SQL語句中的常量。此替換由CURSOR_SHARING初始化引數控制。但該hint讓最佳化器關閉此行為。當指定此提示時,Oracle會執行SQL語句,而不會嘗試用繫結變數替換常量 |
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2757242/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(五)Oracle
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(三)Oracle
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(二)Oracle
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(一)Oracle
- oracle之hint概述Oracle
- 【TUNE_ORACLE】Oracle Hint之概念與用法Oracle
- 常用的Oracle HintOracle
- Oracle 常用HINT介紹Oracle
- oracle hint之hint_index_ffs,index_joinOracleIndex
- 不太常用的oracle hint整理Oracle
- oracle hintOracle
- Oracle之Hint使用總結Oracle
- mysql常用的hintMySql
- ORACLE 部分HINTOracle
- oracle hint (續)Oracle
- Oracle Hint 精華Oracle
- Oracle hint之DRIVING_SITEOracle
- mysql常用的hint[轉]MySql
- ORACLE常用SQL最佳化hint語句OracleSQL
- oracle常見hintOracle
- oracle hint簡述Oracle
- oracle hint (續-0)Oracle
- oracle hint_no_indexOracleIndex
- Oracle Hint 精華文章Oracle
- Oracle Hint 詳解Oracle
- Oracle Hint的用法Oracle
- zt_Oracle hint driving_site Hint的用法Oracle
- ORACLE的HINT詳解Oracle
- Oracle中Hint隨記Oracle
- oracle hint no_mergeOracle
- oracle hint_no_expand_no_factOracle
- oracle hint_cache_nocacheOracle
- (轉)Oracle Hint的用法Oracle
- oracle hint有效範圍Oracle
- ORACLE使用HINT的方法Oracle
- Oracle索引HINT的使用Oracle索引
- Oracle中的sql hintOracleSQL
- 【sql調優之執行計劃】使用hint(五)Hint for parallelSQLParallel