出版時(shí)間:2012-9 出版社:人民郵電出版社 作者:[澳] Guy Harrison 頁(yè)數(shù):555 字?jǐn)?shù):850000 譯者:鄭勇斌,胡怡文,童家旺
Tag標(biāo)簽:無(wú)
前言
性能一直是數(shù)據(jù)庫(kù)面臨的主要問(wèn)題,Oracle也不能例外。作為執(zhí)行大部分磁盤(pán)IO和數(shù)據(jù)處理的應(yīng)用程序的一部分,數(shù)據(jù)庫(kù)通常是影響應(yīng)用程序吞吐量的制約因素,也是影響應(yīng)用程序響應(yīng)時(shí)間的決定因素。無(wú)論是現(xiàn)在還是將來(lái),數(shù)據(jù)庫(kù)的性能管理與數(shù)據(jù)庫(kù)代碼調(diào)優(yōu)都是數(shù)據(jù)庫(kù)專(zhuān)業(yè)人員的一個(gè)高優(yōu)先級(jí)的事情。最近幾年,數(shù)據(jù)庫(kù)性能優(yōu)化的重要性一直在提高。從傳統(tǒng)意義上來(lái)講,性能調(diào)優(yōu)主要偏重于滿足商業(yè)服務(wù)水平的目標(biāo)上,這些目標(biāo)包括應(yīng)用程序的吞吐量與事務(wù)的響應(yīng)時(shí)間。在互聯(lián)網(wǎng)高度繁榮的年代,與過(guò)去相比,我們?cè)谛阅軉?wèn)題上可以投入更多的資金,通過(guò)添加硬件通常是提高性能最快的途徑。然而今天,這種情況發(fā)生了很大的變化。· 無(wú)論是從經(jīng)濟(jì)基本面看,還是從IT預(yù)算方面看,經(jīng)濟(jì)都在發(fā)生著變化。商業(yè)機(jī)構(gòu)盡可能地尋求減少I(mǎi)T資產(chǎn)的總成本,包括硬件開(kāi)支、軟件許可費(fèi)用、IT薪酬和電力消耗成本?;ㄥX(qián)來(lái)為性能問(wèn)題埋單基本不太可能了,當(dāng)然,這也不能產(chǎn)生經(jīng)濟(jì)效益。· 減少能量消耗(尤其是電力消耗)也是企業(yè)不斷增強(qiáng)的社會(huì)義務(wù)。運(yùn)行繁忙的數(shù)據(jù)庫(kù)服務(wù)器消耗的電力不僅需要花錢(qián),也產(chǎn)生了環(huán)境成本。一個(gè)調(diào)優(yōu)較差的數(shù)據(jù)庫(kù)就像一輛逆火和冒著煙的狀況不佳的汽車(chē),雖然它或許可以把你從A地載到B地,但是它將耗費(fèi)更多的汽油,并對(duì)環(huán)境造成更加嚴(yán)重的影響。· 網(wǎng)格和效用計(jì)算正在變成現(xiàn)實(shí)。在網(wǎng)格和虛擬化技術(shù)出現(xiàn)以前,從一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上節(jié)省的內(nèi)存或CPU不太容易被其他的數(shù)據(jù)庫(kù)服務(wù)器使用。今天,把一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上節(jié)省的資源拿到另外一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器或者非數(shù)據(jù)庫(kù)服務(wù)上重用,正在逐漸變成可能。因此,盡管把性能調(diào)優(yōu)的努力集中在商業(yè)服務(wù)水平的目標(biāo)上仍是正確的,但是通過(guò)減少能量消耗,性能調(diào)優(yōu)也為商業(yè)盈利能力做出了貢獻(xiàn),且對(duì)社會(huì)和環(huán)境的責(zé)任產(chǎn)生了附加的價(jià)值。我們既有商業(yè)責(zé)任,也有社會(huì)責(zé)任來(lái)確保數(shù)據(jù)庫(kù)以最高效的方式運(yùn)行。作為一個(gè)圖書(shū)愛(ài)好者和一個(gè)堅(jiān)定的Oracle技術(shù)人員,我曾經(jīng)買(mǎi)過(guò)很多極好的Oracle技術(shù)圖書(shū)。我最喜愛(ài)的一些圖書(shū)被列舉在參考書(shū)目中。已經(jīng)有了這么多好書(shū),為什么還要再寫(xiě)一本?就自身而言,我仍然需要一本提供了系統(tǒng)的、全面的并易于理解的Oracle調(diào)優(yōu)方法的書(shū),一本涵蓋Oracle性能管理的所有方面的書(shū)。涉及了Oracle調(diào)優(yōu)必要知識(shí)的書(shū)、適合專(zhuān)業(yè)技術(shù)的所有級(jí)別和覆蓋了所有相關(guān)的原則的一本“求生指南”的書(shū),這本書(shū)能夠引導(dǎo)大家完成大多數(shù)性能管理的挑戰(zhàn)和機(jī)會(huì)。因此,在寫(xiě)本書(shū)時(shí),我制訂了下面的這些目標(biāo)。· 盡可能用最系統(tǒng)有效的方式闡述性能問(wèn)題,為Oracle性能調(diào)優(yōu)提供一個(gè)結(jié)構(gòu)化方法。· 從應(yīng)用到數(shù)據(jù)庫(kù)設(shè)計(jì),以及通過(guò)SQL調(diào)優(yōu)、爭(zhēng)用管理和針對(duì)內(nèi)存和物理IO的管理等角度來(lái)解決Oracle性能管理的所有方面的問(wèn)題。· 在提供技術(shù)深度和廣度的同時(shí),保持對(duì)調(diào)優(yōu)的基礎(chǔ)原理的強(qiáng)烈關(guān)注。關(guān)注基礎(chǔ)原理,通常可以獲得最大的性能調(diào)優(yōu)收益,如果不解決,通常會(huì)限制應(yīng)用高級(jí)技巧可獲取的收益。· 為Oracle調(diào)優(yōu)初學(xué)者與具有豐富實(shí)踐經(jīng)驗(yàn)的調(diào)優(yōu)人員提供可利用的內(nèi)容。讀者范圍本書(shū)適用于對(duì)提高Oracle數(shù)據(jù)庫(kù)性能或者數(shù)據(jù)庫(kù)的應(yīng)用感興趣的任何人。包括應(yīng)用架構(gòu)師、開(kāi)發(fā)人員和Oracle數(shù)據(jù)庫(kù)管理員。并不是本書(shū)的所有章節(jié)都能讓?xiě)?yīng)用架構(gòu)師與開(kāi)發(fā)人員產(chǎn)生興趣,比如,他們很少有機(jī)會(huì)決定磁盤(pán)存儲(chǔ)陣列上Oracle數(shù)據(jù)文件的分布。類(lèi)似地,數(shù)據(jù)庫(kù)管理員們經(jīng)常會(huì)參與性能調(diào)整的所有方面,但是很少會(huì)參與應(yīng)用設(shè)計(jì)。這些人員分組里的每一個(gè)人都有可能選擇跳過(guò)本書(shū)的某些章節(jié),他們對(duì)性能的這些方面沒(méi)有控制權(quán)。然而,我要著重強(qiáng)調(diào)本書(shū)的理念,在緩解系統(tǒng)癥狀前,它提倡專(zhuān)注于解決導(dǎo)致性能問(wèn)題的根本原因。在本書(shū)后面的章節(jié)中(例如磁盤(pán)IO調(diào)優(yōu)),我們假定你們已經(jīng)處理了前面的章節(jié)中已經(jīng)列出那些行為(例如調(diào)優(yōu)SQL)。為了使對(duì)Oracle數(shù)據(jù)庫(kù)不太熟悉的新手容易理解本書(shū),我將簡(jiǎn)要介紹并定義一些關(guān)鍵概念和Oracle的體系結(jié)構(gòu)。然而,我假定大部分人熟悉Oracle和SQL語(yǔ)言。本書(shū)的組織結(jié)構(gòu)在第1章中,圍繞分層調(diào)優(yōu)的概念,我介紹了調(diào)優(yōu)方法論。這種方法論提供了一種針對(duì)Oracle性能優(yōu)化的有效的、系統(tǒng)化的方法,在優(yōu)化外在癥狀前關(guān)注于優(yōu)化根本原因,這可以最大化調(diào)優(yōu)投資的性能回報(bào)。本書(shū)大部分圍繞這種方法論來(lái)組織,包括下面的主要章節(jié)。· 第一部分:方法、概念和工具 第1章到第3章,描述提供了最有效的優(yōu)化Oracle數(shù)據(jù)庫(kù)的方法的性能調(diào)優(yōu)的方法論。我們還關(guān)注跟蹤、監(jiān)控和診斷Oracle數(shù)據(jù)庫(kù)性能的基本工具和技術(shù),同時(shí)也對(duì)Oracle數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)進(jìn)行了概述。· 第二部分:應(yīng)用和數(shù)據(jù)庫(kù)設(shè)計(jì) 第4章到第6章介紹應(yīng)用和數(shù)據(jù)庫(kù)設(shè)計(jì)。這些章節(jié)涵蓋數(shù)據(jù)庫(kù)的邏輯和物理設(shè)計(jì)、索引、事務(wù)設(shè)計(jì)以及Oracle API的最佳使用。· 第三部分:SQL和PL/SQL調(diào)優(yōu) 這部分由第7章到第14章組成,覆蓋了SQL語(yǔ)句的優(yōu)化。SQL語(yǔ)句調(diào)優(yōu)通常貢獻(xiàn)絕大部分的數(shù)據(jù)庫(kù)性能提升機(jī)會(huì),并且應(yīng)該在對(duì)數(shù)據(jù)庫(kù)服務(wù)器調(diào)優(yōu)之前優(yōu)先被處理。我們也關(guān)注利用并行SQL和PL/SQL代碼的進(jìn)行調(diào)優(yōu)的方法。· 第四部分:最小化爭(zhēng)用 第15章到第17章討論了爭(zhēng)用的多個(gè)方面。Oracle數(shù)據(jù)庫(kù)資源的爭(zhēng)用(比如鎖、閂鎖和共享內(nèi)存)限制了數(shù)據(jù)庫(kù)處理應(yīng)用程序發(fā)起的請(qǐng)求的能力。通過(guò)減少爭(zhēng)用,我們可以增加數(shù)據(jù)庫(kù)能夠服務(wù)的應(yīng)用程序的請(qǐng)求量。· 第五部分:優(yōu)化內(nèi)存 第18章到第20章介紹通過(guò)最優(yōu)化內(nèi)存配置來(lái)提升性能。內(nèi)存優(yōu)化減少了成為物理IO的邏輯IO的數(shù)量。因此,優(yōu)化內(nèi)存是數(shù)據(jù)庫(kù)服務(wù)器性能中的一個(gè)根本因素。· 第六部分:IO調(diào)優(yōu)和集群 從第21章到第22章討論了物理磁盤(pán)IO。我們?yōu)楸苊獯疟P(pán)IO而竭盡所能了。現(xiàn)在,該是優(yōu)化剩余的磁盤(pán)IO的時(shí)候了。在這部分里,我們關(guān)注如何配置Oracle和磁盤(pán)IO子系統(tǒng)來(lái)降低IO負(fù)載以及提高IO吞吐量。第1章到第22章既可用于RAC系統(tǒng),也可用于單實(shí)例Oracle。然而,RAC的確引入了一些特有的考慮,我們將在第23章中探討這些。關(guān)于示例和樣本數(shù)據(jù)在本書(shū)的討論中,頻繁使用到幾個(gè)腳本來(lái)報(bào)告數(shù)據(jù)庫(kù)性能的某些方面。可以通過(guò)本書(shū)的站點(diǎn)http://www.informit.com/store/product.aspx·isbn=0137011954下載這些腳本。還可以訪問(wèn)我的站點(diǎn)http://www.guyharrison.net與博客查找一些其他的資料。貫穿本書(shū),還將看到為了描述各種調(diào)優(yōu)原則的SQL語(yǔ)句和PL/SQL程序的例子。在本書(shū)的任何地方,這些示例都采用標(biāo)準(zhǔn)的Oracle數(shù)據(jù)樣本模式,可以在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)安裝這些樣本模式,也可以在以后手動(dòng)安裝。B10771-01(Oracle 10g)或B28328-01(Oracle 11g)的手冊(cè)中有對(duì)這些模式的詳細(xì)描述,可以在http://technet.oracle.com獲得這些手冊(cè)。有些案例中,某些樣本表中的行記錄數(shù)太少,以致無(wú)法有效地描述特定的SQL調(diào)優(yōu)或者其他的類(lèi)似場(chǎng)景?;谶@個(gè)原因,我寫(xiě)了一個(gè)過(guò)程來(lái)增加CUSTOMERS和SALES等關(guān)鍵表的大小??稍诒緯?shū)站點(diǎn)可用的腳本包里找到這些PL/SQL包。本書(shū)覆蓋的Oracle版本本書(shū)全面覆蓋了Oracle 10g和11g版本,包括Oracle 11g 發(fā)行版本2。某些引用偶爾會(huì)使用Oracle的早期版本,但本書(shū)中使用的所有示例都可以在Oracle 10g或Oracle 11g數(shù)據(jù)庫(kù)中找到。在本書(shū)將要出版時(shí),Oracle 11g 發(fā)行版本2仍處于beta狀態(tài)。在Oracle 11g發(fā)行版本2的正式發(fā)行版本里,可能會(huì)有一些細(xì)微的行為變化。如果這種情況發(fā)生,我將在本書(shū)的站點(diǎn)和我的個(gè)人站點(diǎn)中予以說(shuō)明。關(guān)于Quest軟件和Spotlight我21年職業(yè)生涯的大半時(shí)間是在Quest軟件公司從事Oracle技術(shù)相關(guān)的工作。在Quest時(shí),我一直深度介入了許多Oracle開(kāi)發(fā)和管理工具的開(kāi)發(fā),但是,主要還是集中在Spotlight on Oracle和Spotlight on Oracle RAC軟件上。我認(rèn)為Spotlight極好地涵蓋了Oracle性能管理的一個(gè)方面,我已經(jīng)談過(guò)這個(gè)特性并且有時(shí)會(huì)提供一個(gè)屏幕快照。因?yàn)槲壹仁荢potlight的架構(gòu)師,也是本書(shū)的作者,你可以假定Spotlight代表了本書(shū)提及的許多原則和實(shí)踐,而且我肯定鼓勵(lì)大家下載并評(píng)估Spotlight。然而,鑒于Spotlight是我付出的心血,當(dāng)涉及Spotlight或者Quest的任何軟件產(chǎn)品時(shí),我?guī)缀醪豢赡軟](méi)有任何偏向。致Oracle SQL High Performance Tuning的讀者自O(shè)racle SQL High Performance Tuning的第2版出版到現(xiàn)在差不多有8年了,我仍能經(jīng)常收到編寫(xiě)此書(shū)第3版的要求。那些認(rèn)為Oracle SQL High Performance Tuning有價(jià)值的人,應(yīng)該會(huì)發(fā)現(xiàn)這本書(shū)完全可以取代那本書(shū)的第3版。在本書(shū)中,我延續(xù)著Oracle SQL High Performance Tuning的嚴(yán)謹(jǐn)務(wù)實(shí)的方法,而且對(duì)Oracle性能管理的原理進(jìn)行了更加廣泛的延伸。在本書(shū)中,仍然保持著對(duì)SQL調(diào)優(yōu)的關(guān)注,但是,是在一個(gè)更加寬廣的范圍,包括應(yīng)用程序、數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)服務(wù)器配置和優(yōu)化。致 謝感謝組稿編輯Trina McDonald鼓勵(lì)我承擔(dān)這個(gè)項(xiàng)目并且監(jiān)督這個(gè)過(guò)程。我還要特別感謝Pearson出版社的Olivia Basegio、Michael Thurston和 Tonya Simpson三位編輯。特別感謝技術(shù)審核Patrick O’Keeffe、Bert Scalzo和Oleg Voskoboynikov。本書(shū)涉及了大量的資料,非常感謝他們的技術(shù)支持和反饋。Steven Feuerstein也對(duì)本書(shū)第6章和第12章提供了一些極好的反饋。感謝你們所有的人。感謝在Oracle社區(qū)不斷分享他們的經(jīng)驗(yàn)和對(duì)Oracle技術(shù)的真知灼見(jiàn)的那些人。如果沒(méi)有那些自由分享的智慧財(cái)富,我根本寫(xiě)不出本書(shū)。附錄列舉了我非常感謝的一些博客與博主。最后,也是最重要的,一如繼往地感謝一直陪伴左右的妻子Jenni和孩子Chris、Kate、Mike和William。因?yàn)橛辛四銈兊膼?ài)和支持,本書(shū)才得以完成,在編寫(xiě)本書(shū)和其他寫(xiě)作項(xiàng)目期間,你們還得遷就我,在此深表歉意。
內(nèi)容概要
Oracle數(shù)據(jù)庫(kù)的應(yīng)用十分廣泛,數(shù)據(jù)庫(kù)性能的好壞直接影響應(yīng)用程序能否快速響應(yīng)用戶指令。而Oracle數(shù)據(jù)庫(kù)又比較復(fù)雜,數(shù)據(jù)庫(kù)性能調(diào)優(yōu)成為眾多DBA最為頭疼的問(wèn)題。本書(shū)作者憑借其20多年的豐富經(jīng)驗(yàn),為我們帶來(lái)了一本系統(tǒng)的、全面的Oracle性能優(yōu)化手冊(cè),用結(jié)構(gòu)化方法幫助讀者解決從數(shù)據(jù)庫(kù)應(yīng)用到數(shù)據(jù)庫(kù)設(shè)計(jì)的所有問(wèn)題。全書(shū)分為6部分、23章,實(shí)例豐富,兼具技術(shù)深度和廣度,被讀者譽(yù)為“最有用的Oracle性能調(diào)優(yōu)參考書(shū)”。主要內(nèi)容包括:
有效的Oracle性能優(yōu)化方法描述;
如何充分利用Oracle的核心工具來(lái)跟蹤、監(jiān)控、診斷性能;?
高效的數(shù)據(jù)庫(kù)邏輯與物理設(shè)計(jì)、索引設(shè)計(jì)、事務(wù)設(shè)計(jì)以及API的使用;
SQL與PL/SQL調(diào)優(yōu),包含并行SQL技術(shù)的使用;?
最小化排隊(duì)鎖、閂鎖、共享內(nèi)存以及其他數(shù)據(jù)庫(kù)資源的爭(zhēng)用;
優(yōu)化內(nèi)存以及物理磁盤(pán)I/O;?
調(diào)優(yōu)Oracle?
RAC。
本書(shū)適用于所有的Oracle
DBA。
作者簡(jiǎn)介
Guy
Harrison 知名Oracle技術(shù)專(zhuān)家,在應(yīng)用與數(shù)據(jù)庫(kù)管理、性能調(diào)優(yōu)、軟件開(kāi)發(fā)領(lǐng)域有20多年的從業(yè)經(jīng)驗(yàn)。目前任Quest軟件公司研發(fā)總監(jiān),帶領(lǐng)軟件開(kāi)發(fā)團(tuán)隊(duì)研發(fā)了廣受歡迎的Spotlight系列產(chǎn)品,他負(fù)責(zé)Spotlight的Oracle版本、Oracle RAC版本、MySQL版本及SQL Server版本。除本書(shū)外,他還著有Oracle SQL High Performance
Tuning、Oracle Desk Reference及MySQL Stored Procedure
Programming。
書(shū)籍目錄
第一部分 方法、概念和工具
第1章 Oracle性能調(diào)優(yōu):一種系統(tǒng)化方法
1.1 Oracle性能調(diào)優(yōu)簡(jiǎn)史
1.2 超越表面分析法
1.3 第一階段:最小化應(yīng)用負(fù)載
1.4 第二階段:降低爭(zhēng)用和瓶頸
1.5 第三階段:降低物理IO
1.6 第四階段:優(yōu)化磁盤(pán)IO
1.7 本章小結(jié)
第2章 Oracle體系結(jié)構(gòu)與基本概念
2.1 Oracle API
2.1.1 創(chuàng)建游標(biāo)
2.1.2 檢查緩存的SQL語(yǔ)句
2.1.3 解析SQL語(yǔ)句
2.1.4 關(guān)聯(lián)綁定變量
2.1.5 執(zhí)行SQL語(yǔ)句
2.1.6 提取記錄
2.1.7 使用批量提取
2.1.8 處理結(jié)果集
2.1.9 關(guān)閉游標(biāo)
2.1.10 優(yōu)化Oracle API調(diào)用
2.2 Oracle查詢優(yōu)化器
2.2.1 基于成本的優(yōu)化
2.2.2 優(yōu)化器目標(biāo)
2.2.3 優(yōu)化器統(tǒng)計(jì)信息
2.2.4 綁定變量窺視與自適應(yīng)游標(biāo)共享
2.2.5 提示
2.2.6 存儲(chǔ)概要、SQL概要和SQL計(jì)劃基線
2.3 事務(wù)和鎖
2.4 Oracle服務(wù)器體系結(jié)構(gòu)
2.4.1 實(shí)例與數(shù)據(jù)庫(kù)
2.4.2 系統(tǒng)全局區(qū)
2.4.3 數(shù)據(jù)緩存
2.4.4 程序全局區(qū)
2.4.5 內(nèi)存管理
2.5 段與文件
2.5.1 表
2.5.2 索引
2.5.3 塊、區(qū)間、段以及分區(qū)
2.5.4 表空間與數(shù)據(jù)文件
2.5.5 回滾段
2.5.6 重做日志與歸檔日志
2.5.7 閃回日志
2.6 服務(wù)器進(jìn)程
2.7 后臺(tái)進(jìn)程
2.8 真正應(yīng)用集群
2.9 本章小結(jié)
第3章 實(shí)用工具
3.1 生成SQL語(yǔ)句的執(zhí)行計(jì)劃
3.1.1 計(jì)劃表
3.1.2 研究緩存的SQL
3.1.3 DBMS_XPLAN
3.1.4 解釋執(zhí)行計(jì)劃
3.1.5 虛擬索引
3.2 跟蹤Oracle的執(zhí)行
3.2.1 從當(dāng)前會(huì)話中調(diào)用跟蹤
3.2.2 識(shí)別跟蹤文件
3.2.3 獲取跟蹤狀態(tài)
3.2.4 在其他會(huì)話中調(diào)用跟蹤
3.2.5 通過(guò)MODULE、ACTION或SERVICE進(jìn)行跟蹤
3.2.6 使用登錄觸發(fā)器來(lái)啟用跟蹤
3.2.7 定位跟蹤文件
3.2.8 其他特殊化的跟蹤
3.3 使用tkprof格式化跟蹤文件
3.3.1 tkprof的排序選項(xiàng)
3.3.2 其他tkprof選項(xiàng)
3.3.3 合并多個(gè)SQL跟蹤文件
3.3.4 解釋tkprof的輸出結(jié)果
3.3.5 tkprof中的執(zhí)行計(jì)劃
3.3.6 等待統(tǒng)計(jì)信息與tkprof
3.3.7 tkprof的替代品
3.4 在SQL*PLUS中使用AUTOTRACE
3.5 監(jiān)控Oracle服務(wù)器
3.5.1 V$表接口
3.5.2 等待接口
3.5.3 時(shí)間模型
3.5.4 整合時(shí)間模型與等待接口
3.5.5 Oracle企業(yè)管理器
3.5.6 SPOTLIGHT ON ORACLE
3.6 本章小結(jié)
……
第二部分 應(yīng)用和數(shù)據(jù)庫(kù)設(shè)計(jì)
第4章 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)和物理設(shè)計(jì)
第5章 索引與簇
第6章 應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)
第三部分 SQL和PL/SQL調(diào)優(yōu)
第7章 優(yōu)化器的優(yōu)化
第8章 執(zhí)行計(jì)劃管理
第9章 表訪問(wèn)調(diào)優(yōu)
第10章 聯(lián)結(jié)與子查詢
第11章 排序、分組與集合操作
第12章 使用和調(diào)優(yōu)PL/SQL
第13章 并行SQL
第14章 DML調(diào)優(yōu)
第四部分 最小化爭(zhēng)用
第15章 鎖爭(zhēng)用
第16章 閂鎖和互斥爭(zhēng)用
第17章 共享內(nèi)存爭(zhēng)用
第五部分 優(yōu)化內(nèi)存
第18章 緩沖區(qū)高速緩存調(diào)優(yōu)
第19章 優(yōu)化PGA內(nèi)存
第20章 其他的內(nèi)存管理主題
第六部分 IO調(diào)優(yōu)和集群
第21章 磁盤(pán)IO調(diào)優(yōu)基礎(chǔ)
第22章 高級(jí)IO技術(shù)
第23章 優(yōu)化RAC
參考書(shū)目
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 分區(qū)使得表和索引由多個(gè)數(shù)據(jù)段構(gòu)成。用戶可以單獨(dú)地管理每一個(gè)分區(qū)段,并且可以獨(dú)立地設(shè)置每個(gè)分區(qū)段的存儲(chǔ)參數(shù)(例如,可以將每個(gè)段存儲(chǔ)在不同的表空間中)。 分區(qū)有很多優(yōu)勢(shì),如下所述。 查詢只需要讀取包含相關(guān)數(shù)據(jù)的分區(qū),減少了特定的查詢所需要的邏輯讀。分區(qū)排除 ( partition elimination)技術(shù)尤其適合那些因?yàn)樽x取表的數(shù)據(jù)過(guò)多以致于無(wú)法有效利用索引的SQL查詢,而且這些SQL查詢?nèi)匀恢恍枰x取某些分區(qū),而不用讀取整張表。 將表和索引分割成多個(gè)數(shù)據(jù)段,并行處理能力將得到大幅度提高。這包括查詢、插入、更新和刪除等數(shù)據(jù)管理操作,也包括索引重建等維護(hù)類(lèi)型的操作。 刪除大批量過(guò)期的數(shù)據(jù)時(shí),有時(shí)可以通過(guò)刪除過(guò)期的分區(qū)來(lái)高效地完成,而不必采用消耗很多資源的刪除語(yǔ)句來(lái)進(jìn)行行級(jí)刪除。 在有些情況下,將表和索引分割成多個(gè)數(shù)據(jù)段也可以降低鎖爭(zhēng)用。當(dāng)數(shù)據(jù)庫(kù)運(yùn)行在RAC環(huán)境中時(shí),它特別有用,因?yàn)樗軌蚪档蜔狳c(diǎn)塊( Hot block)爭(zhēng)用,進(jìn)而降低閂鎖(latch)爭(zhēng)用(參考第16章)。 并不是所有的Oracle版本都能夠使用分區(qū)。分區(qū)功能目前是Oracle數(shù)據(jù)庫(kù)企業(yè)版的一個(gè)選件,需要額外花錢(qián)獲得授權(quán)許可才可以使用。 4.6.1 分區(qū)的類(lèi)型 Oracle提供了多種不同的分區(qū)方案,用來(lái)確定哪些行被分配給哪些分區(qū)。在每一種分區(qū)方案中,它都依賴于某個(gè)列或某些列的取值,這些列稱為分區(qū)鍵( partition key)。下面是幾種不同的分區(qū)機(jī)制。 范圍分區(qū)(Range partitioning),就是根據(jù)表中的分區(qū)鍵取值的范圍,決定將該數(shù)據(jù)存儲(chǔ)在哪個(gè)分區(qū)上。我們?cè)跁r(shí)間類(lèi)型的列上經(jīng)常能夠看到范圍分區(qū),這種方式可以讓我們通過(guò)刪除一個(gè)分區(qū)來(lái)快速地清除過(guò)期的數(shù)據(jù)。間隔分區(qū)是Oracle llg中范圍分區(qū)的一個(gè)擴(kuò)展,當(dāng)數(shù)據(jù)來(lái)自新的間隔的時(shí)候(如一個(gè)月或其他時(shí)間范圍),一個(gè)新的范圍分區(qū)會(huì)被自動(dòng)創(chuàng)建。 散列分區(qū)( Hash partitioning)通過(guò)一個(gè)數(shù)學(xué)上的散列算法來(lái)確定一行記錄應(yīng)該存儲(chǔ)在哪個(gè)分區(qū)。這有助于確保每個(gè)分區(qū)的大小相同,但是,對(duì)于在分區(qū)鍵上進(jìn)行范圍檢索的查詢來(lái)講,它有可能不支持分區(qū)排除功能。 列表分區(qū)( List partitioning)根據(jù)預(yù)先定義好的分區(qū)鍵數(shù)值確定記錄被分配到哪個(gè)分區(qū)。 它和范圍分區(qū)有些類(lèi)似,但更加靈活,能夠?qū)⒎謪^(qū)鍵取值不相鄰的記錄存儲(chǔ)在相同的分區(qū)中。 Oracle 11g中還引入了一些新的分區(qū)方案。
媒體關(guān)注與評(píng)論
“本書(shū)涉及的主題之廣泛、闡述之細(xì)致令我吃驚,像我這種在Oracle領(lǐng)域摸爬滾打了近20年的人也受益匪淺。”——Rob Hamel,Pythian咨詢集團(tuán)副總裁,資深Oracle專(zhuān)家“Harrison先生在Oracle性能調(diào)優(yōu)領(lǐng)域備受尊崇,他的書(shū)是我在Oracle數(shù)據(jù)庫(kù)性能方向的啟蒙讀物。本書(shū)為Oracle性能調(diào)優(yōu)提供了一個(gè)結(jié)構(gòu)化方法,同時(shí)極為重視基礎(chǔ)理論,旨在幫助讀者解決Oracle性能管理所有方面的問(wèn)題。”——讀者評(píng)論“與那些整頁(yè)都是不可復(fù)制的‘測(cè)試用例’代碼清單的純理論性圖書(shū)截然不同。對(duì)于Oracle DBA來(lái)說(shuō),這是一本實(shí)用性極強(qiáng)的書(shū)。”——讀者評(píng)論
編輯推薦
Oracle數(shù)據(jù)庫(kù)優(yōu)化必讀知名作者力作,全面介紹Oracle性能管理源于實(shí)戰(zhàn),精于實(shí)例內(nèi)容涵蓋Oracle 10g、11g及11g發(fā)行版本2
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版