出版時間:2010 年8月 出版社:電子工業(yè)出版社 作者:譚懷遠 頁數:438
Tag標簽:無
前言
筆者在寫這本書的時候,翻看了很多當前國內數據庫方面的書籍,發(fā)現(xiàn)寫性能優(yōu)化的書并不多,特別是從工作經驗和思路上來討論性能方面的書,更是少之又少,這些因素讓筆者思考要寫這樣一本書,這也算是這本書的一個定位。在這本書里,你將會學到筆者在性能優(yōu)化方面的一些思路和思考,一些故障處理的方法和原則,這些東西是筆者在實踐中長期積累的心得體會,在筆者看來,掌握處理問題的方法和分析問題的思路在日常工作中顯得更為重要,當你掌握了一些處理問題的基本思路之后,剩下的工作就是去Google或者閱讀參考書了。本書的一個特點是,凡是作者提到的觀點,都盡可能地使用一些例子來證明它,這樣看起來更有說服力一些。為什么會出現(xiàn)數據庫的性能問題性能問題是最近幾年來DBA們越來越關注的一個數據庫技術領域,歸根結底,造成它的原因是最近幾年信息化進程的飛速發(fā)展,導致了很多系統(tǒng)的用戶數量猛增,數據庫中存儲的數據量亦成幾何級數激增,數據庫作為數據處理和存儲的最終受體,將必然直接承擔這種變化導致的性能下降。因此在人們對信息的依賴性越來越強的時候,對信息使用的效率也變得越來越關注,這樣數據庫的性能優(yōu)化問題就日益嚴重地壓在DBA的身上。
內容概要
在《讓Oracle跑得更快:Oracle 10g性能分析與優(yōu)化思路》里讀者將會學到作者在性能優(yōu)化方面的一些思路和思考,一些故障處理的方法和原則,這些東西是作者在實踐中長期積累的心得體會,當讀者掌握了一些處理問題的基本思路之后,成為一名合格的DBA就是一件輕而易舉的事情了。 《讓Oracle跑得更快:Oracle 10g性能分析與優(yōu)化思路》適用對象:Oracle DBA、Oracle開發(fā)人員,和其他對Oracle數據庫感興趣的人員。
作者簡介
譚懷遠,副總工,DBA團隊負責人,在國內屬于較早進入專職DBA崗位的人。是國內著名數據庫論壇ITPUB的資深版主。論壇idalantarny。10年的Oracle DBA工作經驗。從Oracle 8開始進入數據庫領域,從Oracle 8到Oracle 8i,Oracle 9i,Oracle 10g,見證了中國DBA職業(yè)的發(fā)展歷程。作者對數據庫的性能優(yōu)化有獨到的見解,頗擅長于海量數據數據庫的設計管理及優(yōu)化工作。
書籍目錄
第1章 引起數據庫性能問題的因素 1.1 軟件設計對數據庫的影響 1.1.1 軟件架構設計對數據庫性能的影響 1.1.2 軟件代碼的編寫對數據庫性能的影響 1.2 數據庫的設計 1.2.1 0LTP數據庫 1.2.2 0LAP數據庫 1.3 數據庫的硬件設計 1.3.1 存儲容量 1.3.2 存儲的物理設計 1.3.3 數據的安全 1.4 小結第2章 鎖和阻塞 2.1 關于鎖 2.2 鎖和阻塞 2.3 引起阻塞的其他情況 2.3.1 select for update 2.3.2 外鍵和索引第3章 Latch和等待 3.1 共享池中的Latch爭用 3.2 數據緩沖池Latch爭用 3.2.1 表數據塊 3.2.2 索引數據塊 3.2.3 索引根數據塊 3.2.4 段頭數據塊第4章 優(yōu)化器 4.1 RB0基于規(guī)則的優(yōu)化器 4.2 CB0基于成本的優(yōu)化器第5章 執(zhí)行計劃 5.1 Cardinality(基數) 5.2 SQL的執(zhí)行計劃第6章 Hint 6.1 和優(yōu)化器相關的Hint 6.1.1 all_rows和flrst_rows(CB0) 6.1.2 RULE Hint 6.2 訪問路徑相關的Hint 6.2.1 RULE Hint 6.2.2 RULE Hint 6.2.3 RULE Hint 6.2.4 INDEX_DESC Hint 6.2.5 INDEX_COMBINE Hint 6.2.6 INDEX_FFS 6.2.7 INDEX_JOIN 6.2.8 INDEX_SSHint 6.3 表關聯(lián)順序的Hint 6.3.1 LEADING Hint 6.3.2 ORDERED Hint 6.4 表關聯(lián)操作的Hint 6.4.1 USE_HASH,USE_NL和USE_MERGE Hint 6.4.2 N0USEHASH Hint 6.4.3 N0_USEMERGE Hint 6.4.4 NO_USENL Hint 6.5 并行執(zhí)行相關的Hint 6.5.1 PARALLEL Hint 6.5.2 NO_PARALLEL Hint 6.6 其他方面的一些Hint 6.6.1 APPEND Hint 6.6.2 DYNAMIC_SAMPLING Hint 6.6.3 DRIVING_SITEHint 6.6.4 CACHE Hint 6.7 小結第7章 分析及動態(tài)采樣 7.1 直方圖 7.2 DBMS-STATS包 7.3 動態(tài)采樣 7.3.1 什么是動態(tài)采樣 7.3.2 動態(tài)采樣的級別 7.3.3 什么時候使用動態(tài)采樣 7.4 小結第8章 并行執(zhí)行 8.1 并行和0LAP系統(tǒng) 8.2 并行處理的機制 8.3 讀懂一個并行處理的執(zhí)行計劃 8.4 一個很常見的并行執(zhí)行等待事件 8.5 并行執(zhí)行的適用范圍 8.5.1 并行查詢 8.5.2 并行DDL操作 8.5.3 并行DML操作 8.6 并行執(zhí)行的設定 8.6.1 并行相關的初始化參數 8.6.2 并行度的設定 8.7 直接加載 8.7.1 直接加載和REDO 8.7.2 直接加載和索引 8.7.3 直接加載和并行 8.7.4 直接加載和SQL*LOADER第9章 變量綁定 9.1 什么是變量綁定,為什么要做變量綁定 9.2 為什么說0LTP必須要求變量綁定而0LAP不應該綁定變量 9.3 bind peaking第10章 SQL_TRACE和10046事件 10.1 SQL_TRACE 10.2 TKPROF工具 10.3 10046事件第11章 10053事件第12章 性能視圖和性能參數 12.1 性能視圖 12.1.1 V$SQL 12.1.2 V$SOLSHAREDCURSOR 12.1.3 v$session 12.1.4 V$sessstat 12.1.5 V$session_wait 12.2 性能參數 12.2.1 Cursor_sharing 12.2.2 DB_FILE_MULTIBLOCK_READ_COUNT 12.2.3 PGA_AGGREGATE_TARGET和SGA_TARGET 12.2.4 OPTIMIZER_DYNAMIC_SAMPLING第13章 性能報告 13.1 AWR性能報告 13.1.1 生成AWR性能報告 13.1.2 AWR性能報告分析 13.2 Statspack性能報告 13.2.1 Statspack的安裝 13.2.2 Statspack性能采集 13.3 ASH性能報告 13.3.1 生成ASH性能報告 13.3.2 ASH性能報告分析 13.4 小結附錄A 常見的等待事件后記 關于數據庫的學習方法
章節(jié)摘錄
插圖:比如是超過3000個并發(fā),通常這種情況下,我們會考慮采用一套軟件來搭建一個中間層,這就是通常講到的3層或是多層結構。使用這一套軟件的目的是用來構建一個緩沖池,在數據庫之前對大量的并發(fā)進行處理,以便于每次只有少數的用戶連接到數據庫中,其他的用戶在緩沖池的隊列中等待。當然,這只是一個動態(tài)的過程,程序會盡可能快地去響應所有用戶的請求,這種提前對大量并發(fā)用戶進行處理的方式,會比讓這3000個用戶直接連接到數據庫中效果要好得多,同時數據庫也可以使用更多的資源來處理用戶的操作請求而不是去開3000個進程來處理每個用戶的請求,這個開銷是非常大的。所以對于大量并發(fā)的系統(tǒng)來講,在數據庫之前建一個緩沖用戶請求的中間件服務,顯得至關重要。同時,很多這種中間件軟件還提供了負載均衡的功能。當然,Oracle數據庫自身也提供了一種MTS的技術,作用和這種中間件服務是一樣的,但目前看來,采用商業(yè)中間件軟件或是開發(fā)商自己開發(fā)一套中間件服務的做法更多一些(參見圖1.1 )。1.1.2 軟件代碼的編寫對數據庫性能的影響軟件代碼對數據庫的影響,通常指的是應用程序代碼中對數據庫操作的代碼部分對數據庫產生的影響。具體來講就是SQL語句或是PL/SQL包。SQL語句造成的影響,一種是SQL,語句本身在邏輯上就是效率低下的,另一種就是SQL語句沒有綁定變量。性能低下的SQL語句,比如使用Hint不合適的外連接,謂詞的隱含轉換,優(yōu)化器的選擇等,會對SQL的執(zhí)行產生非常大的影響,特別是多表關聯(lián)的情況下,影響更是顯著。
后記
我想在這里聊一些數據庫方面的學習方法,算是對自己這些年學習的一個總結,也可以給那些才進入Oracle領域的朋友們提供一些借鑒。如果能夠使你有所收獲的話,我將非常高興。1、英語和技術的關系從2005年開始到現(xiàn)在,我只看過三本關于數據庫方面的印刷書籍,都是由一個人寫的,他叫Tom Kyte,業(yè)內都叫他Tom,這三本書分別是:《Expert One-Oil-One Oracle》——《Oracle專家高級編程》《Expert_Oracle-Database Architecture》——《Oracle 9i&10g編程藝術深入數據庫體系結構》《Effective Oracle by Design》——《Oracle高效設計》在買這三本書時,多少帶有些許百目性,因為崇拜書的作者,所以愛屋及馬地買了他寫的所有的書,實際上我用在看這三本書上的時間并不多,更多的時候我都泡在Asktom.Oracle.com這個網站上,就是這個網站,改變了我對問題的思考方式和學習方法。對于大多數中國人來說,特別是做技術的人,英語成為很多人的軟肋,這是一個無奈的局面。我甚至聽到很多人在說,為什么非要學習英語,自己國家的話說好就行了,言辭之間頗鄙視那些學英語的“崇洋派們”。本身這句話也還不錯,作為自己國家的公民,學好自己國家的語言,自然是再好不過的事情。但是很遺憾的是,我們說著自己的語言,卻在用著別人的東西。用別人的東西,卻拒絕學習別人的語言,這看起來不免有些矛盾。如果有一天世界上所有的商業(yè)軟件都來自于中國,那么我們再自豪地鄙視那些學習英語的人也不遲。所以我必須要說的是,如果你想把計算機的技術學深一些,請你務必要學好英語,至少要做到能夠熟練閱讀英文文檔的啞巴英語,如果再進一步,你能夠使用英語和別人做書面的溝通(比如在論壇中或者E-mail中提出問題),那會更好一些。在Asktom.Oracle.com中有來自世界上很多國家的Oracle DBA或者開發(fā)人員在提出問題,我最初的時候只是瀏覽,后來嘗試著用自己蹩腳的英語向Fom提出了一個問題,當收到Tom給出的回復后,當時心情真是無比的激動,可喜之余不免又甚感悲哀,為什么一個簡單的提問,卻讓我歡喜至此呢?原因大概是,我們和他們之間溝通太少了,一個小小的問答,對我來說就像跨過一個巨大的鴻溝。之后的日子里,就慢慢習慣了這種學習方式,當我有一個問題,在找遍了所有的Oracle官方文檔,Google和Metalink(一個Oracle公司的在線技術支持平臺)未果之后,總是能夠在這里得到一個確切的回答,它已經變成了我在技術上最后的依靠了。
媒體關注與評論
作者將自己多年的經驗用自己的語言和通俗的比喻給我們展示出來,帶給人的是另一種體驗,更親切和容易理解。除了常規(guī)的優(yōu)化所涉及的范疇及Oracle 10g開始推出的AWR和ASH之外,作者還引出了10053這樣的CBO相關的事件及不少的Hint方法,這些都將幫助我們非常深入地研究數據庫的SQL優(yōu)化問題。相信作者將親身經歷的體驗深入淺出地展示給我們,能給Oracle數據庫愛好者很好的幫助?! T春培當我們在2004年開始編輯出版Oracle技術書籍時,國內原創(chuàng)的作品還十分有限,現(xiàn)在,這種情況完全改變了,越來越多的技術愛好者開始總結、寫作和分享,Oracle技術出版物開始豐富起來。在這個歷程中,ITPUB論壇一直推動著Oracle數據庫技術的探討和應用,作者alantany來自于ITPUB的一位技術專家,他將自己多年的實踐與經驗不斷總結出來,和我們大家分享,這種精神與堅持值得尊敬,我樂于見到這樣的作品問世,也期待作者能夠堅持不懈,不斷同我們分享他的知識與經驗?! w國強,恩墨科技創(chuàng)始人,Oracle ACE總監(jiān)很欣喜地看到這幾年來國內Oracle數據庫技術原創(chuàng)書籍的蓬勃發(fā)展,對每一位能夠坐下來并且將自己的經-驗寫出來的作者我都報以深深的敬意。可以說這本書作者擁有得天獨厚的工作環(huán)境,據我所知,他所參與管理的數據庫無論是數量還是大小還是性能要求上在國內都可以排入前列,因此這是一本融合了真知灼見、可以指導實際工作Oracle數據庫性能優(yōu)化書籍。實際上我更希望讀者們可以從后記開始讀起,作者在后記中提及的所有觀點都與我不謀而合,我同樣相信無論是后記中這些觀點還是全書中記錄的技術知識,對于所有從業(yè)人員都有極大幫助?! 獦I(yè)內資深Oracle技術專家,Oracle ACE張樂奕據我所知作者是中國獨立撰定Oracle性能優(yōu)化書籍的第一人,該書幾乎涵概了Oracle性能優(yōu)化的所有主題,在國內數據庫性能優(yōu)化領域的書籍中實屬罕見?! x永生,資深Oracle培訓講師The fast and easy way to understanding the fundamentals of database performance tunning. If you retired of wading through huge technical manuals that drown you in jargon,making it difficult to decipher database performance issues,help has finally arrived.Simple enough for a beginner,but challenging enough for anadvanced user,this book is your shortcut to mastering database perfperformance tunning. ——Mike ITG(Investment technology group)資深軟件工程師
編輯推薦
《讓Oracle跑得更快:Oracle 10g性能分析與優(yōu)化思路》:ITPUB技術叢書
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載