出版時間:2013-1-10 出版社:黃瑋 機械工業(yè)出版社 (2013-01出版) 作者:黃瑋 頁數(shù):458
Tag標簽:無
內(nèi)容概要
《數(shù)據(jù)庫技術(shù)叢書·Oracle高性能SQL引擎剖析:SQL優(yōu)化與調(diào)優(yōu)機制詳解》是Oracle數(shù)據(jù)庫性能優(yōu)化領(lǐng)域的里程碑之作,通過對Oracle高性能SQL引擎的深入剖析,深刻揭示了OracleSQL的優(yōu)化與調(diào)優(yōu)機制、核心技術(shù),以及性能優(yōu)化的思想方法,是作者十余年工作經(jīng)驗與研究心得的結(jié)晶,包含大量技巧與最佳實踐。 《數(shù)據(jù)庫技術(shù)叢書·Oracle高性能SQL引擎剖析:SQL優(yōu)化與調(diào)優(yōu)機制詳解》共分為三個部分。第一篇“執(zhí)行計劃”,首先詳細講解了各種執(zhí)行計劃的含義與操作,為后面的深入分析打下基礎(chǔ);然后重點講解了執(zhí)行計劃在SQL語句執(zhí)行的生命周期中所處的位置和作用,SQL引擎如何生成執(zhí)行計劃以及如何獲取SQL語句的執(zhí)行計劃,如何從各種數(shù)據(jù)源顯示和查看已經(jīng)生成執(zhí)行計劃等。第二篇“SQL優(yōu)化技術(shù)”,深入分析了Oracle的SQL優(yōu)化技術(shù),包括邏輯優(yōu)化技術(shù)和物理優(yōu)化技術(shù),用大量示例詳盡分析了Oracle中現(xiàn)有的各種查詢轉(zhuǎn)換技術(shù)。第三篇“SQL調(diào)優(yōu)技術(shù)”,深入剖析了Oracle提供的各項調(diào)優(yōu)技術(shù),首先對語句實際運行的性能統(tǒng)計數(shù)據(jù)進行了深度分析,介紹了各項統(tǒng)計數(shù)據(jù)是由什么操作導致的以及如何統(tǒng)計;然后講解了如何對SQL語句進行優(yōu)化,以及如何獲得穩(wěn)定、高效的性能;最后,根據(jù)對SQL優(yōu)化及調(diào)優(yōu)技術(shù)的分析,總結(jié)如何快速優(yōu)化SQL的思路。
作者簡介
黃瑋,資深Oracle數(shù)據(jù)庫管理員,從事DBA工作十幾年,有豐富的大型數(shù)據(jù)庫開發(fā)、設(shè)計和維護經(jīng)驗,涉及水利、軍工、電信及航運等行業(yè)。目前供職于某世界著名物流公司,負責公司的電子物流系統(tǒng)的數(shù)據(jù)庫開發(fā)、維護工作。2005年創(chuàng)建個人網(wǎng)站www.HelloDBA.com,并致力于數(shù)據(jù)庫方面的基礎(chǔ)性技術(shù)研究,整理和發(fā)布了大量關(guān)于數(shù)據(jù)庫系統(tǒng)的底層機制、存儲結(jié)構(gòu)、性能調(diào)優(yōu)以及基礎(chǔ)算法的文章,開發(fā)了多個數(shù)據(jù)恢復、性能監(jiān)控、內(nèi)核跟蹤等免費的實用工具,為Oracle社區(qū)做出了應有的貢獻。
書籍目錄
序前言第一篇 執(zhí)行計劃第1章 生成和顯示執(zhí)行計劃 31.1 生成執(zhí)行計劃 31.2 顯示執(zhí)行計劃 41.2.1 通過查詢語句顯示計劃 41.2.2 通過包DBMS_XPLAN顯示計劃 41.2.3 AUTOTRACE 121.2.4 其他方法 13第2章 解讀執(zhí)行計劃 152.1 執(zhí)行計劃的基本數(shù)據(jù) 152.2 內(nèi)部函數(shù)與操作 172.3 執(zhí)行計劃各個列的含義 192.4 執(zhí)行計劃各個操作的含義 212.4.1 語句類型 212.4.2 訪問路徑方法 232.4.3 位圖操作 312.4.4 排序操作 332.4.5 關(guān)聯(lián)操作 362.4.6 層次查詢操作 422.4.7 視圖操作 452.4.8 數(shù)據(jù)集合操作 452.4.9 分區(qū)操作 482.4.10 并行查詢操作 512.4.11 聚合操作 572.4.12 分析函數(shù)操作 582.4.13 模型化操作 602.4.14 數(shù)據(jù)和對象管理操作 632.4.15 其他操作 652.5 執(zhí)行計劃中其他信息的含義 692.5.1 查詢塊和對象別名 692.5.2 計劃概要數(shù)據(jù) 702.5.3 綁定變量信息 702.5.4 分布式查詢語句信息 722.5.5 注釋 72第二篇 SQL優(yōu)化技術(shù)第3章 查詢轉(zhuǎn)換 753.1 啟發(fā)式查詢轉(zhuǎn)換 753.1.1 簡單視圖合并 763.1.2 子查詢反嵌套 813.1.3 子查詢推進 863.1.4 舊關(guān)聯(lián)謂詞推入 873.1.5 簡單過濾謂詞推入 903.1.6 謂詞遷移 913.1.7 “或”操作擴張 913.1.8 物化視圖查詢重寫 923.1.9 集合操作關(guān)聯(lián)轉(zhuǎn)變 943.1.10 由約束生成過濾謂詞 953.1.11 星形轉(zhuǎn)換 963.1.12 排序消除 983.1.13 DISTINCT消除 993.1.14 表消除 993.1.15 子查詢合并 1023.1.16 公共子表達式消除 1043.1.17 計數(shù)函數(shù)轉(zhuǎn)變 1053.1.18 表達式和條件評估 1053.1.19 聚集子查詢消除 1113.1.20 DISTINCT聚集函數(shù)轉(zhuǎn)換 1113.1.21 選擇字段裁剪 1133.1.22 DISTINCT消除 1143.1.23 DISTINCT推入 1143.1.24 集合分組查詢轉(zhuǎn)換 1153.1.25 集合分組查詢重寫 1153.1.26 集合分組裁剪 1173.1.27 外關(guān)聯(lián)消除 1183.1.28 真正完全外關(guān)聯(lián) 1193.1.29 左(右)外關(guān)聯(lián)轉(zhuǎn)換為側(cè)視圖 1203.2 基于代價的查詢轉(zhuǎn)換 1233.2.1 復雜視圖合并 1233.2.2 關(guān)聯(lián)謂詞推入 1243.2.3 謂詞提取 1263.2.4 GROUP BY配置 1273.2.5 表擴張 1283.2.6 關(guān)聯(lián)因式分解 1303.2.7 DISTINCT配置 1313.2.8 WITH子查詢轉(zhuǎn)換 132第4章 統(tǒng)計數(shù)據(jù) 1344.1 系統(tǒng)統(tǒng)計數(shù)據(jù) 1344.1.1 系統(tǒng)統(tǒng)計數(shù)據(jù)收集 1364.1.2 系統(tǒng)統(tǒng)計數(shù)據(jù)管理 1374.1.3 根據(jù)系統(tǒng)負載狀況靈活管理 1404.1.4 全局參數(shù)管理 1424.1.5 項管理 1434.2 對象統(tǒng)計數(shù)據(jù) 1464.2.1 表統(tǒng)計數(shù)據(jù) 1504.2.2 索引統(tǒng)計數(shù)據(jù) 1504.2.3 字段統(tǒng)計數(shù)據(jù) 1514.2.4 擴展統(tǒng)計數(shù)據(jù) 1524.2.5 對象統(tǒng)計數(shù)據(jù)的管理 1534.2.6 “待定”統(tǒng)計數(shù)據(jù)的管理 1604.3 對象統(tǒng)計數(shù)據(jù)收集過程分析 1614.3.1 表統(tǒng)計數(shù)據(jù)收集與計算 1614.3.2 字段統(tǒng)計數(shù)據(jù)收集與計算 1644.3.3 柱狀圖數(shù)據(jù)收集與計算 1704.3.4 索引統(tǒng)計數(shù)據(jù)收集與計算 182第5章 執(zhí)行計劃的代價估算 1865.1 代價模型 1875.2 基本代價計算公式 1875.3 選擇率計算 1905.3.1 單過濾條件 1905.3.2 綁定變量無具體數(shù)值 1905.3.3 綁定變量有數(shù)值無柱狀圖 1915.3.4 使用柱狀圖 1925.3.5 過濾條件的組合 1965.4 多數(shù)據(jù)塊讀操作代價計算 1975.4.1 代價模型 1975.4.2 IO代價計算 1995.4.3 CPU代價計算 2025.4.4 執(zhí)行計劃中其他數(shù)據(jù)的計算 2095.4.5 全表掃描代價計算演示 2095.5 并行掃描操作代價計算 2185.5.1 IO代價計算 2195.5.2 CPU代價計算 2215.6 單數(shù)據(jù)塊讀操作代價計算 2225.6.1 IO代價計算 2225.6.2 CPU代價計算 2265.6.3 單數(shù)據(jù)塊讀操作代價計算演示 2285.7 排序操作代價計算 2335.7.1 是否需要寫入磁盤 2335.7.2 IO代價計算 2345.7.3 CPU代價計算 2365.7.4 臨時磁盤空間計算 2365.7.5 排序代價計算演示 2375.8 關(guān)聯(lián)操作代價計算 2415.8.1 關(guān)聯(lián)選擇率 2425.8.2 嵌套循環(huán)關(guān)聯(lián)代價計算 2425.8.3 排序合并關(guān)聯(lián)代價計算 2495.8.4 哈希關(guān)聯(lián)代價計算 2525.9 并行模式下的關(guān)聯(lián)代價計算 2605.9.1 IO代價計算 2625.9.2 CPU代價計算 2635.9.3 代價計算演示 263第三篇 SQL調(diào)優(yōu)技術(shù)第6章 SQL語句運行性能分析 2706.1 性能統(tǒng)計數(shù)據(jù) 2706.1.1 邏輯讀 2726.1.2 一致性獲取 2736.1.3 一致性直接獲取 2736.1.4 由緩存一致性獲取 2736.1.5 一致性修改 2746.1.6 數(shù)據(jù)塊修改 2756.1.7 物理讀入緩存 2766.1.8 物理預提取讀入緩存 2766.1.9 排序數(shù)據(jù)行 2776.1.10 遞歸調(diào)用 2786.2 邏輯讀分析 2806.2.1 一致性讀分析 2806.2.2 當前模式讀分析 3096.3 物理讀分析 3196.3.1 物理直接讀 3196.3.2 物理讀入緩存與LRU算法 378第7章 Oracle調(diào)優(yōu)技術(shù) 3877.1 存儲概要 3877.1.1 什么是存儲概要 3887.1.2 創(chuàng)建存儲概要 3897.1.3 管理存儲概要 3917.1.4 使用存儲概要 3927.2 SQL執(zhí)行計劃管理 3947.2.1 創(chuàng)建和增加執(zhí)行計劃基線 3957.2.2 進化歷史執(zhí)行計劃 4057.2.3 優(yōu)化器從基線中選擇執(zhí)行計劃 4077.3 Oracle自動調(diào)優(yōu) 4097.3.1 創(chuàng)建調(diào)優(yōu)任務(wù) 4107.3.2 SQL調(diào)優(yōu)建議器的參數(shù) 4107.3.3 自動調(diào)優(yōu)分析 4127.4 SQL性能分析器 4237.4.1 性能分析過程 4247.4.2 SQL性能分析示例 4267.5 SQL訪問建議器 4287.5.1 建議器選擇新索引分析過程 4287.5.2 使用SQL訪問建議器 433第8章 快速調(diào)優(yōu)思路 4418.1 統(tǒng)計數(shù)據(jù)檢查 4418.2 從執(zhí)行計劃中找到潛在問題 4448.2.1 是否存在多個游標 4448.2.2 輸出結(jié)果中特別注釋 4478.2.3 存在潛在性能問題的操作 4488.2.4 謂詞信息 4528.2.5 概要數(shù)據(jù)以及優(yōu)化器環(huán)境檢查 4558.3 物理設(shè)計優(yōu)化 4568.3.1 索引 4568.3.2 分區(qū) 4578.3.3 物化視圖 4588.3.4 約束 458
章節(jié)摘錄
第一篇 執(zhí)行計劃執(zhí)行計劃是指示Oracle如何獲取和過濾數(shù)據(jù)、產(chǎn)生最終結(jié)果集,是影響SQL語句執(zhí)行性能的關(guān)鍵因素。我們在深入了解執(zhí)行計劃之前,首先需要知道執(zhí)行計劃是在什么時候產(chǎn)生的,以及如何讓SQL引擎為語句生成執(zhí)行計劃。在深入了解執(zhí)行計劃之前,我們先了解SQL語句的處理執(zhí)行過程。當一條語句提交到Oracle后,SQL引擎會分為三個步驟對其處理和執(zhí)行:解析(Parse)、執(zhí)行(Execute)和獲?。‵etch),分別由SQL引擎的不同組件完成。SQL引擎的組件如圖1-1所示。1. SQL編譯器(SQL Compiler)將語句編譯到一個共享游標中。SQL編譯器由解析器(Parser)、查詢優(yōu)化器(Query Optimizer)和行源生成器(Row Source Generator)組成。q 解析器(Parser)—執(zhí)行對SQL語句的語法、語義分析,將查詢中的視圖展開、劃分為小的查詢塊。q 查詢優(yōu)化器(Query Optimizer)—為語句生成一組可能被使用的執(zhí)行計劃,估算出每個執(zhí)行計劃的代價,并調(diào)用計劃生成器(Plan Generator)生成計劃,比較計劃的代價,最終選擇選擇一個代價最小的計劃。查詢優(yōu)化器由查詢轉(zhuǎn)換器(Query Transform)、代價估算器(Estimator)和計劃生成器(Plan Generator)組成。注意,上述優(yōu)化器實際上指的是基于代價的優(yōu)化器(Cost Based Optimizer,CBO),CBO也是當前采用的所有優(yōu)化和調(diào)優(yōu)技術(shù)的核心基礎(chǔ)。
媒體關(guān)注與評論
黃瑋是個實證派,而研究優(yōu)化器算法,也唯有實證派才能夠勝任。他通過大量測試進行推演,從而破解CBO計算法則,這不僅需要深入的計算機知識,也需要極大的耐心和毅力。這滿紙的公式與數(shù)字對于讀者來說,可能會成為過眼云煙;而對于作者來說,卻是錙銖必較的艱苦之旅?!w國強云和恩墨創(chuàng)始人、OracleACE總監(jiān)、ITPUB論壇超級版主
編輯推薦
《Oracle高性能SQL引擎剖析:SQL優(yōu)化與調(diào)優(yōu)機制詳解》編輯推薦:資深Oracle DBA黃瑋(Fuyuncat)十年磨一劍,深入揭示Oracle SQL優(yōu)化與調(diào)優(yōu)的原理、核心技術(shù)與思想方法,蓋國強鼎力推薦!
名人推薦
黃瑋是個實證派,而研究優(yōu)化器算法,也唯有實證派才能夠勝任,他通過大量測試進行推演,從而破解CBO計算法則,這不僅需要深入的計算機知識,也需要極大的耐心和毅力,這滿紙的數(shù)字對于讀者來說,可能會成為過眼云煙,而對于作者來說,卻是錙銖必較的艱苦之旅?!w國強 云和恩墨創(chuàng)始人、Oracle ACE總監(jiān)、ITPUB論壇超級版主
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載