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