內容簡介
《SQLServer2005性能調校》完整涵蓋企業資料庫管理最經典且實用的課題,憑藉作者多年的顧問經驗,定義、找尋與解決性能調校之疑問,深入探究SQL Server的運行原理,如索引、游標、數據訪問界面,事務與鎖定等,探索和模擬SQL Server與性能相關之議題,破解DBA日常所面臨的問題,並提供最佳方案,詳解系統設計應注意之事項,程式撰寫之建議,同時解析各資料庫對象使用方式的優劣。
資料庫系統經年累月地運行,日久便可能面臨數據累積量大、使用人數增加、套用面擴增、當初系統設計有局限等問題,導致性能變差,這就需要調試人員進行性能調校。然而,他們進行性能調校的能力是需要培養的,一般來說,需要的不只是資料庫方面的知識和經驗,還要對商業領域知識、系統架構設計、應用程式撰寫,以及對作業系統、網路環境架設、各種監控工具程式等都有一定的了解,才能在複雜的系統中,找到癥結所在,完成調校任務。
本書正是為滿足上述需要而編寫的,適合SQL Server DBA閱讀,書中提供了性能調校和錯誤處理的建議與提示,並通過實際案例,協助DBA建立正確的觀念、充分了解系統架構,進而在閱讀中傳承功力,並打通任督二脈,領略其中運用之奧妙。
編輯推薦
資料庫系統經年累月,可能由於數據累積、使用人數增加、套用人數增加、套用而擴增、當初系統設計不良等原因,導致性能變差。然而,性能調校的能力是需要培養的,一般來說,需要的不只是資料庫的經驗,還要對商業領域知識、系統架構設計、應用程式撰寫,以及作業系統、網路環境架設、各種監控工具程式有了解,才能在複雜的系統中,找到癥結所在並有效解決。
本書適合SQL Server DBA閱讀,書中提供了性能調校或錯誤處理的建議與提示,並通過實際案例,協助DBA建立正確的觀念,充分了解系統架構,進而在閱讀中傳承功力,並打通任督二脈,領略其中運用之奧妙。
隨書光碟內容包括:範例程式,性能調校計畫,壓力測試計畫。
盛情推薦:
台灣微軟資深產品行銷經理——李玉秀。
精誠資訊知識產品事業部技術開發處資深處長——張智凱。
圖書目錄
第1章 性能調校概觀
1.1 什麼是性能調校
1.2 建立性能的基線
1.3 性能調校的步驟——DETECT
1.3.1 各階段重點說明
1.3.2 練習DETECT方法
1.3.3 二分查找
1.3.4 定義瓶頸
1.4 結語
第2章 SQL Server架構簡介
2.1 SQL Server運行架構
2.1.1 SQL Server的訪問架構
2.1.2 SQL Server 的核心引擎
2.1.3 SQL Server動態自我管理
2.2 各項硬體使用剖析
2.2.1 記憶體管理
2.2.2 中央處理器
2.2.3 磁碟子系統
2.3 仿真系統運行
2.4 結語
第3章 性能調校相關工具程式
3.1 綜觀的工具
3.1.1 SQLDiag 公用程式概述
3.1.2 觀察影響效率的內容
3.1.3 性能監視器
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 網路監視器
3.3.4 DBCC
3.3.5 跟蹤標記
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 其他細節報表
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 結語
第4章 動態管理視圖和函式
4.1 動態管理視圖和函式簡介
4.2 動態管理視圖和函式的使用範例
4.3 觀察各種資源的使用情況
4.3.1 記憶體快取區
4.3.2 CPU 的使用
4.3.3 執行計畫重用
4.3.4 鎖定與被鎖定的關係
4.3.5 I/O 的使用
4.3.6 tempdb 系統資料庫的使用
第5章 資料庫設計
5.1 資料庫設計
5.2 使用分割數據表切割和平行運行
5.2.1 分割數據表的使用範例
5.2.2 分割數據表與大量數據載入的集成
5.3 TEMPDB 系統資料庫的規劃
5.3.1 tempdb 的用途
5.3.2 SQL Server 2005 針對tempdb 所做的改良
5.3.3 監控tempdb 的使用
5.3.4 性能考慮
5.4 備份與還原
5.4.1 資料庫恢復模式
5.4.2 資料庫恢復模式之間的切換
5.5 大量數據載入
5.6 設計磁碟子系統
5.7 結語
第6章 索引
6.1 索引概觀
6.1.1 建立索引與相關的屬性設定
6.1.2 平行建立索引
6.1.3 線上索引
6.1.4 集群索引與非集群索引
6.1.5 排序
6.1.6 與索引相關的系統視圖
6.1.7 是否值得建索引
6.2 索引維護
6.2.1 觀察數據不連續
6.2.2 使用動態管理函式觀察數據不連續
6.2.3 重組、重建與停用索引
6.3 最佳化執行計畫的各階段
6.4 統計
6.4.1 更新統計
6.5 覆蓋索引
6.6 在視圖與計算欄位上建立索引
6.6.1 如何有效地建立Indexed View
6.6.2 Indexed View的適用範圍
6.7 單一查詢使用多個索引
6.8 結語
第7章 T-SQL語法
7.1 有效地查詢參數
7.1.1 不要對數據域做運算
7.1.2 勿負向查詢
7.1.3 勿在Where 子句對欄位使用函式
7.1.4 小心使用OR 操作
7.2 連線
7.2.1 連線
7.2.2 Join 語句
7.2.3 嵌套循環連線
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 通過連線更新數據
7.3.5 查詢提示
7.4 新的DML語句
7.4.1 Common Table Expression
7.4.2 獲取排名或順序的函式
7.5 SQL Server 提供的公共變數
7.6 結語
第8章 重用執行計畫
8.1 編譯與高速快取執行計畫
8.2 影響計畫重用的因素
8.3 執行計畫與Execution Context
8.4 觀察執行計畫的使用
8.5 需要重新編譯計畫
8.5.1 不同參數使用相同執行計畫可能引發的問題
8.5.2 以提示影響查詢引擎所建立的執行計畫
第9章 交易與鎖定管理
9.1 鎖定
9.1.1 鎖定的種類及範圍
9.1.2 鎖定的兼容性
9.1.3 可鎖定的資源
9.1.4 鎖定與交易隔離等級
9.1.5 動態的鎖定管理
9.1.6 鎖定逾時
9.2 數據行版本控制
9.2.1 數據行版本控制基本運行行為
9.2.2 “數據行版本控制”使用時機
9.2.3 “數據行版本控制”TEMPDB 資料庫資源管理
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 發生Cycle 死鎖
9.4.2 發生Conversion 死鎖
9.4.3 分散式死鎖
9.4.4 SQL Server 無法偵測的死鎖實例
9.5 觀察與分析系統的鎖定狀況
9.5.1 觀察SQL Server 當前執行的狀況
9.5.2 觀察與分析系統的鎖定狀況
9.6 鎖定的原因及相關處理
9.6.1 費時的查詢或交易
9.6.2 不正確的交易或交易隔離等級設定
9.6.3 交易未正確處理
9.6.4 未檢測到的分散式死鎖
9.6.5 鎖定數據粒度(Lock Granularity)太高或太低
9.6.6 Compile Blocking
9.6.7 基本原則
9.7 結語
第10章 前端應用程式設計
10.1 程式架構
10.2 用戶端與SQL伺服器的互動
10.2.1 用戶端訪問SQL Server 的模式
10.2.2 準備再執行的模式
10.2.3 測試各種執行SQL 語句方式的性能
10.2.4 Connection Pooling
10.3 多數據結果集
10.3.1 SQL Server 數據訪問與結果集
10.3.2 工作階段內容信息與MARS
10.3.3 前端程式經由MARS訪問
10.3.4 MARS的執行方式
10.3.5 同時讀取與更新數據
10.4 游標
10.4.1 游標概觀
10.4.2 默認結果集
10.4.3 伺服器端游標
10.4.4 使用游標的T-SQL語句
10.4.5 與游標相關的系統存儲過程
10.4.6 通過前端程式訪問四種類型的游標
10.4.7 異步使用游標
10.4.8 使用游標時應注意的事項
10.5 數據高速快取
10.5.1 使用高速快取的原因
10.5.2 .NET Framework 與Microsoft patterns & Practices Enterprise Library提供的高速快取
10.5.3 訪問Caching Application Block
10.6 應用程式錯誤處理
第11章 Visual Studio 2005 Team Edition For Database Professional
11.1 DB Pro 所支持的功能
11.2 建立資料庫項目並控制對象的SQL Script
11.2.1 建立項目
11.2.2 將資料庫定義加入原始碼版本控制
11.3 建立資料庫內新對象
11.3.1 部署項目定義到資料庫
11.3.2 依項目內容更新資料庫Schema 定義
11.4 修改資料庫內對象名稱
11.5 測試
11.5.1 產生測試數據
11.5.2 資料庫的單元測試
11.5.3 資料庫單元測試的方面
11.5.4 以DB Pro 設計與執行單元測試
11.5.5 通過測試條件定義單元測試的結果是成功或失敗
11.5.6 負載測試
11.6 Service Release 1 與Power Tools 的功能
11.6.1 Power Tools 為VSTS Database Pro 新增的功能
附錄A 資料庫對象的命名慣例與訪問標準
A.1 建立命名規則
A.2 資料庫使用慣例
附錄B 資料庫伺服器的容量規劃
附錄C 應用程式架構範例