SQL Server 2005性能監測與最佳化

SQL Server 2005性能監測與最佳化

《SQL Server 2005性能監測與最佳化》是2009年4月人民郵電出版社出版的圖書,作者是袁鵬飛、鐘發英、馬娜。

基本介紹

  • 中文名:SQL Server 2005性能監測與最佳化
  • 作者:袁鵬飛、鐘發英、馬娜
  • ISBN:9787115196729
  • 頁數:330頁
  • 定價:49元
  • 出版社:人民郵電出版社
  • 出版時間:2009年4月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

SQL Server是Microsoft公司在資料庫領域中非常重要的產品,是關係型資料庫的代表產品之一。很多大型套用系統都採用SQL Server作為後台資料庫。怎樣才能設計出性能高效的SQL Server資料庫應用程式是很多軟體企業非常關注的問題。本書結合實例介紹如何對SQL Server資料庫進行設計和性能最佳化,解決目前資料庫套用系統中存在的性能問題。
本書從資料庫的基本工作原理入手,系統介紹了SQL Server資料庫體系結構、索引最佳化、SQL語句最佳化、性能最佳化工具、系統存儲過程、系統表、系統視圖、分區技術、死鎖處理等,**後幫助讀者設計實現兩個資料庫性能分析和監測工具。
本書內容豐富、注重實用,理論講解與案例套用相結合,特別適合SQL Server資料庫管理員和應用程式開發人員,以及對相關技術感興趣的讀者閱讀。

圖書目錄

第 1章 資料庫設計與最佳化原理——從頭說起 1
要對資料庫套用系統進行最佳化,首先應該了解資料庫的基本設計原理,就好像醫生必須了解人體的構造和工作機理一樣。
1.1 資料庫系統理論基礎 1
1.1.1 資料庫系統的發展歷程 1
1.1.2 資料庫管理系統(DBMS) 2
1.2 數據模型 2
1.2.1 數據模型分類 2
1.2.2 實體—聯繫(E-R)模型 4
1.3 與資料庫溝通的語言——SQL 5
1.3.1 數據定義語言 5
1.3.2 數據操作語言 6
1.3.3 使用SELECT語句 7
1.3.4 最佳化SELECT語句的原則 9
第 2章 SQL Server資料庫體系結構 11
提到性能最佳化,很多人第 一個反應就是對硬體升級。那么怎么做才能合理利用伺服器的硬體呢?
2.1 記憶體管理與最佳化 11
2.1.1 Windows記憶體管理 11
2.1.2 SQL Server 2005對大容量記憶體的支持 12
2.1.3 手動配置記憶體選項 14
2.1.4 監測SQL Server記憶體使用情況 15
2.1.5 最佳化Windows記憶體性能 19
2.2 存儲引擎與最佳化 20
2.2.1 資料庫檔案和檔案組 20
2.2.2 頁和區 23
2.2.3 收縮數據或事務日誌空間 23
2.2.4 監測SQL Server磁碟活動情況 24
2.2.5 最佳化SQL Server伺服器的磁碟性能 26
2.3 處理器管理與最佳化 26
2.3.1 查看CPU活動情況 26
2.3.2 監測SQL Server的CPU活動情況 27
2.3.3 執行緒管理 27
第3章 信用卡消費演示系統(Visual C#) 29
要對SQL Server資料庫進行性能最佳化,可不能紙上談兵。拿個超大的資料庫套用系統來講解,又很難講清楚套用系統本身的邏輯關係。
本章使用Visual C#設計一個簡易的信用卡消費演示系統,模擬不同用戶同時使用信用卡進行刷卡消費的情形,產生大量的刷卡消費數據。本書後面也以此資料庫作為性能最佳化的對象。
3.1 系統分析與設計 29
3.1.1 實例功能描述 29
3.1.2 資料庫表設計 29
3.2 設計工程框架 32
3.2.1 創建工程 32
3.2.2 為表添加類 35
3.2.3 設計主界面 36
3.3 實現模擬刷卡消費 40
3.3.1 設計Consume類 41
3.3.2 在主窗體中啟動刷卡消費執行緒 44
3.4 設計個人消費記錄統計報表 46
3.4.1 在ListView控制項中顯示統計數據 46
3.4.2 最佳化在ListView控制項中顯示數據的方法 49
第4章 索引——**直接的切入點 51
通過硬體升級進行最佳化當然效果比較直觀,但銀子也不是從天上掉下來的。從資料庫本身著手進行最佳化,**直接的切入點就是索引。
4.1 索引就好像是書的 51
4.1.1 索引的定義 51
4.1.2 查看索引信息 52
4.1.3 創建索引 53
4.1.4 修改索引 54
4.1.5 刪除索引 54
4.1.6 使用SQL語句獲取索引信息 55
4.2 統計信息是對索引的補充 57
4.2.1 查看統計信息 57
4.2.2 創建統計信息 62
4.2.3 修改統計信息 64
4.2.4 刪除統計信息 65
4.3 好的索引設計等於成功的一半 66
4.3.1 使用索引最佳化資料庫查詢效率 66
4.3.2 無法使用索引的SELECT語句 68
4.3.3 重新組織和重新生成索引 69
第5章 最佳化SQL語句的效率 72
SQL語句的基本語法並不複雜,常用語句的數量也並不多,學會容易,但學精卻並不簡單。
5.1 最佳化SELECT語句 72
5.1.1 連線查詢的最佳化 72
5.1.2 控制查詢的行和列的數量 74
5.1.3 慎用DISTINCT關鍵字 75
5.1.4 慎用UNION關鍵字 75
5.1.5 判斷表中是否存在記錄 77
5.2 對大批量插入、修改和刪除數據操作的最佳化 77
5.2.1 使用SQL腳本模擬實時批量插入數據 78
5.2.2 使用INSERT INTO...SELECT語句最佳化批量插入操作 80
5.2.3 最佳化修改和刪除語句 81
5.3 使用存儲過程最佳化執行速度 82
5.3.1 存儲過程的基本概念 82
5.3.2 創建存儲過程 83
5.3.3 執行存儲過程 84
5.3.4 修改和重命名存儲過程 86
5.3.5 刪除存儲過程 88
5.3.6 在存儲過程中使用游標 88
5.3.7 在存儲過程中使用臨時表 96
5.4 使用特殊的存儲過程——觸發器 97
5.4.1 觸發器的基本概念 97
5.4.2 inserted和deleted表 99
5.4.3 創建觸發器 99
5.4.4 修改和重命名觸發器 102
5.4.5 刪除觸發器 103
5.5 視圖也需要最佳化 103
5.5.1 基本概念 103
5.5.2 索引視圖 104
第6章 常用性能監測和最佳化工具 107
“工欲善其事,必先利其器”,子的話還是很有道理的。要分析和最佳化SQL Server資料庫的性能,同樣必須藉助一些工具。
6.1 SQL Server Profiler——私家偵探 107
6.1.1 SQL Server Profiler的基本使用方法 107
6.1.2 篩選跟蹤數據 110
6.1.3 重播跟蹤 111
6.1.4 實用SQL Server Profiler定位和分析問題 114
6.2 資料庫引擎最佳化顧問——你身邊的專家 115
6.2.1 分析資料庫性能 115
6.2.2 最佳化選項 121
6.2.3 套用建議 123
6.2.4 使用dta實用工具 124
6.3 RML分析工具——秘密武器 125
6.3.1 下載和安裝 125
6.3.2 ReadTrace實用工具 127
6.3.3 OSTRESS實用工具 135
第7章 使用語句監測和最佳化資料庫——從高手進化到專家 136
如果能夠靈活掌握前面介紹的內容,在一般用戶眼裡,你已經算得上是高手了。但如果想成為專家,還需要了解更多關於SQL Server資料庫的內部機制。事實上,SQL Server提供了大量的系統存儲過程、系統函式、系統視圖和語句,但很多數據是在企業管理器和其他工具中無法看到的。能夠查看到一般人無法獲知的數據,再對這些數據進行分析,得出你的結論,那么你已經開始向一個專家轉變了。
7.1 使用系統存儲過程管理SQL Server Profiler 136
7.1.1 創建跟蹤 136
7.1.2 設定事件和事件列 137
7.1.3 篩選跟蹤數據 138
7.1.4 設定跟蹤的狀態 138
7.2 系統統計函式 140
7.2.1 獲取嘗試登錄的次數 140
7.2.2 獲取網路數據包統計信息 140
7.2.3 獲取CPU的工作情況 140
7.2.4 獲取資料庫檔案的I/O統計信息 141
7.2.5 獲取I/O工作情況 142
7.2.6 獲取磁碟讀寫情況 142
7.3 SQL Server系統視圖 142
7.3.1 信息架構視圖 143
7.3.2 資料庫和檔案視圖 149
7.3.3 對象視圖 151
7.3.4 兼容性視圖 156
7.4 DBCC語句 161
7.4.1 緩衝區管理 161
7.4.2 監視記憶體狀態 163
7.4.3 DBCC維護語句 169
7.4.4 DBCC ERRORLOG語句 172
第8章 大型資料庫的分區技術 174
對於超大型資料庫而言,即使使用前面介紹的方法再怎么最佳化,有些情況下也很難得到理想的效果。此時就有必要對資料庫進行分區,把一個表或視圖中的數據按一定的規則劃分到不同的分區中,從而縮小查詢的範圍。就像學校里把一個年級劃分為不同的班一樣,找一年十二班的小明比找一年級的小明要容易很多。
8.1 分區的類型 174
8.1.1 硬體分區 174
8.1.2 水平分區 175
8.1.3 垂直分區 175
8.2 分區表和分區索引 175
8.2.1 確定分區依據列和分區數 176
8.2.2 創建檔案組 176
8.2.3 分區函式 180
8.2.4 創建分區方案 182
8.2.5 創建分區表 183
8.2.6 創建分區索引 184
8.2.7 查看分區表明細信息 185
8.2.8 拆分和合併分區 186
8.2.9 分區中的數據移動 187
8.3 分區視圖 188
8.3.1 設計分區視圖 189
8.3.2 創建分區視圖 190
8.3.3 在分區視圖中修改數據 191
第9章 事務和鎖 193
死鎖是困擾資料庫設計和開發人員的一個技術難題,當多個用戶同時訪問指定的資料庫資源時,就有可能造成死鎖。就像在十字路口多車搶行會造成堵塞一樣。一旦死鎖,大家都得不到所需要的資料庫資源,直到一方放棄,這將嚴重影響資料庫系統的性能。
9.1 事務 193
9.1.1 事務的特性 193
9.1.2 事務的分類 194
9.1.3 事務相關語句 194
9.1.4 嵌套事務 199
9.1.5 事務中不允許使用的SQL語句 201
9.2 了解鎖定機制,防患於未然 202
9.2.1 鎖定機制 202
9.2.2 鎖的兼容性 203
9.2.3 鎖的粒度和層次結構 204
9.2.4 顯示鎖活動情況 204
9.2.5 設定事務隔離級別選項 208
9.3 死鎖其實並不可怕 213
9.3.1 產生死鎖的原因 214
9.3.2 設定鎖逾時時間 216
9.3.3 儘量減少死鎖 216
第 10章 開發MSSQLDBAnalyzer性能分析工具 218
前面講了那么多理論上的東西,現在介紹一個資料庫性能分析的實例吧。這個實例可以對選擇的SQL Server資料庫中每個表和視圖進行性能分析,找到可能影響性能的資料庫對象。閱讀本章需要具有一定的Visual C#開發基礎。
10.1 實例的基本功能和總體設計 218
10.1.1 實例的基本功能 218
10.1.2 工程結構設計 219
10.2 DBBase工程設計與實現 221
10.2.1 工程結構 221
10.2.2 基礎服務類 223
10.2.3 資料庫基本操作類MssqlBase 225
10.2.4 資料庫信息類DBInfo 230
10.2.5 資料庫對象信息類DBObjInfo 233
10.2.6 資料庫表信息類DBTable 236
10.2.7 資料庫視圖信息類DBView 242
10.2.8 欄位信息類DBFieldBase和DBFieldInfo 243
10.3 ListViewSortManager工程設計與實現 244
10.3.1 工程結構 244
10.3.2 基本函式和數據結構 245
10.3.3 在ListView控制項中畫圖的類ListViewItemImageManager 246
10.3.4 實現ListView控制項自動排序的類ListViewSortManager 246
10.4 MSSQLDBAnalyzer工程設計與實現 247
10.4.1 登錄對話框 247
10.4.2 設計主窗體 250
10.4.3 配置選項管理 253
10.4.4 表和視圖性能分析 261
10.4.5 對ListView控制項中的數據進行排序 270
10.4.6 查看錶信息 271
10.4.7 查看視圖信息 272
第 11章 開發MssqlMonitor伺服器性能監測工具 274
在分析資料庫系統性能時,需要時刻關注SQL Server資料庫的工作情況。這也是資料庫管理員比較關注的問題。本章介紹一個資料庫伺服器性能監測工具,這個工具可以掃描指定網段,發現其中的SQL Server資料庫伺服器,還可以自動監測SQL Server伺服器的CPU、記憶體、線上情況、連線埠工作情況等,當出現異常時及時通知管理員。
11.1 實例的基本功能和總體設計 274
11.1.1 實例的基本功能 274
11.1.2 資料庫結構設計 275
11.1.3 工程結構設計 276
11.2 NetworkBase工程設計與實現 277
11.2.1 工程結構 277
11.2.2 設備信息類Device 278
11.2.3 獲取網路信息的服務類NetService 279
11.2.4 子網信息類Subnet 288
11.2.5 WMI管理類WMIConnection 294
11.3 MssqlMonitor工程設計與實現 299
11.3.1 工程結構 299
11.3.2 配置檔案管理類ConfigureService 300
11.3.3 資料庫基礎操作類DBBase 301
11.3.4 資料庫信息類DBInfo 307
11.3.5 MsSqlserver資料庫表管理類 308
11.3.6 設計主窗體 311
11.3.7 添加、修改和刪除SQL Server伺服器 312
11.3.8 掃描SQL Server伺服器 315
11.3.9 顯示SQL Server資料庫基本信息 320
11.3.10 監測SQL Server資料庫的工作狀態 323
11.4 實例的後續工作 330

相關詞條

熱門詞條

聯絡我們