内容简介
《深入SQL Server 2008》全面介绍了SQL Server 2008中新增的功能,包括完全重写后的SQL Server Reporting Services、Analysis Services和Reporting Services的全部功能、新的数据仓库、互动式Dundas向下搜寻报告、智慧型感知(IntelliSense)、新的活动监视器、集成的PowerShell等。读者将从《深入SQL Server 2008》中学到使用全新的声明式管理框架管理SQL Server的安装,通过高可用性功能(如故障转移群集)使用户免遭服务中断的影响,利用SQLServer 2008中新的性能增强功能加速套用的运行,利用全文搜寻找到所需内容,在资料库中存储、检索和管理XML,商业智慧型工具(如Analysis Services和Reporting Services)的竞争优势等内容。 《深入SQL Server 2008》既适合SQL Server前几个版本的用户阅读,又适合想快速迁移到SQL Server 2008的资料库专家参考。目录
目 录
第一部分 SQL Server概览
第1章 SQL Server 2008概述 2
1.1 SQL Server 2008愿景 2
1.1.1 企业数据平台 3
1.1.2 超关係数据 3
1.1.3 动态开发 3
1.1.4 深入的商业洞察力 4
1.2 SQL Server 2008版本 4
1.3 伺服器整合 5
1.4 小结 6
第2章 SQL Server的安装和配置 7
2.1 SQL Server安装要求 7
2.2 升级到SQL Server 2008 8
2.2.1 规划升级 8
2.2.2 使用升级顾问 10
2.2.3 执行升级 12
2.3 小结 18
第二部分 企业数据平台
第3章 策略管理 20
3.1 PM解决的需求 20
3.2 PM组件 21
3.2.1 管理目标 21
3.2.2 方面 21
3.2.3 条件 23
3.2.4 策略 26
3.3 示例策略 29
3.4 PM管理 32
3.4.1 策略状态 32
3.4.2 PM安全 34
3.5 小结 35
第4章 高可用性 36
4.1 HA定义 36
4.2 资料库镜像 38
4.2.1 资料库镜像的工作方式 38
4.2.2 用T-SQL管理资料库镜像 42
4.2.3 用Management Studio管理资料库镜像 49
4.2.4 全文索引和镜像 52
4.2.5 Service Broker和资料库镜像 52
4.2.6 客户端程式和资料库镜像 52
4.2.7 监控资料库镜像 53
4.2.8 资料库镜像的性能代价 56
4.2.9 资料库镜像的局限 56
4.3 资料库快照和镜像 57
4.3.1 资料库快照怎样工作 57
4.3.2 用T-SQL管理快照 58
4.3.3 在镜像上使用快照时的性能考虑 59
4.3.4 使用和监控资料库快照 60
4.3.5 资料库快照的限制 60
4.4 SQL Server中的Windows群集 61
4.5 SQL Server複製 61
4.5.1 快照複製 62
4.5.2 合併複製 62
4.5.3 事务複製 63
4.5.4 複製和镜像 63
4.6 减少计画内的停机时间 64
4.6.1 为运行中的系统添加CPU 64
4.6.2 为运行中的系统增加记忆体 64
4.6.3 执行线上索引操作 65
4.6.4 为表和索引分区 65
4.7 小结 65
第5章 性能 66
5.1 管理和监控资源 66
5.1.1 数据收集器 66
5.1.2 资源调控器 71
5.2 最佳化存储 77
5.2.1 备份压缩 77
5.2.2 数据压缩 78
5.3 提高查询性能 83
5.3.1 计画指南支持 84
5.3.2 稀疏列 86
5.3.3 列集合 87
5.4 小结 90
第6章 安全 91
6.1 关闭资料库引擎特性 91
6.1.1 远程连线 92
6.1.2 专用管理员连线 93
6.1.3 .NET Framework 93
6.1.4 资料库邮件 93
6.1.5 SQLMail 94
6.1.6 Service Broker、HTTP连线和资料库镜像 94
6.1.7 Web助手 94
6.1.8 xp_cmdshell扩展存储过程 95
6.1.9 临时远程查询 95
6.1.10 OLE自动化扩展存储过程 95
6.1.11 SMO和DMO扩展对象 95
6.2 主体和安全对象 96
6.2.1 主体 96
6.2.2 安全对象 102
6.3 许可权 105
6.3.1 许可权类型 105
6.3.2 许可权管理 106
6.4 代码访问安全性 108
6.4.1 命令式和声明式CAS 109
6.4.2 在SQL Server中使用CAS 109
6.5 SQL Server 2008审核 113
6.5.1 在何处写审核数据 114
6.5.2 审核什么 115
6.5.3 审核示例 117
6.5.4 管理审核 119
6.6 小结 120
第7章 SQL Server加密 121
7.1 加密密钥 121
7.1.1 服务主密钥 122
7.1.2 资料库主密钥 123
7.1.3 非对称密钥 125
7.1.4 证书 129
7.1.5 对称密钥 131
7.2 透明数据加密 135
7.2.1 启用TDE 135
7.2.2 比较TDE和列级加密 136
7.3 可扩展密钥管理 137
7.4 不用密钥加密 138
7.5 散列和签名数据 138
7.6 安全目录视图 139
7.7 查询效率 140
7.8 小结 141
第8章 自动化和监控 142
8.1 SQL Server Agent 143
8.1.1 安排代理作业日程 143
8.1.2 执行代理作业的许可权 147
8.1.3 代理账户 150
8.1.4 共享作业计画 152
8.1.5 记录代理作业步骤的输出 154
8.1.6 WMI事件和代理警报 154
8.1.7 代理性能计数器 155
8.1.8 代理升级 156
8.2 维护计画 157
8.2.1 安排维护子计画的日程 159
8.2.2 管理维护计画连线 159
8.2.3 报告和记录维护计画 160
8.2.4 定义维护计画任务 161
8.3 SQLCMD 163
8.3.1 连线到SQL Server 164
8.3.2 传递变数 164
8.3.3 使用专用管理员连线 165
8.3.4 创建脚本 165
8.4 SQL Server的PowerShell 166
8.4.1 PowerShell简介 167
8.4.2 使用SQL Server PowerShell 169
8.5 资料库邮件 173
8.5.1 配置资料库邮件 174
8.5.2 传送邮件 177
8.6 SQL Profiler 178
8.6.1 关联到性能监控 180
8.6.2 显示计画 182
8.6.3 死锁可视化 183
8.7 扩展事件 184
8.7.1 扩展事件组件 184
8.7.2 扩展事件示例:探测死锁 186
8.8 小结 188
第9章 Service Broker 189
9.1 什么是Service Broker 190
9.1.1 Service Broker构架 190
9.1.2 Service Broker场景 192
9.2 创建Service Broker套用 193
9.2.1 启用Service Broker 193
9.2.2 创建讯息类型 194
9.2.3 创建协定 194
9.2.4 创建伫列 194
9.2.5 创建服务 195
9.2.6 创建Service Broker存储过程 195
9.2.7 一个简单的Service Broker示例 198
9.3 Service Broker路由和安全 203
9.3.1 创建分散式的Service Broker套用 203
9.3.2 分散式Service Broker的例子 205
9.4 讯息优先权 223
9.5 使用SSBDiagnose对Service Broker进行故障检测 226
9.6 小结 227
第10章 整合全文搜寻 228
10.1 创建全文检索目录和索引 228
10.1.1 使用图形化工具创建全文目录和索引 229
10.1.2 使用T-SQL创建全文目录和索引 235
10.2 使用iFTS查询 237
10.2.1 FREETEXT谓词搜寻 237
10.2.2 CONTAINS谓词搜寻 238
10.2.3 FREETEXTTABLE和CONTAINSTABLE函式搜寻 240
10.3 管理词库档案 241
10.3.1 编辑词库档案 241
10.3.2 重新载入词库 243
10.4 使用非索引字表 244
10.5 搜寻文档 244
10.5.1 为文档创建全文索引 244
10.5.2 查询文档 245
10.6 管理iFTS 245
10.7 小结 247
第三部分 SQL Server 开发
第11章 SQL Server 2008中的新数据类型 250
11.1 SQL Server 2008中对空间数据的支持 250
11.1.1 GEOMETRY类型 251
11.1.2 GEOGRAPH类型 255
11.2 时间类型的改变 255
11.2.1 新的日期和时间数据类型 255
11.2.2 新的日期和时间系统函式 259
11.3 新的层次结构数据类型 261
11.4 档案流支持 265
11.4.1 启用档案流功能 266
11.4.2 档案流示例 267
11.5 小结 275
第12章 针对开发人员的T-SQL改进 276
12.1 DML特性 276
12.1.1 弃用旧式的外部连线 276
12.1.2 公共表表达式 277
12.1.3 TOP 285
12.1.4 扩展FROM子句 288
12.1.5 OUTPUT 296
12.1.6 排序函式 297
12.1.7 EXCEPT和INTERSECT 303
12.1.8 别名 305
12.1.9 MERGE 306
12.2 一般性的开发 309
12.2.1 错误处理 309
12.2.2 .WRITE对UPDATE语句的扩展 316
12.2.3 EXECUTE 317
12.2.4 代码安全上下文 317
12.2.5 .NET声明 320
12.2.6 声明和设定变数 321
12.2.7 传递表值参数 322
12.3 小结 324
第13章 T-SQL为DBA所做的改进 325
13.1 锁的改进 325
13.2 元数据视图 326
13.2.1 兼容性视图 327
13.2.2 目录视图 327
13.2.3 动态管理视图和函式 329
13.3 SQL Server性能监视器 331
13.4 DDL触发器 331
13.4.1 创建和修改DDL触发器 332
13.4.2 删除DDL触发器 333
13.4.3 启用和禁用DDL触发器 333
13.4.4 使用目录视图枚举DDL触发器 333
13.4.5 使用eventdata()函式编用DDL触发器 333
13.5 索引及其性能增强 335
13.5.1 在线上索引 336
13.5.2 创建索引期间的锁控制 336
13.5.3 创建包含额外列的索引 337
13.5.4 修改索引 338
13.5.5 使用筛选索引 340
13.5.6 使用筛选统计信息 341
13.5.7 统计相关的日期时间列 341
13.5.8 为第三排序规则排序的性能改进 342
13.5.9 表和索引分区 344
13.5.10 使用索引视图 349
13.5.11 使用分区对齐索引视图 349
13.5.12 持久化计算列 350
13.6 快照 350
13.6.1 SNAPSHOT的隔离级别 351
13.6.2 资料库快照 354
13.7 数据集成的改进 355
13.7.1 验证资料库页 355
13.7.2 使资料库进入应急状态 356
13.8 小结 356
第14章 .NET集成 357
14.1 SQL Server .NET集成简介 358
14.1.1 SQL Server为什么託管CLR 358
14.1.2 何时使用CLR例程 358
14.1.3 何时不使用CLR例程 359
14.1.4 SQL Server如何託管.NET:构架概览 359
14.2 SQL Server .NET编程模型 360
14.2.1 SQL Server託管的ADO-NET增强 360
14.2.2 SQL Server的.NET命名空间概览 360
14.3 编写CLR Stored Procedure 361
14.3.1 开始一个Visual Studio 2008SQL Sever Project 361
14.3.2 解剖Stored Procedure 364
14.3.3 添加参数 365
14.3.4 定义问题 365
14.3.5 使用SqlPipe 367
14.3.6 将所有这些组织在一起:编写Stored Procedure体 369
14.3.7 测试Stored Procedure 371
14.3.8 调试Stored Procedure 372
14.3.9 在CLR例程中抛出异常 374
14.4 部署CLR例程 377
14.5 小结 378
第15章 编写程式集 379
15.1 CLR用户自定义类型 380
15.1.1 用户自定义类型的应用程式 380
15.1.2 添加用户自定义类型到SQLServer项目中 380
15.1.3 User-Defined Type的组成部分 381
15.1.4 一个简单的例子:PhoneNumber类型 385
15.1.5 另一个例子:在StringArray类型 391
15.1.6 管理用户自定义类型 398
15.2 CLR用户自定义函式 398
15.2.1 添加用户自定义函式到Visual Studio项目 399
15.2.2 Visual Studio 2008 User-Defined Function模板 399
15.2.3 SqlFunction特性 400
15.2.4 标量用户自定义函式 400
15.2.5 表值型用户自定义函式 403
15.2.6 管理CLR用户自定义函式 406
15.3 CLR用户自定义聚合 407
15.3.1 添加用户自定义聚合到SQLServer项目中 407
15.3.2 用户自定义聚合的组成部分 409
15.4 CLR用户自定义触发器 414
15.4.1 向SQL Server项目中添加CLR用户自定义触发器 415
15.4.2 编写CLR触发器 415
15.4.3 管理用户自定义触发器 418
15.5 管理程式集 419
15.6 小结 419
第16章 SQL Server与XML 420
16.1 什么是XML 420
16.2 什么是XPath和XMLDOM 421
16.2.1 XPath语法 422
16.2.2 XPath函式 424
16.2.3 XMLDOM: XML文档对象模型 424
16.2.4 XPathDocument、XPathNavigator和XPathExpression类 425
16.3 XML存储到资料库 426
16.3.1 支持SOAP的SQL Server配置 427
16.3.2 OPENXML 428
16.3.3 使用注释XML模式的XML视图 433
16.3.4 SQLXML Updategram 437
16.3.5 XML大容量载入 439
16.4 从资料库取出XML 441
16.4.1 FOR XML 442
16.4.2 利用模板改善性能 448
16.5 使用XML数据 448
16.5.1 “any”类型验证 448
16.5.2 日期和时间支持 449
16.5.3 联合和列表类型 450
16.6 .NET和COM中使用SQLXML编程 451
16.6.1 SQLXML类 451
16.6.2 SQLXML编码示例 453
16.7 小结 458
第17章 SQL Server XML和XQuery支持 459
17.1 使用XML数据类型 460
17.1.1 了解SQL Server如何存储XML 461
17.1.2 创建XML列 462
17.1.3 为模式创建设定许可权 466
17.1.4 约束XML列 467
17.1.5 检查XML数据类型限制 468
17.2 在XML列中插入数据 468
17.2.1 使用SSIS插入XML数据 468
17.2.2 大容量载入XML 470
17.2.3 编写自定义查询或套用 470
17.3 查询XML数据 471
17.3.1 XQuery 101 471
17.3.2 基本XML查询方法 476
17.3.3 跨域查询 478
17.4 修改XML数据 479
17.4.1 插入元素 479
17.4.2 删除元素 480
17.4.3 改变节点值 480
17.4.4 XML修改的限制 481
17.5 建立XML索引以提高性能 481
17.5.1 了解XML索引如何工作 482
17.5.2 分析次级XML索引 483
17.6 全文搜寻和XML数据类型 484
17.7 目录视图与XML 484
17.8 套用与XML 485
17.9 XML Web服务支持 486
17.9.1 创建端点 486
17.9.2 使用高级Web服务 491
17.9.3 监视XML Web服务的性能 495
17.10 小结 495
第18章 LINQ to SQL 496
18.1 对象关係映射 496
18.2 实体生成工具 498
18.2.1 使用SQLMetal 498
18.2.2 使用Visual Studio的LINQ toSQL类设计器 499
18.2.3 分析生成的代码 501
18.3 运行LINQ查询 506
18.3.1 Select操作符 506
18.3.2 Where操作符 508
18.3.3 Join操作符 509
18.3.4 OrderBy操作符 510
18.4 DataContext类 511
18.4.1 插入、更新和删除记录 511
18.4.2 并发性冲突检测 514
18.4.3 延迟查询 516
18.4.4 延迟载入 519
18.4.5 执行存储过程和用户自定义函式 520
18.5 小结 522
第四部分 SQL Server商业智慧型
第19章 Report Services 524
19.1 Reporting Service组件 525
19.1.1 Report Server Service 526
19.1.2 元数据目录 530
19.1.3 BIDS中的Report Designer 530
19.1.4 Report Designer Preview 532
19.1.5 SQL Server ManagementStudio集成 534
19.1.6 Reporting Services配置管理器 534
19.1.7 Reporting Services安全性 535
19.2 创建一个基本报表 536
19.2.1 启动设计器 536
19.2.2 使用数据源和数据集 537
19.2.3 报表布局与预览 538
19.2.4 使用表达式 538
19.2.5 部署报表 539
19.3 报表设计的高级功能 540
19.3.1 多值参数 540
19.3.2 选择日期值的DatePicker 542
19.3.3 互动式排序 542
19.3.4 Analysis Services集成 543
19.3.5 Reporting Services数据源 547
19.3.6 自定义报表项 549
19.4 Visual Studio集成与ReportViewer控制项 549
19.4.1 使用WinForm控制项 550
19.4.2 通过编程使用ReportViewer控制项 552
19.4.3 LocalReport和ServerReport对象 553
19.5 SharePoint集成 554
19.6 最终用户即席查询和报表 555
19.6.1 报表生成器客户端 555
19.6.2 报表模型和语义模型定义语言 556
19.7 报表呈现 557
19.7.1 导出报表 557
19.7.2 呈现大报表 559
19.8 数据区 559
19.8.1 Tablix数据区 559
19.8.2 更新后的Chart数据区 568
19.9 小结 572
第20章 分析服务 573
20.1 SQL Server 2008中Analysis Services的新特性 574
20.1.1 设计工具的改进 574
20.1.2 监视工具的改进 574
20.1.3 运行时改进 575
20.2 Analysis Services基础知识 575
20.2.1 体系结构 575
20.2.2 开发环境 577
20.2.3 Analysis Services对象和概念 577
20.3 OLAP、OLTP和数据仓库 578
20.3.1 OLAP和OLTP配置 579
20.3.2 OLAP概念 579
20.4 Analysis Services项目 581
20.4.1 新建一个Analysis Services项目 582
20.4.2 定义数据源 583
20.4.3 编辑数据源 585
20.4.4 定义数据源视图 586
20.4.5 定义多维数据集 588
20.4.6 配置维度 591
20.4.7 部署项目 595
20.5 使用多维数据集 597
20.5.1 查看多维数据集结构 597
20.5.2 浏览多维数据集 598
20.5.3 管理显示的数据 602
20.5.4 执行计算 603
20.5.5 使用KPI 606
20.6 使用Analysis Services脚本语言 609
20.6.1 创建一个包含命名查询的DSV 609
20.6.2 查看ASSL 611
20.7 小结 611
第21章 集成服务 613
21.1 SSIS功能概述 613
21.1.1 何时使用SSIS 614
21.1.2 SSIS的新特性 615
21.2 SSIS集成开发环境 615
21.2.1 在Management Studio中连线到SSIS 616
21.2.2 在BIDS中创建一个新的SSIS项目 616
21.3 SSIS基础知识 617
21.3.1 SSIS设计器概述 618
21.3.2 数据流示例 622
21.3.3 事件处理程式设计界面 630
21.4 控制流和数据流设计器任务 632
21.4.1 控制流容器和任务 632
21.4.2 数据流设计器任务 643
21.5 变更数据捕获 648
21.5.1 启用变更数据捕获 649
21.5.2 用SSIS提取变更数据 650
21.6 日誌 650
21.7 动态包配置 653
21.8 变数 656
21.8.1 配置变数 657
21.8.2 创建变数 657
21.9 优先权约束 658
21.10 检查点 659
21.11 事务 659
21.12 调试 660
21.12.1 控制流和数据流可视化调试 660
21.12.2 数据查看器 661
21.12.3 断点 661
21.12.4 其他调试视窗 662
21.13 SSIS包处理 662
21.13.1 SSIS包部署实用工具 662
21.13.2 迁移SQL Server 2000 DTS包 662
21.13.3 调度SSIS包 663
21.14 小结 664
















