出版時間:2008-6 出版社:電子工業(yè)出版社 作者:胡百敬,姚巧玫,劉承修 頁數(shù):715 字數(shù):900000
Tag標(biāo)簽:無
內(nèi)容概要
數(shù)據(jù)庫系統(tǒng)經(jīng)年累月地運行,日久便可能面臨數(shù)據(jù)累積量大、使用人數(shù)增加、應(yīng)用面擴增、當(dāng)初系統(tǒng)設(shè)計有局限等問題,導(dǎo)致性能變差,這就需要調(diào)試人員進行性能調(diào)校。然而,他們進行性能調(diào)校的能力是需要培養(yǎng)的,一般來說,需要的不只是數(shù)據(jù)庫方面的知識和經(jīng)驗,還要對商業(yè)領(lǐng)域知識、系統(tǒng)架構(gòu)設(shè)計、應(yīng)用程序撰寫,以及對操作系統(tǒng)、網(wǎng)絡(luò)環(huán)境架設(shè)、各種監(jiān)控工具程序等都有一定的了解,才能在復(fù)雜的系統(tǒng)中,找到癥結(jié)所在,完成調(diào)校任務(wù)?! ”緯菫闈M足上述需要而編寫的,適合SQL Server DBA閱讀,書中提供了性能調(diào)校和錯誤處理的建議與提示,并通過實際案例,協(xié)助DBA建立正確的觀念、充分了解系統(tǒng)架構(gòu),進而在閱讀中傳承功力,并打通任督二脈,領(lǐng)略其中運用之奧妙。
書籍目錄
第1章 性能調(diào)校概觀 1.1 什么是性能調(diào)校 1.2 建立性能的基線 1.3 性能調(diào)校的步驟——DETECT 1.3.1 各階段重點說明 1.3.2 練習(xí)DETECT方法 1.3.3 二分查找 1.3.4 定義瓶頸 1.4 結(jié)語 第2章 SQL Server架構(gòu)簡介 2.1 SQL Server運行架構(gòu) 2.1.1 SQL Server的訪問架構(gòu) 2.1.2 SQL Server 的核心引擎 2.1.3 SQL Server動態(tài)自我管理 2.2 各項硬件使用剖析 2.2.1 內(nèi)存管理 2.2.2 中央處理器 2.2.3 磁盤子系統(tǒng) 2.3 仿真系統(tǒng)運行 2.4 結(jié)語 第3章 性能調(diào)校相關(guān)工具程序 3.1 綜觀的工具 3.1.1 SQLDiag 公用程序概述 3.1.2 觀察影響效率的內(nèi)容 3.1.3 性能監(jiān)視器 3.2 進一步的分析工具 3.2.1 Management Studio 3.2.2 SQL Profiler概述 3.3 針對特定對象的工具 3.3.1 Database Engine Tuning Advisor 3.3.2 查詢編輯器 3.3.3 網(wǎng)絡(luò)監(jiān)視器 3.3.4 DBCC 3.3.5 跟蹤標(biāo)記 3.4 Performance Dashboard Reports 3.4.1 SQL Server 2005 Performance Dashboard Reports 3.4.2 Performance Dashboard Reports 主要的分析途徑 3.4.3 Performance Dashboard Reports 所提供的各式報表 3.4.4 Blocking 報表 3.4.5 General Wait 報表 3.4.6 其他細節(jié)報表 3.4.7 擴展Performance Dashboard Reports 報表功能 3.5 壓力測試工具程序 3.5.1 Microsoft Application Center Test 3.5.2 Load Simulator 3.5.3 自行編寫壓力測試程序 3.6 結(jié)語 第4章 動態(tài)管理視圖和函數(shù) 4.1 動態(tài)管理視圖和函數(shù)簡介 4.2 動態(tài)管理視圖和函數(shù)的使用范例 4.3 觀察各種資源的使用情況 4.3.1 內(nèi)存緩存區(qū) 4.3.2 CPU 的使用 4.3.3 執(zhí)行計劃重用 4.3.4 鎖定與被鎖定的關(guān)系 4.3.5 I/O 的使用 4.3.6 tempdb 系統(tǒng)數(shù)據(jù)庫的使用 第5章 數(shù)據(jù)庫設(shè)計 5.1 數(shù)據(jù)庫設(shè)計 5.2 使用分割數(shù)據(jù)表切割和平行運行 5.2.1 分割數(shù)據(jù)表的使用范例 5.2.2 分割數(shù)據(jù)表與大量數(shù)據(jù)加載的集成 5.3 TEMPDB 系統(tǒng)數(shù)據(jù)庫的規(guī)劃 5.3.1 tempdb 的用途 5.3.2 SQL Server 2005 針對tempdb 所做的改良 5.3.3 監(jiān)控tempdb 的使用 5.3.4 性能考慮 5.4 備份與還原 5.4.1 數(shù)據(jù)庫恢復(fù)模式 5.4.2 數(shù)據(jù)庫恢復(fù)模式之間的切換 5.5 大量數(shù)據(jù)加載 5.6 設(shè)計磁盤子系統(tǒng) 5.7 結(jié)語 第6章 索引 6.1 索引概觀 6.1.1 建立索引與相關(guān)的屬性設(shè)置 6.1.2 平行建立索引 6.1.3 在線索引 6.1.4 集群索引與非集群索引 6.1.5 排序 6.1.6 與索引相關(guān)的系統(tǒng)視圖 6.1.7 是否值得建索引 6.2 索引維護 6.2.1 觀察數(shù)據(jù)不連續(xù) 6.2.2 使用動態(tài)管理函數(shù)觀察數(shù)據(jù)不連續(xù) 6.2.3 重組、重建與停用索引 6.3 優(yōu)化執(zhí)行計劃的各階段 6.4 統(tǒng)計 6.4.1 更新統(tǒng)計 6.5 覆蓋索引 6.6 在視圖與計算字段上建立索引 6.6.1 如何有效地建立Indexed View 6.6.2 Indexed View的適用范圍 6.7 單一查詢使用多個索引 6.8 結(jié)語 第7章 T-SQL語法 7.1 有效地查詢參數(shù) 7.1.1 不要對數(shù)據(jù)域做運算 7.1.2 勿負向查詢 7.1.3 勿在Where 子句對字段使用函數(shù) 7.1.4 小心使用OR 操作 7.2 連接 7.2.1 連接 7.2.2 Join 語句 7.2.3 嵌套循環(huán)連接 7.2.4 合并連接 7.2.5 哈希連接 7.2.6 連接與子查詢 7.3 其他注意事項 7.3.1 INSERT、DELETE 和UPDATE 7.3.2 子查詢 7.3.3 搭配EXISTS與IN的子查詢 7.3.4 通過連接更新數(shù)據(jù) 7.3.5 查詢提示 7.4 新的DML語句 7.4.1 Common Table Expression 7.4.2 獲取排名或順序的函數(shù) 7.5 SQL Server 提供的公共變量 7.6 結(jié)語 第8章 重用執(zhí)行計劃 8.1 編譯與高速緩存執(zhí)行計劃 8.2 影響計劃重用的因素 8.3 執(zhí)行計劃與Execution Context 8.4 觀察執(zhí)行計劃的使用 8.5 需要重新編譯計劃 8.5.1 不同參數(shù)使用相同執(zhí)行計劃可能引發(fā)的問題 8.5.2 以提示影響查詢引擎所建立的執(zhí)行計劃 第9章 交易與鎖定管理 9.1 鎖定 9.1.1 鎖定的種類及范圍 9.1.2 鎖定的兼容性 9.1.3 可鎖定的資源 9.1.4 鎖定與交易隔離等級 9.1.5 動態(tài)的鎖定管理 9.1.6 鎖定逾時 9.2 數(shù)據(jù)行版本控制 9.2.1 數(shù)據(jù)行版本控制基本運行行為 9.2.2 “數(shù)據(jù)行版本控制”使用時機 9.2.3 “數(shù)據(jù)行版本控制”TEMPDB 數(shù)據(jù)庫資源管理 9.3 交易 9.3.1 交易行為概述 9.3.2 批處理與交易 9.3.3 嵌套交易 9.3.4 存儲點 9.3.5 鎖定提示 9.3.6 使用交易之注意事項 9.4 死鎖狀況 9.4.1 發(fā)生Cycle 死鎖 9.4.2 發(fā)生Conversion 死鎖 9.4.3 分布式死鎖 9.4.4 SQL Server 無法偵測的死鎖實例 9.5 觀察與分析系統(tǒng)的鎖定狀況 9.5.1 觀察SQL Server 當(dāng)前執(zhí)行的狀況 9.5.2 觀察與分析系統(tǒng)的鎖定狀況 9.6 鎖定的原因及相關(guān)處理 9.6.1 費時的查詢或交易 9.6.2 不正確的交易或交易隔離等級設(shè)置 9.6.3 交易未正確處理 9.6.4 未檢測到的分布式死鎖 9.6.5 鎖定數(shù)據(jù)粒度(Lock Granularity)太高或太低 9.6.6 Compile Blocking 9.6.7 基本原則 9.7 結(jié)語 第10章 前端應(yīng)用程序設(shè)計 10.1 程序架構(gòu) 10.2 用戶端與SQL服務(wù)器的交互 10.2.1 用戶端訪問SQL Server 的模式 10.2.2 準(zhǔn)備再執(zhí)行的模式 10.2.3 測試各種執(zhí)行SQL 語句方式的性能 10.2.4 Connection Pooling 10.3 多數(shù)據(jù)結(jié)果集 10.3.1 SQL Server 數(shù)據(jù)訪問與結(jié)果集 10.3.2 工作階段內(nèi)容信息與MARS 10.3.3 前端程序經(jīng)由MARS訪問 10.3.4 MARS的執(zhí)行方式 10.3.5 同時讀取與更新數(shù)據(jù) 10.4 光標(biāo) 10.4.1 光標(biāo)概觀 10.4.2 默認結(jié)果集 10.4.3 服務(wù)器端光標(biāo) 10.4.4 使用光標(biāo)的T-SQL語句 10.4.5 與光標(biāo)相關(guān)的系統(tǒng)存儲過程 10.4.6 通過前端程序訪問四種類型的光標(biāo) 10.4.7 異步使用光標(biāo) 10.4.8 使用光標(biāo)時應(yīng)注意的事項 10.5 數(shù)據(jù)高速緩存 10.5.1 使用高速緩存的原因 10.5.2 .NET Framework 與Microsoft patterns & Practices Enterprise Library提供的高速緩存 10.5.3 訪問Caching Application Block 10.6 應(yīng)用程序錯誤處理 第11章 Visual Studio 2005 Team Edition For Database Professional 11.1 DB Pro 所支持的功能 11.2 建立數(shù)據(jù)庫項目并控制對象的SQL Script 11.2.1 建立項目 11.2.2 將數(shù)據(jù)庫定義加入源代碼版本控制 11.3 建立數(shù)據(jù)庫內(nèi)新對象 11.3.1 部署項目定義到數(shù)據(jù)庫 11.3.2 依項目內(nèi)容更新數(shù)據(jù)庫Schema 定義 11.4 修改數(shù)據(jù)庫內(nèi)對象名稱 11.5 測試 11.5.1 產(chǎn)生測試數(shù)據(jù) 11.5.2 數(shù)據(jù)庫的單元測試 11.5.3 數(shù)據(jù)庫單元測試的方面 11.5.4 以DB Pro 設(shè)計與執(zhí)行單元測試 11.5.5 通過測試條件定義單元測試的結(jié)果是成功或失敗 11.5.6 負載測試 11.6 Service Release 1 與Power Tools 的功能 11.6.1 Power Tools 為VSTS Database Pro 新增的功能 附錄A 數(shù)據(jù)庫對象的命名慣例與訪問標(biāo)準(zhǔn) A.1 建立命名規(guī)則 A.2 數(shù)據(jù)庫使用慣例 附錄B 數(shù)據(jù)庫服務(wù)器的容量規(guī)劃 附錄C 應(yīng)用程序架構(gòu)范例
章節(jié)摘錄
第1章 性能調(diào)校概觀 一般而言,影響數(shù)據(jù)庫整體性能的因素如圖1.1所示?! ∪魯?shù)據(jù)庫設(shè)計得宜,注意了切割數(shù)據(jù)、保留了訪問靈活性,有效地使用了SQL語句,數(shù)量適當(dāng)且有用的索引,避免長時間廣泛的鎖定,充足的硬件資源等,則系統(tǒng)將可有效地提供服務(wù),如圖1.1所示。各種影響性能的因素中,最重要的是基礎(chǔ)設(shè)計,但大多數(shù)的案例由于時間急迫、對技術(shù)的認知有限、需求不明確等因素,導(dǎo)致系統(tǒng)結(jié)構(gòu)缺少擴充性,僅能一味地升級硬件,但整體性能無法大幅改善?! ≡黾覥PU對系統(tǒng)的性能當(dāng)然會有幫助,但結(jié)果不一定能讓人滿意,例如,交易鎖定過多且長久,數(shù)據(jù)表字段多且長度大,所屬的SQL語句無法有效地平行運算,又不能將工作分成多個批處理同時執(zhí)行等,則更多的CPU也無法解決問題?! ⌒阅苷{(diào)校不是一件簡單的事,一般來說需要有廣泛的經(jīng)驗與知識,不單單是數(shù)據(jù)庫的經(jīng)驗,還要對商業(yè)邏輯、系統(tǒng)架構(gòu)設(shè)計、編寫應(yīng)用程序、操作系統(tǒng)、架設(shè)網(wǎng)絡(luò)環(huán)境、使用各種偵測與監(jiān)控工具程序、安全與防毒等,都有基本的了解,才能在復(fù)雜的系統(tǒng)中,找到癥結(jié)所在。 因為性能問題往往不會單純地呈現(xiàn)出來,讓你一眼就知道答案。最簡單的例子,當(dāng)你看到CPU很忙時,長時間百分之百的使用率,可能直覺就是CPU性能不足。但其實可能是硬盤性能不足,或是內(nèi)存容量不夠,讓CPU一直忙于I/O。這個例子只是簡單地告訴你,性能問題的癥結(jié)往往不是表象所呈現(xiàn)出來的。從不同的方面去看,往往會有不同的解釋?! ≡缦?,微軟的性能調(diào)校制式文件上標(biāo)示著各項成功元素所占的百分率:先前的經(jīng)驗19%、解決問題的能力22%、是否有完備的顧問服務(wù)16%、產(chǎn)品的熟悉程度26%、計算機的相關(guān)知識13%、運氣4%,見圖1.2。天啊!你是全世界最強的信息人員,若上蒼不眷顧,還是有4%的機會不得成功。
編輯推薦
《SQL Server 2005性能調(diào)?!愤m合SQL Server DBA閱讀,書中提供了性能調(diào)?;蝈e誤處理的建議與提示,并通過實際案例,協(xié)助DBA建立正確的觀念、充分了解系統(tǒng)架構(gòu),進而在閱讀中傳承功力,并打通任督二脈,領(lǐng)略其中運用之奧妙。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
SQL Server 2005 Performance Tuning性能調(diào)校 PDF格式下載