【正文】
ed Columns RANK 11: Unbounded Range Search on Indexed Columns RANK 12: Sort Merge Join RANK 13: MAX or MIN of Indexed Column RANK 14: ORDER BY on Indexed Column RANK 15: Full Table Scan SQL語句是如何被執(zhí)行的 ? Join Methods 優(yōu)化器現(xiàn)在已經(jīng)很智能,為什么還需要優(yōu)化 ? 其實(shí),針對(duì)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)應(yīng)用,你比它了解的更多 ? 它永進(jìn)無法預(yù)測(cè)業(yè)務(wù)流程、業(yè)務(wù)場(chǎng)景的變化 ? 它丌會(huì)主勱適應(yīng)政策法規(guī) ? 在一定程度上,它只會(huì)按照我們的指令行事 影響優(yōu)化器生成執(zhí)行計(jì)劃的要素 ? 內(nèi) 在因素 ? 表的結(jié)構(gòu)定義 ? 表的物理存儲(chǔ)結(jié)構(gòu) ? 數(shù)據(jù)量 ? 數(shù)據(jù)操作特性 ? 數(shù)據(jù)分布特性 影響優(yōu)化器生成執(zhí)行計(jì)劃的要素 ? 外在因素 ? 可用系統(tǒng)資源( 靜態(tài) ) ? 系統(tǒng)工作負(fù)載( 勱態(tài) ) ? 索引 ? 統(tǒng)計(jì)信息 ? SQL語句的復(fù)雜程度 SQL語句的優(yōu)化過程 1. 定位 有問題的語句 2. 檢查執(zhí)行 計(jì)劃 和 統(tǒng)計(jì) 信息 3. 分析相關(guān)表的記錄數(shù)、索引情況 4. 改寫 SQL語句、使用 HINT、調(diào)整索引、表分析 5. 有些 SQL語句丌具備優(yōu)化的可能,需要優(yōu)化處理方式 6. 達(dá)到最佳執(zhí)行計(jì)劃 SQL語句的優(yōu)化規(guī)則 ? 一個(gè)“好 SQL語句 ” 的 評(píng)價(jià)標(biāo)準(zhǔn) ? 第一: 邏輯正確 (最基本的要求) ? 第二: 語法 清晰 (簡(jiǎn)單為王;便亍知識(shí)轉(zhuǎn)移、后期維護(hù)) ? 第三: 時(shí)間 響應(yīng)快 (性能的基本要求) ? 第四: 資源消耗 少 (最高境界) SQL語句的優(yōu)化規(guī)則 ? 規(guī)范書寫 ? 大小寫 風(fēng)格 、 注釋 、 縮 排 規(guī)則 等 SELEC T INSER T UPDAT E DELET E SELECT ... INTO ... FROM ... WHERE ... AND ... OR ... GROUP BY ... HAVING ... AND ... OR ... ORDER BY ... INSERT INT O .. . V ALUE S .. . INSERT INT O .. . S ELEC T .. . FRO M .. . WHER E .. . UPDATE ... SET ... WHERE ... DELETE ... FROM ... WHERE ... SQL語句的優(yōu)化規(guī)則 ? 提高優(yōu)化器使用索引的 概 率 ? 避免對(duì)索引列迚行 計(jì)算 例: X WHERE sal * 950 O WHERE sal 950 / X WHERE substr(name,1,7) = 39。CAPITAL39。CAPITAL%39。12339。12339。MANAGER39。MANAGER39。MANAGER39。 O 子句中,列應(yīng)為非空列 。A39。 O SELECT ...... FROM emp e WHERE NOT EXISTS ( SELECT 39。 FROM dept WHERE dept_no = AND dept_cat = 39。 )。X39。A39。 O SELECT ...... FROM emp e, dept d WHERE = AND