出版時間:2010-8 出版社:人民郵電 作者:(美)弗里奇//達(dá)姆|譯者:姚軍 頁數(shù):444 譯者:姚軍
Tag標(biāo)簽:無
前言
性能常常是開發(fā)系統(tǒng)時最后想到的事情之一。很不幸,這意味著它將在系統(tǒng)投產(chǎn)之后成為最大的問題。不能簡單地依靠一個電話,告訴你運(yùn)行于服務(wù)器2的數(shù)據(jù)庫Y上的過程X運(yùn)行很慢,而必須有一個機(jī)制來查找這些信息。也不能用“慢”來說明工作的狀態(tài)。慢是和什么相比?上一周?還是上一個月?和開發(fā)時相比?一旦你認(rèn)定某些部件運(yùn)行緩慢,必須要指出原因。它是否需要一個索引?它是否有一個未用的索引?是由于CPU、磁盤、內(nèi)存、用戶數(shù),還是數(shù)據(jù)量?已經(jīng)認(rèn)定了慢的部件和原因后,還必須做一些事情。如何優(yōu)化?重寫查詢?修改Where子句?當(dāng)開始性能調(diào)整時,這些問題會沒完沒了?! ”緯鴮⑻峁┗卮疬@些問題所需要的工具。將會說明,如何建立一個收集服務(wù)器上運(yùn)行的SQLServer實(shí)例及其中的數(shù)據(jù)庫性能數(shù)據(jù)的機(jī)制。還將介紹收集單個T-SQL調(diào)用數(shù)據(jù)的巧妙方法。過程中,將討論索引結(jié)構(gòu)、選擇和維護(hù),編寫T-SQL代碼的最佳方法,以及許多其他的主題。編寫本書的目標(biāo)之一,是使用類似于在真實(shí)世界中所能看到的查詢類型的實(shí)例來說明這些主題。所介紹的工具和方法大部分都可以用于SQL Server標(biāo)準(zhǔn)版,但是有些只可用于SQL Server企業(yè)版——到時會有相關(guān)提示。 本書將有條理地介紹進(jìn)行這些工作和回答這些問題的工具,從而消除當(dāng)前在性能優(yōu)化中常見的猜測工作。性能問題不是什么可怕的事情,使用正確的工具,可以從容而可靠地解決性能問題,并贏得同伴和客戶的尊敬以及直接幫助他們成功。 本書的讀者 本書適合于任何負(fù)責(zé)系統(tǒng)性能的讀者。這無疑包括數(shù)據(jù)庫管理員,因?yàn)樗麄冐?fù)責(zé)建立系統(tǒng),創(chuàng)建基礎(chǔ)架構(gòu),并且隨時對其進(jìn)行監(jiān)控。開發(fā)人員也被包括在內(nèi),因?yàn)槌怂麄?,還有誰需要生成結(jié)構(gòu)良好和高性能的T-SQL代碼?數(shù)據(jù)庫開發(fā)人員比任何人都更是目標(biāo)讀者,因?yàn)閿?shù)據(jù)庫開發(fā)正是我的工作?! ∪魏斡心芰帉慣-SQL、設(shè)計(jì)表、實(shí)現(xiàn)索引或者在SQL Server系統(tǒng)上操縱服務(wù)器設(shè)置的人都在一定程度上需要這些信息。 本書的結(jié)構(gòu) 本書的目的是盡量使用真實(shí)的查詢。為此,需要一個“真實(shí)”的數(shù)據(jù)庫。我本可以創(chuàng)建一個并強(qiáng)迫大家去下載,但是這里我選擇使用一個Miicrosoft創(chuàng)建的樣板數(shù)據(jù)庫Adventure Works 2008來代替——這可以通過CodePlex得到。建議保持一份便于恢復(fù)的拷貝,并且在閱讀本書的兩個主題之后復(fù)位樣板數(shù)據(jù)庫。Microsoft隨時會更新這些數(shù)據(jù)庫,所以可能看到和本書中所列出的不同的數(shù)據(jù)組或不同的查詢表現(xiàn)。在一定程度上,本書基于前面章節(jié)所介紹的知識來構(gòu)建。但是,許多章節(jié)介紹該主題中的獨(dú)特信息,所以可以挑選特定的章節(jié)閱讀,從第1章到第16章順序閱讀可以獲得最大的好處。 ?第1章“SQL查詢性能調(diào)整”介紹性能調(diào)整的迭代過程。你將得到發(fā)布性能基線、識別瓶頸、解決問題以及量化改進(jìn)的第一印象。 ?第2章“系統(tǒng)性能分析”從監(jiān)控運(yùn)行SQL Server的Windows系統(tǒng)開始,說明作為數(shù)據(jù)收集機(jī)制的性能監(jiān)視器和用戶自定義函數(shù)?! ?第3章“SQL查詢性能分析”定義了查看“隱藏的秘密”以及了解系統(tǒng)上運(yùn)行何種查詢的最佳方法,它提供了Profiler和跟蹤工具的細(xì)節(jié)。本章中第一次介紹了多種用于監(jiān)控查詢的動態(tài)管理視圖和功能。
內(nèi)容概要
本書通過大量實(shí)例,詳細(xì)介紹了SQL Server數(shù)據(jù)庫系統(tǒng)優(yōu)化的各種方法和技巧。內(nèi)容涵蓋了數(shù)據(jù)庫應(yīng)用系統(tǒng)中各種性能瓶頸的表現(xiàn)形式及其發(fā)生的根源和解決方法,從硬件瓶頸到查詢、索引設(shè)計(jì)以及數(shù)據(jù)庫管理等,貫穿了數(shù)據(jù)庫系統(tǒng)知識的各個方面。最后以一個實(shí)際的工作負(fù)載將所有技巧聯(lián)系起來,并且提供了“寶典”式的最佳實(shí)踐列表。 本書適合于關(guān)心數(shù)據(jù)庫應(yīng)用系統(tǒng)性能的開發(fā)人員和數(shù)據(jù)庫管理人員閱讀。通過閱讀本書,不僅可以學(xué)習(xí)到數(shù)據(jù)庫性能管理的許多知識和技巧,還有助于養(yǎng)成良好的編程習(xí)慣,為實(shí)現(xiàn)高性能的數(shù)據(jù)庫應(yīng)用系統(tǒng)打下基礎(chǔ)。
作者簡介
弗里奇(Grant Fritchey),為FM Global(一家行業(yè)領(lǐng)先的工程和保險(xiǎn)公司)工作,擔(dān)任首席DBA。他使用各種語言(如VB、C#和Java等)開發(fā)了許多大規(guī)模的應(yīng)用程序,從版本6.0開始使用SQL Server。他曾經(jīng)為3家失敗的.com公司擔(dān)任財(cái)務(wù)和咨詢工作,還是Dissecting SQL Server Execution Plans一書的作者?! ∵_(dá)姆(Sajal Dam),擁有位于印度班加羅爾的印度理工學(xué)院的計(jì)算機(jī)科學(xué)技術(shù)碩士學(xué)位,并且使用微軟技術(shù)超過16年。他已經(jīng)在設(shè)計(jì)數(shù)據(jù)庫應(yīng)用和管理軟件開發(fā)方面擁有了很廣泛的背景。Saial還在從前端網(wǎng)頁到后端數(shù)據(jù)庫的基于微軟技術(shù)的應(yīng)用程序上,具備了故障定位和性能優(yōu)化的大量經(jīng)驗(yàn)。他有許多為《財(cái)富》500強(qiáng)公司設(shè)計(jì)可伸縮的數(shù)據(jù)庫解決方案和最大化數(shù)據(jù)庫環(huán)境性能的經(jīng)驗(yàn)。
書籍目錄
第1章 SQL查詢性能調(diào)整 1.1 性能調(diào)整過程 1.1.1 核心過程 1.1.2 迭代過程 1.2 性能vs.價格 1.2.1 性能目標(biāo) 1.2.2 “足夠好”的調(diào)整 1.3 性能基線 1.4 工作的重點(diǎn) 1.5 SQL Server性能殺手 1.5.1 低質(zhì)量的索引 1.5.2 不精確的統(tǒng)計(jì) 1.5.3 過多的阻塞和死鎖 1.5.4 不基于數(shù)據(jù)集的操作 1.5.5 低質(zhì)量的查詢設(shè)計(jì) 1.5.6 低質(zhì)量的數(shù)據(jù)庫設(shè)計(jì) 1.5.7 過多的碎片 1.5.8 不可重用的執(zhí)行計(jì)劃 1.5.9 低質(zhì)量的執(zhí)行計(jì)劃 1.5.10 頻繁重編譯計(jì)劃 1.5.11 游標(biāo)的錯誤使用 1.5.12 錯誤配置數(shù)據(jù)庫日志 1.5.13 過多使用或者錯誤配置tempdb 1.6 小結(jié)第2章 系統(tǒng)性能分析第3章 SQL查詢性能分析第4章 索引分析第5章 數(shù)據(jù)庫引擎調(diào)整顧問第6章 書簽查找分析第7章 統(tǒng)計(jì)分析第8章 碎片分析第9章 執(zhí)行計(jì)劃緩沖分析第10章 存儲過程重編譯第11章 查詢設(shè)計(jì)分析第12章 阻塞分析第13章 死鎖分析第14章 游標(biāo)開銷分析第15章 數(shù)據(jù)庫工作負(fù)載優(yōu)化第16章 SQL Server優(yōu)化檢查列表
章節(jié)摘錄
在性能分析期間,一般在不同的數(shù)據(jù)列(如Duration、CPU和:Reads)上排序以確定相應(yīng)數(shù)字最大的查詢。如果脫機(jī)排序,就能降低在與SQL Server交互時必須進(jìn)行的Profiler活動。排序捕捉到的SQL跟蹤輸出的方法,步驟如下?! 。?)捕捉跟蹤,不做任何排序(或分組)?! 。?)保存跟蹤輸出到一個跟蹤文件?! 。?)打開跟蹤文件并按照需要在特定的數(shù)據(jù)列上排序(或分組)跟蹤文件輸出。 3.45遠(yuǎn)程運(yùn)行profiler 直接在生產(chǎn)服務(wù)器上運(yùn)行測試工具一般不是一個好辦法。Profiler有一個大型的用戶界面,因此,在其他機(jī)器上運(yùn)行它更好。與系統(tǒng)監(jiān)視器相似,Profiler不應(yīng)該通過終端服務(wù)會話來運(yùn)行,因?yàn)檫@樣工具的主要部分仍然在服務(wù)器上運(yùn)行。在直接將跟蹤輸出收集到一個文件時,保存在Profiler運(yùn)行的本地文件上。這仍然是比通過系統(tǒng)存儲過程將Profiler作為服務(wù)器端跟蹤來運(yùn)行更加資源密集的操作。使用系統(tǒng)存儲過程仍然是最好的選擇。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
SQL Server 2008查詢性能優(yōu)化 PDF格式下載