內容提要 數據庫領域的超級暢銷書,世界級0racle大師 Jonathan Lewis的最新力作,也是近幾年來Oracle領域最重要的著作之一,榮獲2006年度Oracle雜志編輯選擇大獎:自該書出版以來,受到無數讀者、網友和專家的好評,被翻譯成多種語言,成為眾多中高級Oracle用戶、DBA和開發人員的必看圖書。 作者簡介 Jonathan Lewis在過去的17年里一直專注于Oracle的研究。他因會議的主題演講以及研討會和教學而聲名顯赫,是全球Oracle領域公認的實力專家。現在,Jonathan是UKOUG(UK Oracle User Group)的負責人,并且為他們的Oracle Scene雜志定期撰稿。他所撰寫的Practical Oracle 8i一書和創建的Http://www.jicomp.demon.co.uk網站獲得了廣泛好評。 編輯推薦 對于基于成本的優化器的執行方式,Jonathan有著深刻的見解,本書能夠幫助DBA成為更好的設計者,還能幫助開發人員開發出更卓越的代碼。 ——Thomas Kyte Oracle公司全球副總裁 基于成本的優化是數據庫根據統計以預測的方式選擇一種可能最快的執行方式。對執行性能高度敏感的應用使用CBO可以成倍加速SQL的執行速度。本書的日的在于解釋優化器執行計算過程中的主要特性,以此分析計算成本,并確定SQL語句的執行計劃,作者還深入剖析了優化器產生的成本與實際資源消耗之問的關系。 相信Jonathan Lewis對CB0精湛的闡述將使得Oracle DBA能夠更好地管理數據庫的執行,開發人員將能夠更好地開發數據庫應用程序。 ——羅鐵庚 國防科技大學計算機學院教授 這是一本非常優秀的介紹Oracle系統的技術圖書,該書以專家的視角對Oracle系統的基于成本的優化模型進行了深入淺出的分析和介紹。另外,這本書的內容組織和案例選用也別 具匠心,引人人勝。 ——閃四清 著名數據庫專家 親愛的讀者: 在Oracle幫助論壇上我們經常會看到類似“為什么Oracle在有索引的情況下沒有使用索引?”的問題。明明已經明確選擇了索引列,排序也正常,也做了統計,空列也已經選出米了,但優化器就是沒有自動使用索引。到底是什么地方出了問題? 如果本應該以最優的執行方式,而且也花費了非常多的時間想要優化器能夠按照自己的方式來進行優化,但是優化器的執行卻完全不是那么回事,那么我建議您讀讀這本書。學習完本書后,您將能夠理解優化器的“思維”、知道錯誤是如何造成的以及導致錯誤的數據模式,從而可以節約在設計和SQL查錯方面耗費的大量時間。 基于成本的優化器是包含了Oracle數據庫工作模式的一組代碼。在數據統計上運用這一模式,優化器將以最有效的方法將查詢變換為有效的執行計劃。遺憾的是,模式_并非總是完美無缺,統計也并不一定完美,從而導致執行的結果并不理恕。 任《基于成本的Oracle優化法則》一書中(本系列三本中的第一本),我們討論了最通用的模式,優化器如何基于統計信息進行優化,以及為什么有時候優化的結果不盡如人意。這樣,通過調整模式或創建出更切合實際的統計信息,您就可以縱覽整個問題而不必拘泥于單個SQL語句。 目錄 第1章 成本的含義 1.1 優化器選項 1.2 成本的定義 1.3 變換和成本計算 1.4 所見未必即所得 1.5 本章小結 1.6 測試用例 第2章 表掃描 2.1 入門 2.2 提高 2.2.1 塊大小的影響 2.2.2 CPU成本計算 2.2.3 CPU成本計算的作用 2.3 BCHR 2.4 并行執行 2.5 索引快速全掃描 2.6 分區 2.7 本章小結 2.8 測試用例 第3章 單表選擇率 3.1 入門 3.2 空值 3.3 使用列表 3.4 區間謂詞 3.5 雙謂詞 3.6 多謂詞的相關問題 3.7 本章小結 3.8 測試用例 第4章 簡單B樹訪問 4.1 索引成本計算的基礎知識 4.2 入門 4.2.1 有效索引選擇率 4.2.2 有效表選擇率 4.2.3 clustering_factor 4.2.4 綜合計算 4.2.5 擴展算法 4.2.6 3個選擇率 4.3 CPU成本計算 4.4 待處理的零碎問題 4.5 本章小結 4.6 測試用例 第5章 群集因子 5.1 基本示例 5.1.1 減少表爭用(多個自由列表) 5.1.2 減少葉塊的爭用(反轉鍵索引,ReverseKey Index) 5.1.3 減少表的爭用(ASSM) 5.1.4 減少RAC中的爭用(自由列表群) 5.2 列順序 5.3 額外的列 5.4 校正統計信息 5.4.1 sys_op_countchg ()技術 5.4.2 非正式策略 5.5 待處理的零碎問題 5.6 本章小結 5.7 測試用例 第6章 選擇率的相關問題 6.1 不同的數據類型 6.1.1 日期類型 6.1.2 字符類型 6.1.3 愚蠢的數據類型 6.2 前導零 6.3 致命的默認值 6.4 離散數據的風險 6.5 令人驚奇的sysdate …… 第7章 直方圖 第8章 位圖索引 第9章 查詢變換 第10章 連接基數 第11章 嵌套循環 第12章 散列連接 第13章 排序與歸并連接 第14章 10053 trace文件 附錄A 升級問題 附錄B 優化器參數 |