《SQLServer2000奧秘》是2007年電子工業出版社出版的圖書,作者是趙松濤。
基本介紹
- 書名:SQL Server 2000奧秘
- 作者:趙松濤
- ISBN:9787121041525
- 頁數:253
- 定價:39.00元
- 出版社:電子工業出版社
- 出版時間:2007-5
內容簡介,目錄,
內容簡介
本書是作者深入研究SQL Server 2000資料庫體系結構和奧秘的經驗總結。本書不拘泥於具體的管理操作,而是通過對存儲的數據和日誌檔案數據的深入研究,依次揭示了很多在Internet和目前市面上的圖書都無法查詢到的SQL Server 2000的奧秘。這些經過艱辛的努力、大量的實驗數據得出的結論非常有助於學習和使用SQL Server 2000的讀者深入掌握和理解SQL Server 2000的運行機制。
本書內容全面,思路流暢,實用性強,所有實例均經過上機反覆實踐。本書適合有一定管理和開發經驗的讀者閱讀和參考,可作為DBA的案頭參考書,具有很高的收藏價值。
本書配套光碟包括各章標註的內容以及作者親自配音製作的多媒體視頻。
目錄
第1章 啟動與配置 1
1.1 SQL Server啟動的奧秘 1
1.1.1 剖析【事件查看器】中記錄的啟動信息 1
1.1.2 SQL Server伺服器的黑匣子——錯誤日誌 3
1.1.3 總結SQL Server啟動的過程 8
1.1.4 Master資料庫發生故障的啟動信息 9
1.1.5 Model資料庫發生故障的啟動信息 10
1.1.6 Tempdb資料庫發生故障的啟動信息 12
1.1.7 Msdb資料庫發生故障的啟動信息 15
1.1.8 重建Master資料庫 17
1.1.9 單用戶模式啟動 19
1.2 配置SQL Server網路 21
1.2.1 IPC 21
1.2.2 Net-Library 22
1.2.3 配置共享記憶體網路 24
1.2.4 配置TCP/IP網路 27
1.3 TDS協定 30
1.3.1 TDS的概念 31
1.3.2 TDS的作用 32
1.3.3 TDS的結構 33
第2章 未公開的DBCC命令 35
2.1 DBCC PAGE 35
2.1.1 查詢DBID和DBNAME 36
2.1.2 查詢FILENUM和PAGENUM 36
2.1.3 DBCC PAGE的典型用法 37
2.1.4 英文原文 38
2.2 DBCC LOG 39
2.2.1 命令詳解 39
2.2.2 英文原文 39
2.3 DBCC ERRORLOG 41
2.3.1 命令詳解 41
2.3.2 英文原文 42
2.4 DBCC FLUSHPROCINDB 43
2.4.1 命令詳解 43
2.4.2 英文原文 44
2.5 DBCC BUFFER 44
2.5.1 命令詳解 44
2.5.2 英文原文 45
2.6 DBCC DBINFO 47
2.7 DBCC DBTABLE 47
2.8 DBCC IND 48
2.9 DBCC PROCBUF 49
2.9.1 命令詳解 49
2.9.2 英文原文 50
2.10 DBCC PRTIPAGE 50
2.11 DBCC PSS 52
2.12 DBCC RESOURCE 53
2.13 DBCC TAB 53
2.14 DBCC BUFCOUNT 54
2.15 DBCC DBRECOVER 56
2.16 DBCC DES 56
2.17 DBCC MEMUSAGE 57
2.18 DBCC PGLINKAGE 58
2.18.1 命令詳解 58
2.18.2 英文原文 60
2.18.3 對DBCC PGLINKAGE命令的勘誤 60
2.19 DBCC CACHESTATS 63
2.19.1 命令詳解 63
2.19.2 英文原文 64
2.20 DBCC MEMORYSTATUS 64
2.21 DBCC SQLMGRSTATS 65
2.22 DBCC跟蹤標記 67
2.22.1 概念 67
2.22.2 打開跟蹤標記 69
2.22.3 關閉跟蹤標記 69
2.22.4 查詢跟蹤標記狀態 69
第3章 體系結構 71
3.1 SQL Server引擎結構 71
3.1.1 引擎的工作過程 71
3.1.2 引擎的內部結構 73
3.2 進程結構 76
3.2.1 進程(Process) 76
3.2.2 執行緒(Thread) 78
3.2.3 纖程(Fiber) 79
3.2.4 SQL Server如何管理執行緒和纖程 80
3.2.5 配置SQL Server執行緒模式 81
3.2.6 配置SQL Server纖程模式 82
3.2.7 提升SQL Server優先權 82
3.2.8 配置多CPU的實例 85
3.3 存儲結構 86
3.3.1 存儲數據的檔案 87
3.3.2 存儲數據的對象 87
3.3.3 頁面(Page) 88
3.3.4 盤區(Extent) 89
3.4 記憶體結構 90
3.4.1 計算機的Memory、Cache和Buffer 91
3.4.2 SQL Server的Cache和Buffer 93
3.4.3 記憶體組成部分 93
3.4.4 Hash——Buffer管理機制 94
3.4.5 LRU——Buffer的更新機制 95
3.4.6 查看Hash Bucket 96
3.4.7 查看Buffer的內容 97
第4章 數據的存儲 101
4.1 系統表 101
4.1.1 Sysaltfiles 102
4.1.2 Syscacheobjects 103
4.1.3 Sysdatabases 105
4.1.4 Sysobjects 106
4.1.5 Sysfiles 108
4.1.6 Sysindexes 109
4.2 資料庫的數據 111
4.2.1 資料庫狀態值的奧秘 111
4.2.2 資料庫的總大小 114
4.2.3 用DBCC EXTENTINFO查詢資料庫盤區數 116
4.3 數據檔案的數據 117
4.3.1 數據檔案的讀寫機制 118
4.3.2 查看數據檔案的空間使用率 118
4.3.3 Master資料庫啟動的奧秘 119
4.3.4 總結資料庫啟動的奧秘 121
4.3.5 數據檔案頭部信息的奧秘 121
4.3.6 BindingID蘊含的奧秘 125
4.3.7 使用DBCC PAGE命令的說明 132
4.4 表的數據 132
4.4.1 查詢表的ID 132
4.4.2 查詢表的第1個頁面 133
4.4.3 查詢表上分配的頁面 134
4.4.4 查詢表的頁面 135
4.5 索引的數據 136
4.5.1 堆數據存儲的奧秘 136
4.5.2 聚集索引數據存儲的奧秘 145
4.5.3 非聚集索引數據存儲的奧秘 155
4.6 盤區(Extent) 164
4.6.1 盤區的類型 165
4.6.2 分配盤區的策略 165
4.6.3 GAM管理盤區的機制 165
4.6.4 SGAM管理混合盤區的機制 168
4.6.5 給數據對象分配盤區的機制 170
4.7 頁面(Page) 170
4.7.1 頁面的類型 170
4.7.2 頁面的結構 171
4.7.3 頁面的數據 172
第5章 事務日誌 181
5.1 事務(Transaction) 181
5.1.1 事務的特性 182
5.1.2 事務的狀態 183
5.1.3 SQL Server 2000的事務模式 184
5.2 日誌檔案(Transaction Log) 186
5.2.1 VLF的奧秘 186
5.2.2 日誌檔案的WAL機制的奧秘 188
5.3 日誌記錄(Log Record) 190
5.3.1 日誌記錄的類型 191
5.3.2 用DBCC LOG研究日誌記錄的數據 191
5.3.3 研究完整事務的日誌記錄 192
5.4 專業的研究日誌工具 197
5.4.1 安裝Log Explorer 198
5.4.2 附加日誌檔案 201
5.4.3 研究日誌總體情況 203
5.4.4 負載分析 204
5.4.5 查詢日誌記錄 206
5.4.6 實時監控日誌 207
5.5 SQL語句與日誌的關係 208
5.5.1 Select語句與日誌的關係 208
5.5.2 Insert語句與日誌的關係 210
5.5.3 Update語句與日誌的關係 216
5.5.4 Delete語句與日誌的關係 223
第6章 LSN 229
6.1 檔案的LSN 229
6.1.1 查詢數據檔案的LSN 229
6.1.2 BackupLSN的奧秘 230
6.1.3 日誌檔案的LSN 232
6.2 數據頁面的m_lsn的奧秘 233
6.2.1 查詢頁面的m_lsn 233
6.2.2 查詢m_lsn對應的日誌記錄 234
6.2.3 剖析日誌記錄的含義 235
6.2.4 結論 236
第7章 深入剖析備份與恢復機制 237
7.1 無處不在的故障 237
7.1.1 事務故障 237
7.1.2 系統故障 238
7.1.3 介質故障 238
7.1.4 DBA需要應對的故障 239
7.2 不同類型故障的恢復機制 239
7.2.1 事務故障的恢復機制 239
7.2.2 系統故障的恢復機制 240
7.2.3 介質故障的恢復機制 240
7.3 基於事務日誌的備份和恢復機制 241
7.3.1 經典的事務日誌結構 241
7.3.2 Redo(重做)事務 241
7.3.3 Undo(回滾)事務 243
7.4 SQL Server事務日誌的恢復機制 244
7.4.1 剖析日誌記錄結構的奧秘 244
7.4.2 Previous Page LSN參數的奧秘 247
7.4.3 Undo的實現機制 249
7.4.4 Redo的實現機制 250
7.5 檢查點機制 251
7.5.1 檢查點的操作 251
7.5.2 檢查點與恢復效率的關係 252
7.5.3 MinLSN的選擇 253
1.1 SQL Server啟動的奧秘 1
1.1.1 剖析【事件查看器】中記錄的啟動信息 1
1.1.2 SQL Server伺服器的黑匣子——錯誤日誌 3
1.1.3 總結SQL Server啟動的過程 8
1.1.4 Master資料庫發生故障的啟動信息 9
1.1.5 Model資料庫發生故障的啟動信息 10
1.1.6 Tempdb資料庫發生故障的啟動信息 12
1.1.7 Msdb資料庫發生故障的啟動信息 15
1.1.8 重建Master資料庫 17
1.1.9 單用戶模式啟動 19
1.2 配置SQL Server網路 21
1.2.1 IPC 21
1.2.2 Net-Library 22
1.2.3 配置共享記憶體網路 24
1.2.4 配置TCP/IP網路 27
1.3 TDS協定 30
1.3.1 TDS的概念 31
1.3.2 TDS的作用 32
1.3.3 TDS的結構 33
第2章 未公開的DBCC命令 35
2.1 DBCC PAGE 35
2.1.1 查詢DBID和DBNAME 36
2.1.2 查詢FILENUM和PAGENUM 36
2.1.3 DBCC PAGE的典型用法 37
2.1.4 英文原文 38
2.2 DBCC LOG 39
2.2.1 命令詳解 39
2.2.2 英文原文 39
2.3 DBCC ERRORLOG 41
2.3.1 命令詳解 41
2.3.2 英文原文 42
2.4 DBCC FLUSHPROCINDB 43
2.4.1 命令詳解 43
2.4.2 英文原文 44
2.5 DBCC BUFFER 44
2.5.1 命令詳解 44
2.5.2 英文原文 45
2.6 DBCC DBINFO 47
2.7 DBCC DBTABLE 47
2.8 DBCC IND 48
2.9 DBCC PROCBUF 49
2.9.1 命令詳解 49
2.9.2 英文原文 50
2.10 DBCC PRTIPAGE 50
2.11 DBCC PSS 52
2.12 DBCC RESOURCE 53
2.13 DBCC TAB 53
2.14 DBCC BUFCOUNT 54
2.15 DBCC DBRECOVER 56
2.16 DBCC DES 56
2.17 DBCC MEMUSAGE 57
2.18 DBCC PGLINKAGE 58
2.18.1 命令詳解 58
2.18.2 英文原文 60
2.18.3 對DBCC PGLINKAGE命令的勘誤 60
2.19 DBCC CACHESTATS 63
2.19.1 命令詳解 63
2.19.2 英文原文 64
2.20 DBCC MEMORYSTATUS 64
2.21 DBCC SQLMGRSTATS 65
2.22 DBCC跟蹤標記 67
2.22.1 概念 67
2.22.2 打開跟蹤標記 69
2.22.3 關閉跟蹤標記 69
2.22.4 查詢跟蹤標記狀態 69
第3章 體系結構 71
3.1 SQL Server引擎結構 71
3.1.1 引擎的工作過程 71
3.1.2 引擎的內部結構 73
3.2 進程結構 76
3.2.1 進程(Process) 76
3.2.2 執行緒(Thread) 78
3.2.3 纖程(Fiber) 79
3.2.4 SQL Server如何管理執行緒和纖程 80
3.2.5 配置SQL Server執行緒模式 81
3.2.6 配置SQL Server纖程模式 82
3.2.7 提升SQL Server優先權 82
3.2.8 配置多CPU的實例 85
3.3 存儲結構 86
3.3.1 存儲數據的檔案 87
3.3.2 存儲數據的對象 87
3.3.3 頁面(Page) 88
3.3.4 盤區(Extent) 89
3.4 記憶體結構 90
3.4.1 計算機的Memory、Cache和Buffer 91
3.4.2 SQL Server的Cache和Buffer 93
3.4.3 記憶體組成部分 93
3.4.4 Hash——Buffer管理機制 94
3.4.5 LRU——Buffer的更新機制 95
3.4.6 查看Hash Bucket 96
3.4.7 查看Buffer的內容 97
第4章 數據的存儲 101
4.1 系統表 101
4.1.1 Sysaltfiles 102
4.1.2 Syscacheobjects 103
4.1.3 Sysdatabases 105
4.1.4 Sysobjects 106
4.1.5 Sysfiles 108
4.1.6 Sysindexes 109
4.2 資料庫的數據 111
4.2.1 資料庫狀態值的奧秘 111
4.2.2 資料庫的總大小 114
4.2.3 用DBCC EXTENTINFO查詢資料庫盤區數 116
4.3 數據檔案的數據 117
4.3.1 數據檔案的讀寫機制 118
4.3.2 查看數據檔案的空間使用率 118
4.3.3 Master資料庫啟動的奧秘 119
4.3.4 總結資料庫啟動的奧秘 121
4.3.5 數據檔案頭部信息的奧秘 121
4.3.6 BindingID蘊含的奧秘 125
4.3.7 使用DBCC PAGE命令的說明 132
4.4 表的數據 132
4.4.1 查詢表的ID 132
4.4.2 查詢表的第1個頁面 133
4.4.3 查詢表上分配的頁面 134
4.4.4 查詢表的頁面 135
4.5 索引的數據 136
4.5.1 堆數據存儲的奧秘 136
4.5.2 聚集索引數據存儲的奧秘 145
4.5.3 非聚集索引數據存儲的奧秘 155
4.6 盤區(Extent) 164
4.6.1 盤區的類型 165
4.6.2 分配盤區的策略 165
4.6.3 GAM管理盤區的機制 165
4.6.4 SGAM管理混合盤區的機制 168
4.6.5 給數據對象分配盤區的機制 170
4.7 頁面(Page) 170
4.7.1 頁面的類型 170
4.7.2 頁面的結構 171
4.7.3 頁面的數據 172
第5章 事務日誌 181
5.1 事務(Transaction) 181
5.1.1 事務的特性 182
5.1.2 事務的狀態 183
5.1.3 SQL Server 2000的事務模式 184
5.2 日誌檔案(Transaction Log) 186
5.2.1 VLF的奧秘 186
5.2.2 日誌檔案的WAL機制的奧秘 188
5.3 日誌記錄(Log Record) 190
5.3.1 日誌記錄的類型 191
5.3.2 用DBCC LOG研究日誌記錄的數據 191
5.3.3 研究完整事務的日誌記錄 192
5.4 專業的研究日誌工具 197
5.4.1 安裝Log Explorer 198
5.4.2 附加日誌檔案 201
5.4.3 研究日誌總體情況 203
5.4.4 負載分析 204
5.4.5 查詢日誌記錄 206
5.4.6 實時監控日誌 207
5.5 SQL語句與日誌的關係 208
5.5.1 Select語句與日誌的關係 208
5.5.2 Insert語句與日誌的關係 210
5.5.3 Update語句與日誌的關係 216
5.5.4 Delete語句與日誌的關係 223
第6章 LSN 229
6.1 檔案的LSN 229
6.1.1 查詢數據檔案的LSN 229
6.1.2 BackupLSN的奧秘 230
6.1.3 日誌檔案的LSN 232
6.2 數據頁面的m_lsn的奧秘 233
6.2.1 查詢頁面的m_lsn 233
6.2.2 查詢m_lsn對應的日誌記錄 234
6.2.3 剖析日誌記錄的含義 235
6.2.4 結論 236
第7章 深入剖析備份與恢復機制 237
7.1 無處不在的故障 237
7.1.1 事務故障 237
7.1.2 系統故障 238
7.1.3 介質故障 238
7.1.4 DBA需要應對的故障 239
7.2 不同類型故障的恢復機制 239
7.2.1 事務故障的恢復機制 239
7.2.2 系統故障的恢復機制 240
7.2.3 介質故障的恢復機制 240
7.3 基於事務日誌的備份和恢復機制 241
7.3.1 經典的事務日誌結構 241
7.3.2 Redo(重做)事務 241
7.3.3 Undo(回滾)事務 243
7.4 SQL Server事務日誌的恢復機制 244
7.4.1 剖析日誌記錄結構的奧秘 244
7.4.2 Previous Page LSN參數的奧秘 247
7.4.3 Undo的實現機制 249
7.4.4 Redo的實現機制 250
7.5 檢查點機制 251
7.5.1 檢查點的操作 251
7.5.2 檢查點與恢復效率的關係 252
7.5.3 MinLSN的選擇 253