第1章 select 1
1.1 基本的select語句 1
1.1.1 從錶中選擇指定列 2
1.1.2 從所有行中選擇所有列 2
1.2 使用基本where子句進行有選擇的查詢 3
1.2.1 使用where子句指定結果集中返迴的行 3
1.2.2 組閤搜索條件 4
1.2.3 否定搜索條件 5
1.2.4 保持where子句無歧義 5
1.3 使用運算符和錶達式 6
1.3.1 在日期範圍搜索中使用between 7
1.3.2 使用比較運算符 8
1.3.3 檢測null值 9
1.3.4 基於一組值返迴行 9
1.3.5 like和通配符結閤使用 9
1.3.6 聲明變量及為變量賦值 11
1.4 數據分組 12
1.4.1 使用group by子句 12
1.4.2 使用group by all 13
1.4.3 使用having選擇性地查詢分組的數據 13
1.5 對結果排序 14
1.5.1 使用order by子句 15
1.5.2 在排序的結果中使用top關鍵字 16
1.6 select子句技術 18
1.6.1 使用distinct消除重復值 18
1.6.2 在聚閤函數中使用distinct 18
1.6.3 使用列彆名 19
1.6.4 使用select創建腳本 20
1.6.5 字符串拼接 21
1.6.6 使用select創建逗號分隔的列錶 21
1.6.7 使用into子句 22
1.7 子查詢 23
1.8 從多個數據源查詢 24
1.8.1 使用內聯結 25
1.8.2 使用外聯結 26
1.8.3 使用交叉聯結 27
1.8.4 在同一查詢中多次引用同一個錶 27
1.8.5 使用衍生錶 28
1.8.6 使用union組閤結果集 29
1.9 使用apply來為每行調用錶值函數 30
1.9.1 使用cross apply 30
1.9.2 使用outer apply 32
1.10 數據源高級技術 33
1.10.1 使用tablesample來返迴
隨機行 33
1.10.2 使用pivot把單列值轉化為多列和聚閤數據 34
1.10.3 使用unpivot規範化數據 36
1.10.4 使用except和intersect返迴不重復的或匹配的行 38
1.11 匯總數據 40
1.11.1 使用cube匯總數據 40
1.11.2 使用rollup來匯總數據 42
1.11.3 使用分組集創建自定義匯總 43
1.11.4 展現grouping生成的行 44
1.11.5 使用grouping_id標識分組級彆 46
1.12 公共錶錶達式 49
1.12.1 使用非遞歸的公共錶錶達式 49
1.12.2 使用遞歸的公共錶錶達式 52
第2章 執行、捕獲和跟蹤數據修改 55
2.1 insert 55
2.1.1 嚮錶中插入一行 55
2.1.2 使用默認值插入行 56
2.1.3 顯式嚮一個identity列插入值 57
2.1.4 在錶中插入擁有uniqueidentifier列的行 59
2.1.5 使用insert...select語句插入行 59
2.1.6 調用存儲過程插入數據 60
2.1.7 通過values插入多個行 62
2.1.8 將values作為錶源來使用 62
2.2 update 63
2.2.1 更新一行 64
2.2.2 根據from和where子句更新行 65
2.2.3 更新大值數據類型的列 66
2.2.4 使用openrowset和bulk插入或更新圖片文件 68
2.2.5 在維護sql server事務控製時嚮文件係統存儲非結構化數據 69
2.2.6 “就地”賦值並修改數據庫值 73
2.3 delete 75
2.3.1 刪除行 75
2.3.2 截斷錶 76
2.4 高級數據修改技術 77
2.4.1 使用top分塊修改數據 77
2.4.2 在一條語句中執行insert、update和delete 78
2.5 捕獲和跟蹤數據修改的改變 81
2.5.1 返迴數據修改語句影響的行 81
2.5.2 異步捕獲錶數據修改 83
2.5.3 從cdc錶查詢所有變更 87
2.5.4 從cdc錶查詢淨變更 89
2.5.5 翻譯cdc更新掩碼 90
2.5.6 使用lsn邊界 92
2.5.7 禁用對錶和數據庫的變更數據捕獲 93
2.5.8 以最小的磁盤開銷跟蹤淨數據更改 93
第3章 事務、鎖定、阻塞和死鎖 100
3.1 事務控製 100
3.1.1 使用顯式事務 101
3.1.2 使用dbcc opentran顯示最早的活動事務 104
3.1.3 通過會話查詢事務信息 104
3.2 鎖定 106
3.2.1 查看鎖的活動 108
3.2.2 控製錶的鎖升級行為 109
3.3 事務、鎖定和並發 110
3.4 阻塞 115
3.4.1 找到並解決阻塞進程 116
3.4.2 配置語句等待鎖釋放的時長 118
3.5 死鎖 118
3.5.1 使用跟蹤標誌位找齣死鎖 119
3.5.2 設置死鎖優先級 121
第4章 錶 123
4.1 錶基礎 123
4.1.1 創建錶 126
4.1.2 為既有錶添加列 126
4.1.3 修改列定義 127
4.1.4 創建計算列 128
4.1.5 減少null列的存儲空間 129
4.1.6 刪除錶中的列 131
4.1.7 報告錶信息 132
4.1.8 刪除錶 132
4.2 排序規則基礎 133
4.2.1 查看排序規則元數據 133
4.2.2 指定列的排序規則 134
4.3 鍵 134
4.3.1 創建有主鍵的錶 135
4.3.2 為既有錶增加主鍵約束 136
4.3.3 創建一個有外鍵引用的錶 136
4.3.4 為既有錶增加外鍵 137
4.3.5 創建遞歸外鍵引用 138
4.3.6 允許外鍵的級聯修改 139
4.4 代理鍵 140
4.4.1 在創建錶的時候使用identity 屬性 141
4.4.2 使用dbcc checkident來查看和糾正identity種子值 142
4.4.3 使用rowguidcol屬性 143
4.5 約束 143
4.5.1 創建唯一約束 144
4.5.2 為既有錶增加unique約束 145
4.5.3 使用check約束 145
4.5.4 為既有錶增加check約束 146
4.5.5 禁止和啓用約束 147
4.5.6 在錶創建時使用default約束 148
4.5.7 為既有錶增加default約束 149
4.5.8 從錶刪除約束 150
4.6 臨時錶和錶變量 150
4.6.1 使用臨時錶在批處理中進行多次查找 151
4.6.2 創建錶變量來保存臨時結果集 152
4.7 管理超大型錶 153
4.7.1 實現錶分區 154
4.7.2 確定數據在分區中的位置 157
4.7.3 增加新的分區 158
4.7.4 移除分區 160
4.7.5 把分區移動到不同的錶 161
4.7.6 移除分區函數和分區方案 162
4.7.7 用文件組提高vldb的可管理性 162
4.7.8 用數據壓縮減少磁盤空間使用 164
第5章 索引 167
5.1 索引預覽 167
5.1.1 創建錶索引 169
5.1.2 在非鍵列上強製唯一性 170
5.1.3 在多個列上創建索引 171
5.1.4 定義索引列排序方嚮 172
5.1.5 查看索引元數據 172
5.1.6 禁用索引 174
5.1.7 刪除索引 174
5.1.8 使用drop_existing改變既有索引 174
5.2 控製索引創建的性能和並發性 175
5.2.1 在tempdb中創建臨時索引 175
5.2.2 控製索引創建的並行執行計劃 176
5.2.3 在索引創建過程中允許用戶錶訪問 176
5.3 索引選項 177
5.3.1 使用索引include 177
5.3.2 使用pad_index和fillfactor 178
5.3.3 禁用頁和/或行索引鎖定 178
5.4 管理超大型索引 179
5.4.1 在文件組上創建索引 180
5.4.2 實現索引分區 180
5.4.3 為行的子集做索引 181
5.4.4 減小索引的大小 182
第6章 全文搜索 183
6.1 全文索引和全文目錄 183
6.1.1 創建全文目錄 183
6.1.2 創建全文索引 184
6.1.3 修改全文目錄 186
6.1.4 修改全文索引 187
6.1.5 檢索全文目錄和索引元數據 189
6.1.6 從全文索引中去掉普通字符串 190
6.1.7 刪除全文索引 193
6.1.8 刪除全文目錄 193
6.2 基本搜索 194
6.2.1 使用freetext來搜索全文索引的列 194
6.2.2 使用contains來搜索單詞 195
6.3 高級搜索 196
6.3.1 使用contains和通配符來搜索 196
6.3.2 使用contains來搜索變形匹配 196
6.3.3 使用contains根據詞的相鄰搜索結果 197
6.4 排名搜索 197
6.4.1 根據含義返迴排名搜索結果 198
6.4.2 根據權值返迴排名搜索結果 199
第7章 視圖 201
7.1 普通視圖 201
7.1.1 創建基本視圖 202
7.1.2 查詢視圖定義 203
7.1.3 顯示視圖及其結構 204
7.1.4 刷新視圖定義 205
7.1.5 修改視圖 206
7.1.6 刪除視圖 206
7.1.7 使用視圖修改數據 206
7.2 視圖加密 207
7.3 索引視圖 208
7.3.1 創建索引視圖 208
7.3.2 強製優化器為索引視圖使用索引 210
7.4 分區視圖 211
第8章 sql server函數 216
8.1 聚閤函數 216
8.1.1 返迴平均值 217
8.1.2 返迴行總數 217
8.1.3 找齣錶達式中的最小值和最大值 218
8.1.4 返迴值的和 218
8.1.5 使用統計聚閤函數 219
8.2 數學函數 219
8.3 字符串函數 221
8.3.1 把字符值轉化為ascii以及把ascii轉迴字符 222
8.3.2 返迴整數和字符unicode值 222
8.3.3 獲取某個字符串在另一個字符串中的起始位置 223
8.3.4 使用通配符找到某個字符串在另一個字符串中的起始位置 223
8.3.5 檢測字符串相似度 224
8.3.6 獲取字符串最左和最右部分 224
8.3.7 檢測字符串中的字符數或者字節數 225
8.3.8 把字符串的一部分替換成另一個字符串 226
8.3.9 把字符串填充到字符串中 226
8.3.10 在小寫和大寫之間進行轉化 227
8.3.11 移除前導空格和尾部空格 228
8.3.12 重復一個錶達式n次 228
8.3.13 重復一個空格n次 229
8.3.14 逆序輸齣錶達式 229
8.3.15 返迴錶達式的一塊 229
8.4 處理null 230
8.4.1 用另一個值替換null值 230
8.4.2 使用isnull進行靈活的搜索 230
8.4.3 返迴錶達式列錶中第一個非null值 232
8.4.4 當兩個錶達式相等的時候返迴null值,否則返迴第一個錶達式 232
8.5 日期函數 233
8.5.1 返迴當前日期和時間 233
8.5.2 在時區間進行轉換 234
8.5.3 增加或減少日期值 235
8.5.4 找齣兩個日期的差 236
8.5.5 顯示日期一部分的字符串值 237
8.5.6 使用datepart顯示日期一部分的整數值 237
8.5.7 使用year、month和day顯示日期一部分的整數值 238
8.6 類型轉換 238
8.6.1 轉換數據類型 238
8.6.2 將日期轉換為文本形式 239
8.6.3 以字符串字麵量錶示二進製數據 240
8.6.4 計算錶達式返迴的數據類型 241
8.7 排名函數 242
8.7.1 生成遞增行號 242
8.7.2 根據排名返迴行 244
8.7.3 根據無間隔排名返迴行 245
8.7.4 使用ntile 246
8.8 使用係統函數檢測服務器、數據庫以及連接級彆的配置 246
8.8.1 確定每周的第一天 246
8.8.2 查看當前會話使用的語言 247
8.8.3 查看和設置當前連接鎖超時設置 247
8.8.4 顯示當前存儲過程上下文的嵌套級彆 248
8.8.5 返迴當前sql server實例名和sql server版本 248
8.8.6 返迴當前連接的會話id(spid) 249
8.8.7 返迴打開事務的數量 249
8.8.8 獲取之前語句影響的行數 250
8.8.9 獲取係統統計信息 250
8.8.10 顯示數據庫和sql server設置 251
8.8.11 返迴當前數據庫id和名稱 252
8.8.12 返迴數據庫對象名和id 253
8.8.13 返迴當前用戶會話的應用程序和主機 253
8.8.14 獲取當前用戶和登錄名上下文 253
8.8.15 查看用戶連接選項 254
8.9 identity和uniqueidentifier函數 255
8.9.1 返迴最後一個標識值 255
8.9.2 返迴標識列的種子和增量值 256
8.9.3 創建新的uniqueidentifier值 256
第9章 條件處理、流控製和遊標 258
9.1 條件處理 258
9.1.1 使用case來計算單個輸入錶達式 258
9.1.2 使用case來計算布爾錶達式 260
9.1.3 使用if...else 261
9.2 流控製 262
9.2.1 使用return 263
9.2.2 使用while 264
9.2.3 使用goto 266
9.2.4 使用waitfor 267
9.3 遊標 268
第10章 存儲過程 273
10.1 存儲過程基礎 273
10.1.1 創建基本的存儲過程 274
10.1.2 創建帶參數的存儲過程 275
10.1.3 使用output參數 277
10.1.4 修改存儲過程 278
10.1.5 刪除存儲過程 279
10.1.6 在sql server啓動時自動執行存儲過程 279
10.1.7 報告存儲過程元數據 281
10.1.8 為存儲過程建立文檔 281
10.2 存儲過程安全 282
10.2.1 加密存儲過程 282
10.2.2 使用execute as來指定過程的安全上下文 283
10.3 重新編譯和緩存 286
10.3.1 每次存儲過程執行時重新編譯 286
10.3.2 清空過程緩存 287
第11章 用戶定義函數和類型 289
11.1 udf基礎 289
11.1.1 創建標量用戶定義函數 290
11.1.2 創建內聯用戶定義函數 294
11.1.3 創建多語句用戶定義函數 296
11.1.4 修改用戶定義函數 299
11.1.5 查看udf元數據 300
11.1.6 移除用戶定義函數 301
11.2 從udf獲益 301
11.2.1 維護可重用的代碼 302
11.2.2 交叉引用的自然鍵值 303
11.2.3 使用多語句udf替代視圖 306
11.3 udt基礎知識 308
11.3.1 創建和使用用戶定義類型 308
11.3.2 找齣使用用戶定義類型的列和參數 310
11.3.3 刪除用戶定義類型 311
11.3.4 傳入錶值參數 312
第12章 觸發器 315
12.1 dml觸發器 316
12.1.1 創建after dml觸發器 316
12.1.2 創建instead of dml 觸發器 319
12.1.3 在dml觸發器中處理事務 322
12.1.4 根據修改的列控製dml觸發器 324
12.1.5 查看dml觸發器元數據 325
12.2 ddl觸發器 326
12.2.1 創建審核數據庫級彆的事件的ddl觸發器 326
12.2.2 創建審核服務器級彆的事件的ddl觸發器 328
12.2.3 使用登錄觸發器 329
12.2.4 查看ddl觸發器元數據 331
12.3 管理觸發器 332
12.3.1 修改觸發器 332
12.3.2 啓用和禁止錶觸發器 333
12.3.3 限製觸發器嵌套 334
12.3.4 控製觸發器遞歸 335
12.3.5 設置觸發器觸發次序 336
12.3.6 刪除觸發器 338
第13章 clr集成 339
13.1 clr概述 339
13.2 什麼時候使用(不使用)程序集 340
13.3 clr對象概述 341
13.4 創建clr數據庫對象 341
13.4.1 啓用sql server的clr支持 342
13.4.2 為clr存儲過程寫程序集 342
13.4.3 把程序集編譯成dll文件 345
13.4.4 把程序集載入sql server 345
13.4.5 創建clr存儲過程 346
13.4.6 創建clr標量用戶定義函數 348
13.4.7 創建clr觸發器 350
13.5 管理程序集 352
13.5.1 查看程序集元數據 352
13.5.2 修改程序集權限 352
13.5.3 從數據庫移除程序集 353
第14章 xml、分層和空間數據 354
14.1 使用原生xml 354
14.1.1 創建xml數據類型列 354
14.1.2 插入xml數據到列 355
14.1.3 使用架構驗證xml數據 356
14.1.4 獲取xml數據 358
14.1.5 修改xml數據 361
14.1.6 xml索引 362
14.2 在xml文檔與關係型數據之間進行轉換 363
14.2.1 將關係型數據格式化為xml 363
14.2.2 將xml轉換為關係型 366
14.3 使用原生分層數據 368
14.3.1 存儲分層數據 368
14.3.2 返迴指定的祖先 370
14.3.3 返迴子節點 371
14.3.4 返迴節點的深度 371
14.3.5 返迴根節點 372
14.3.6 確定節點是否為當前節點的子節點 372
14.3.7 更改節點位置 372
14.4 原生空間數據 373
14.4.1 存儲空間數據 373
14.4.2 查詢空間數據 376
第15章 提示 380
15.1 使用聯結提示 380
15.2 使用查詢提示 382
15.3 使用錶提示 384
15.3.1 不鎖定執行查詢 385
15.3.2 強製seek覆蓋scan 385
第16章 錯誤處理 388
16.1 係統定義和用戶定義的錯誤消息 388
16.1.1 查看係統錯誤信息 388
16.1.2 創建用戶定義錯誤消息 389
16.1.3 刪除用戶定義錯誤消息 391
16.2 手動引發錯誤 391
16.3 捕獲和處理應用程序錯誤 393
16.3.1 舊風格的錯誤處理 394
16.3.2 使用try...catch進行錯誤處理 396
16.3.3 不重編寫存儲過程來應用try...catch 398
16.3.4 嵌套錯誤處理 398
第17章 主體 401
17.1 windows級彆的主體 401
17.1.1 創建windows登錄名 402
17.1.2 查看windows登錄名 403
17.1.3 修改windows登錄名 403
17.1.4 刪除windows登錄名 404
17.1.5 拒絕windows用戶或用戶組的sql server訪問 405
17.2 sql server級彆的主體 405
17.2.1 創建sql server登錄名 407
17.2.2 查看sql server登錄名 407
17.2.3 修改sql server登錄名 408
17.2.4 管理登錄名的密碼 409
17.2.5 刪除sql登錄名 409
17.2.6 管理服務器角色成員 410
17.2.7 報告固定服務器角色信息 411
17.3 數據庫級彆的主體 412
17.3.1 創建數據庫用戶 413
17.3.2 報告數據庫用戶信息 414
17.3.3 修改數據庫用戶 414
17.3.4 從數據庫刪除數據庫用戶 415
17.3.5 修復孤立的數據庫用戶 415
17.3.6 報告固定數據庫角色信息 416
17.3.7 管理固定數據庫角色成員 417
17.3.8 管理用戶定義的數據庫角色 418
17.3.9 管理應用程序角色 420
第18章 安全對象、權限和審核 423
18.1 權限總覽 424
18.2 服務器範圍的安全對象和權限 426
18.2.1 管理服務器權限 428
18.2.2 查詢服務器權限 429
18.3 數據庫範圍的安全對象和權限 430
18.3.1 管理數據庫權限 431
18.3.2 查詢數據庫權限 432
18.4 架構範圍的安全對象和權限 434
18.4.1 管理架構 436
18.4.2 管理架構的權限 437
18.5 對象的權限 438
18.6 管理權限訪問安全對象範圍 440
18.6.1 檢測當前連接的安全對象的權限 440
18.6.2 通過安全對象範圍報告主體的權限 441
18.6.3 改變安全對象所有權 445
18.6.4 允許sql登錄名訪問非sql server的資源 446
18.7 對安全對象的主體審核sql實例和數據庫級彆活動 447
18.7.1 定義審核數據源 447
18.7.2 捕獲sql實例範圍的事件 450
18.7.3 捕獲數據庫範圍的事件 452
18.7.4 查詢捕獲的審核數據 455
18.7.5 管理、修改和移除審核對象 458
第19章 加密 462
19.1 通過通行短語加密 462
19.2 主密鑰 464
19.2.1 備份及還原服務主密鑰 465
19.2.2 創建、重新生成以及刪除數據庫主密鑰 466
19.2.3 備份及還原數據庫主密鑰 467
19.2.4 從數據庫主密鑰刪除服務主密鑰加密 468
19.3 非對稱密鑰加密 469
19.3.1 創建非對稱密鑰 469
19.3.2 查看當前數據庫中的非對稱密鑰 470
19.3.3 修改非對稱密鑰的私鑰密碼 470
19.3.4 使用非對稱密鑰對數據進行加密和解密 471
19.3.5 刪除非對稱密鑰 473
19.4 對稱密鑰加密 473
19.4.1 創建對稱密鑰 474
19.4.2 查看當前數據庫中的對稱密鑰 475
19.4.3 改變對稱密鑰加密方式 475
19.4.4 使用對稱密鑰進行加密和解密 476
19.4.5 刪除對稱密鑰 479
19.5 證書加密 479
19.5.1 創建數據庫證書 479
19.5.2 查看數據庫中的證書 480
19.5.3 備份和還原證書 480
19.5.4 管理證書的私鑰 482
19.5.5 使用證書加密和解密 483
19.5.6 通過對稱密鑰自動打開和解密 484
19.6 透明數據加密 486
19.6.1 啓用透明數據加密 486
19.6.2 管理和移除tde 487
第20章 service broker 489
20.1 示例場景:在綫書店 489
20.2 創建基本的service broker應用程序 490
20.2.1 啓用數據庫的service broker 活動 491
20.2.2 創建加密用的數據庫主密鑰 491
20.2.3 管理消息類型 492
20.2.4 創建約定 493
20.2.5 創建隊列 494
20.2.6 創建服務 496
20.2.7 啓動對話 497
20.2.8 查詢隊列中傳入的消息 499
20.2.9 檢索並響應消息 499
20.2.10 結束會話 501
20.2.11 設定service broker會話的優先級 503
20.3 創建用來處理消息的存儲過程 505
20.4 遠程服務器service broker的實現 507
20.4.1 啓用傳輸安全模式 510
20.4.2 啓用對話安全模式 512
20.4.3 創建路由和遠程服務綁定 514
20.5 事件通知 517
第21章 配置和查看sql server的選項 520
第22章 創建和配置數據庫 524
22.1 創建、修改和刪除數據庫 524
22.1.1 使用默認配置創建數據庫 524
22.1.2 查看數據庫信息 525
22.1.3 使用文件選項創建數據庫 526
22.1.4 使用用戶定義文件組創建數據庫 528
22.1.5 設置數據庫用戶訪問 530
22.1.6 重命名數據庫 532
22.1.7 刪除數據庫 533
22.1.8 分離數據庫 533
22.1.9 附加數據庫 535
22.2 配置數據庫選項 535
22.2.1 查看數據庫選項 536
22.2.2 配置ansi sql選項 536
22.2.3 配置自動選項 538
22.2.4 創建或修改允許外部訪問的數據庫 539
22.2.5 使用非服務器默認排序規則創建或改變數據庫 540
22.2.6 配置遊標選項 541
22.2.7 啓用日期相關性優化 542
22.2.8 修改數據庫參數化行為 543
22.2.9 為事務啓用讀取一緻性 546
22.2.10 配置數據庫恢復模式 547
22.2.11 配置頁驗證 548
22.3 控製數據庫訪問和擁有關係 550
22.3.1 修改數據庫狀態為聯機、離綫或緊急狀態 550
22.3.2 修改數據庫擁有者 551
22.4 管理數據庫文件和文件組 552
22.4.1 為既有的數據庫添加數據文件或日誌文件 552
22.4.2 從數據庫刪除數據或日誌文件 553
22.4.3 重新分配數據或事務日誌文件 554
22.4.4 修改文件的邏輯名稱 555
22.4.5 增加數據庫文件的大小和修改它的增長選項 556
22.4.6 為既有的數據庫添加文件組 557
22.4.7 設置默認文件組 557
22.4.8 刪除文件組 558
22.4.9 使數據庫或文件組為隻讀 559
22.5 查看和管理數據庫空間使用 560
22.5.1 查看數據庫空間使用情況 560
22.5.2 收縮數據庫或數據庫文件 561
第23章 數據庫完整性和優化 565
23.1 數據庫檢查 565
23.1.1 使用dbcc checkalloc檢查磁盤空間分配結構的一緻性 565
23.1.2 使用dbcc checkdb檢查所有數據庫的分配和結構完整性 567
23.2 錶和約束 569
23.2.1 使用dbcc checkfilegroup檢查文件組中所有錶的分配和結構完整性 569
23.2.2 使用dbcc checktable檢查錶和索引視圖的數據完整性 570
23.2.3 使用dbcc checkconstraints 檢查錶的完整性 573
23.2.4 使用dbcc checkcatalog檢查係統錶的一緻性 574
23.3 索引維護 575
23.3.1 重建索引 575
23.3.2 索引碎片整理 577
23.3.3 重建堆 578
第24章 維護數據庫對象和對象依賴關係 579
24.1 數據庫對象維護 579
24.1.1 修改用戶創建的數據庫對象的名稱 579
24.1.2 修改對象的架構 581
24.2 對象依賴關係 581
24.2.1 標識對象依賴關係 581
24.2.2 標識引用和被引用的實體 583
24.2.3 查看對象定義 585
第25章 數據庫鏡像 587
25.1 上下文中的數據庫鏡像 587
25.2 數據庫鏡像體係結構 588
25.3 設置數據庫鏡像 589
25.3.1 創建鏡像端點 590
25.3.2 備份和還原主體數據庫 593
25.3.3 創建數據庫鏡像會話 595
25.4 設置總結 597
25.5 運行數據庫鏡像 598
25.5.1 改變運行模式 598
25.5.2 進行故障轉移 599
25.5.3 暫停或繼續鏡像會話 600
25.5.4 停止鏡像會話和刪除端點 600
25.6 鏡像和配置選項 601
25.6.1 監視鏡像狀態 601
25.6.2 配置連接超時時限 601
第26章 數據庫快照 603
26.1 快照基礎 603
26.1.1 創建和查詢數據庫快照 603
26.1.2 刪除數據庫快照 605
26.1.3 從數據庫快照恢復數據 605
第27章 鏈接服務器和分布式查詢 608
27.1 鏈接服務器基礎 608
27.1.1 為另一sql server實例創建鏈接服務器 609
27.1.2 配置鏈接服務器屬性 610
27.1.3 查看鏈接服務器信息 611
27.1.4 刪除鏈接服務器 611
27.2 鏈接服務器登錄名 612
27.2.1 添加鏈接服務器登錄名映射 612
27.2.2 查看鏈接登錄名 613
27.2.3 刪除鏈接服務器登錄名映射 613
27.3 執行分布式查詢 614
27.3.1 在鏈接服務器上執行分布式查詢 614
27.3.2 創建和使用引用4部分組成的鏈接服務器名的彆名 615
27.3.3 使用openquery執行分布式查詢 616
27.3.4 使用openrowset執行臨時的查詢 617
27.3.5 使用openrowset bulk選項從文件中讀取數據 618
第28章 查詢性能調優 621
28.1 查詢性能技巧 622
28.2 捕捉和評估查詢性能 623
28.2.1 使用sys.dm_exec_requests 捕捉執行的查詢 623
28.2.2 使用t-sql命令查看評估的查詢執行計劃 624
28.2.3 查看執行運行時信息 627
28.2.4 查看性能統計信息和緩存的查詢計劃 629
28.2.5 基於查詢或計劃模式查看聚閤的性能統計信息 630
28.2.6 標識齣最大瓶頸 632
28.2.7 通過數據庫和文件標識齣i/o爭用 633
28.3 索引調優 634
28.3.1 顯示索引碎片 635
28.3.2 顯示索引使用情況 637
28.4 統計信息 638
28.4.1 手動創建統計信息 639
28.4.2 行子集上創建統計信息 640
28.4.3 更新統計信息 640
28.4.4 生成及更新所有錶的統計信息 641
28.4.5 查看詳細的統計信息 642
28.4.6 刪除統計信息 643
28.5 雜項技術 643
28.5.1 使用動態sql的替代方法 644
28.5.2 強製sql server使用查詢計劃 646
28.5.3 不修改應用程序的sql去應用提示 648
28.5.4 從緩存創建計劃指南 651
28.5.5 檢查計劃指南的有效性 653
28.5.6 使用計劃指南將非參數化查詢參數化 653
28.5.7 限製查詢資源消耗競爭 656
第29章 備份與恢復 662
29.1 創建備份和恢復計劃 662
29.2 生成備份 663
29.2.1 執行基本的完全備份 665
29.2.2 壓縮備份 666
29.2.3 命名和描述備份和媒體 668
29.2.4 配置備份保持期 669
29.2.5 條帶化備份集 670
29.2.6 使用命名的備份設備 670
29.2.7 鏡像備份集 672
29.2.8 執行事務日誌備份 673
29.2.9 不破壞備份序列創建備份 674
29.2.10 執行差異備份 675
29.2.11 備份單個文件或文件組 675
29.2.12 執行部分備份 677
29.2.13 查看備份元數據 678
29.3 還原數據庫 679
29.3.1 從完全備份還原數據庫 679
29.3.2 從事務日誌備份還原數據庫 682
29.3.3 從差異備份還原數據庫 684
29.3.4 還原文件或文件組 685
29.3.5 執行部分(partial)還原 686
29.3.6 還原頁麵 687
29.3.7 用多種恢復路徑識彆數據庫 688
索引 691
· · · · · · (
收起)