W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
使用 ?QB_NAME
? Hint 來定義查詢塊的名稱。然后,可以在外部查詢的 Hint 中使用這個(gè)名稱,也可以在內(nèi)聯(lián)視圖的 Hint 中使用這個(gè)名稱,從而影響查詢在被命名查詢塊中的表上的執(zhí)行。更多關(guān)于查詢塊名稱的信息,請參閱文檔 Hint 概述 中的在 Hint 中定義查詢塊。
以下是 ?QB_NAME
? Hint 的語法:
/*+ QB_NAME ( queryblock ) */
如果兩個(gè)或多個(gè)查詢塊具有相同的名稱,或者同一個(gè)查詢塊兩次被 Hint 指定了不同的名稱,那么優(yōu)化器將忽略所有引用該查詢塊的名稱和 Hint。未使用 ?QB_NAME
? Hint 命名的查詢塊具有由系統(tǒng)生成的惟一名稱。這些名稱可以顯示在計(jì)劃表中,也可以在查詢塊中的其他 Hint 中使用。
以下是 ?QB_NAME
? Hint 的示例:
SELECT /*+ QB_NAME(qb) FULL(@qb e) */ employee_id, last_name
FROM employees e
WHERE last_name = 'Smith';
?READ_CONSISTENCY
? Hint 指示服務(wù)器去指定某條 SQL 所讀取的表模式為弱一致(指定參數(shù)
?WEAK
?)或強(qiáng)一致性(指定參數(shù) ?STRONG
?)。
以下是 ?READ_CONSISTENCY
? Hint 的語法:
/*+ READ_CONSISTENCY(WEAK[STRONG]) */
示例如下:
SELECT /*+ READ_CONSISTENCY(WEAK) */ *
FROM employees
WHERE employees.department_id = 1001;
?FROZEN_VERSION
? Hint 指示服務(wù)器讀取某個(gè)基線數(shù)據(jù)的版本。
以下是 ?FROZEN_VERSION
? Hint 的語法:
/*+ FROZEN_VERSION (intnum) */
示例如下:
SELECT /*+ FROZEN_VERSION(1000) */ *
FROM employees e
WHERE e.department_id = 1001;
?QUERY_TIMEOUT
? Hint 指示服務(wù)器設(shè)定某條 SQL 執(zhí)行時(shí)的超時(shí)時(shí)間,單位為微妙。
以下是 ?QUERY_TIMEOUT
? Hint 的語法:
/*+ QUERY_TIMEOUT (intnum) */
示例如下,當(dāng)該查詢 1 秒之內(nèi)未執(zhí)行完該語句即返回超時(shí)錯(cuò)誤:
SELECT /*+ QUERY_TIMEOUT(1000000) */ *
FROM employees e
WHERE e.department_id = 1001;
?LOG_LEVEL
? Hint 指示服務(wù)器運(yùn)行某句 SQL 時(shí)采用何種日志級別來執(zhí)行。
以下是 ?LOG_LEVEL
? Hint 的語法:
/*+ LOG_LEVEL ([']log_level[']) */
以下示例采用 ?DEBUG
? 日志級別來執(zhí)行該 SQL 語句:
SELECT /*+ LOG_LEVEL(DEBUG) */ *
FROM employees e
WHERE e.department_id = 1001;
?USE_PLAN_CACHE
? Hint 指示服務(wù)器執(zhí)行某條 SQL 時(shí)是否要在計(jì)劃緩存機(jī)制下運(yùn)行,參數(shù) ?NONE
? 為不執(zhí)行計(jì)劃緩存機(jī)制,參數(shù) ?DEFAULT
? 表示按照服務(wù)器本身的設(shè)置來決定是否執(zhí)行計(jì)劃緩存機(jī)制。
以下是 ?USE_PLAN_CACHE
? Hint 的語法:
/*+ USE_PLAN_CACHE (NONE[DEFAULT]) */
示例如下,以下語句不執(zhí)行計(jì)劃緩存機(jī)制:
SELECT /*+ USE_PLAN_CACHE(NONE) */ *
FROM employees e
WHERE e.department_id = 1001;
?TRANS_PARAM
? Hint 指示服務(wù)器執(zhí)行事務(wù)時(shí)是否要按照參數(shù) ?param
? 指定的參數(shù)來執(zhí)行,現(xiàn)在支持的參數(shù)只有事務(wù)層面的提前解行鎖 ?FORCE_EARLY_LOCK_FREE
? 參數(shù),?FORCE_EARLY_LOCK_FREE
?的值為 TRUE 時(shí)表示支持,FALSE 表示不支持。注意這里的參數(shù)名和參數(shù)值要用單引號(‘ ’)引起來,當(dāng)參數(shù)的值為數(shù)值型時(shí)可以不用引號引起來。
以下是 ?TRANS_PARAM
? Hint 的語法:
/*+ TRANS_PARAM ['param' , 'param_value'] */
示例如下:
SELECT /*+ TRANS_PARAM('FORCE_EARLY_LOCK_FREE' 'TRUE') */ *
FROM employees e
WHERE e.department_id = 1001;
?TRACING
? Hint 指示服務(wù)器對某些執(zhí)行計(jì)劃中的算子采用 ?TRACING
? 跟蹤。
以下是?TRACING
? Hint 的語法:
/*+ TRACING(TRACING_NUM_LIST)*/
示例如下:
SELECT /*+ TRACING(1) */ *
FROM employees e
WHERE e.department_id = 1001;
?STAT
? Hint 指示對某些執(zhí)行計(jì)劃中的算子采用 ?STAT
? 顯示信息。
以下是 ?STAT
? Hint 的語法:
/*+ STAT(TRACING_NUM_LIST) */
示例如下:
SELECT /*+ STAT(1) */ *
FROM employees e
WHERE e.department_id = 1001;
?TOPK
? Hint 指示服務(wù)器設(shè)置模糊查詢的精度和最小行數(shù)。其中參數(shù) ?PRECSION
? 的值為整型,取值范圍為 0~100,表示執(zhí)行模糊查詢時(shí)的行數(shù)百分比,參數(shù) ?MINIMUM_ROWS
? 用來指定最小的返回行數(shù)。
以下是 ?TOPK
? Hint 的語法:
/*+ TOPK(PRECISION MINIMUM_ROWS) */
示例如下:
SELECT /*+ TOPK(1,10) */ *
FROM employees e
WHERE e.department_id = 1001;
?TRACE_LOG
? Hint 指示服務(wù)器收集跟蹤日志(Trace log),收集的跟蹤日志(Trace log)在運(yùn)行 ?SHOW TRACE
? 命令時(shí)展示。
以下是 ?TRACE_LOG
? Hint 的語法:
/*+ TRACE_LOG */
示例如下:
SELECT /*+ TRACE_LOG */ *
FROM employees e
WHERE e.department_id = 1001;
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: