W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
?LEADING
? Hint 指示優(yōu)化器在執(zhí)行計劃中使用指定的表集作為前綴,它可以用來指定表的聯(lián)接順序。這個 Hint 比 ?ORDERED
? Hint 更通用。
以下是 ?LEADING Hint
? 的語法:
/*+ LEADING ( [ @ queryblock ] tablespec [ tablespec ]... ) */
?LEADING
? Hint 為確保按照用戶指定的順序聯(lián)接表,所以會進行嚴(yán)格的檢查。如果發(fā)現(xiàn) Hint 指定的 ?table_name
? 不存在,則 ?LEADING
? Hint 失效。如果發(fā)現(xiàn) Hint 中存在重復(fù)表,則 ?LEADING
? Hint 失效。如果在優(yōu)化器聯(lián)接期間,無法找到對應(yīng)的表,那么該表及后面的表指定的聯(lián)接順序失效,該表前面指定的順序依然有效。如果由于聯(lián)接圖中的依賴關(guān)系,無法首先按照指定的順序聯(lián)接指定的表,則 ?LEADIN
?G Hint 失效。如果指定兩個或多個相互沖突的 ?LEADING
? Hint,則 LEADING Hint 失效。如果您指定了 ?ORDERED
? Hint,它將覆蓋所有的 ?LEADING
? Hint。
示例如下:
SELECT /*+ LEADING(e j) */ *
FROM employees e, departments d, job_history j
WHERE e.department_id = d.department_id
AND e.hire_date = j.start_date;
?ORDERED
? Hint 指示數(shù)據(jù)庫按照表在 ?FROM
? 子句中出現(xiàn)的順序聯(lián)接表。建議使用 ?LEADING
? Hint,它比 ?ORDERED
? Hint 更通用。
以下是 ?ORDERED
? Hint 的語法:
/*+ ORDERED */
當(dāng)您從需要聯(lián)接的SQL語句中省略 ?ORDERED
? Hint 時,將由優(yōu)化器將選擇聯(lián)接表的順序。但是優(yōu)化器不知道從每個表中要選擇的行數(shù),此時您可以使用 ?ORDERED
? Hint 來指定聯(lián)接順序。這樣使您能夠比優(yōu)化器更好地選擇內(nèi)部表和外部表。如果在指定該 ?ORDERED
? Hint 后發(fā)生了改寫,那么就按照改寫后的語句中的 ?FROM
? 子句的順序聯(lián)接表。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: