《SQL Server 2012宝典 4版》PDF下载

  • 购买积分:25 如何计算积分?
  • 作  者:(美)约根森,(美)勒布朗著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302360254
  • 页数:974 页
图书介绍:本书涵盖了SQL Server 2012数据库管理、开发方面的所有知识,不仅全部体现了SQL Server 2012的所有新特性,而且还展示了如何保持SQL Server数据库的高性能。

第Ⅰ部分 入 门 3

第1章 SQL Server世界 3

1.1 SQL Server发展简史 3

1.2 数据库市场中的SQL Server 4

1.2.1 SQL Server的竞争对手 4

1.2.2 SQL社区的强大之处 4

1.3 SQL Server的组件 5

1.3.1 数据库引擎 5

1.3.2 服务 5

1.3.3 商业智能 6

1.3.4 工具和附加组件 7

1.3.5 联机资源 9

1.4 SQL Server 2012的版本 9

1.5 SQL Server 2012的显著增强 10

1.6 小结 11

第2章 数据架构 12

2.1 信息架构原则 12

2.2 数据库目标 13

2.2.1 适用性 13

2.2.2 可扩展性 14

2.2.3 数据完整性 14

2.2.4 性能/可扩展性 15

2.2.5 可用性 15

2.2.6 安全性 15

2.3 智能数据库设计 17

2.3.1 数据库系统 17

2.3.2 物理架构 18

2.3.3 基于集的查询 19

2.3.4 索引 19

2.3.5 并发性 19

2.3.6 高级可扩展性 20

2.3.7 性能框架 20

2.3.8 争议和异议 21

2.4 小结 21

第3章 安装SQL Server 23

3.1 准备服务器 24

3.1.1 硬件和软件需求 24

3.1.2 适当修补 25

3.1.3 防火墙 25

3.2 选择版本 26

3.2.1 不同版本之间的区别 27

3.2.2 以后的降级 27

3.2.3 以后的升级 29

3.2.4 许可方面的区别 30

3.3 安装过程 31

3.3.1 SQL Server 2012安装中心 32

3.3.2 通过安装中心安装SQL Server 2012 33

3.3.3 通过命令行安装SQL Server 2012 41

3.3.4 通过PowerShell安装SQL Server 2012 43

3.3.5 完成安装后的任务 46

3.4 小结 49

第4章 客户端连接 50

4.1 启用服务器连接 50

4.1.1 服务器配置管理器 51

4.1.2 SQL本地客户端连接(SNAC) 52

4.2 SQL Server本地客户端特性 52

4.2.1 对LocalDB的本地客户端支持 53

4.2.2 元数据发现 53

4.2.3 高可用性/灾难恢复支持 53

4.2.4 改进的日期/时间支持 53

4.2.5 访问扩展事件日志中的诊断信息 54

4.2.6 ODBC特性 54

4.2.7 多活动结果集(MARS) 54

4.2.8 XML数据类型 55

4.2.9 用户定义类型 55

4.2.10 大值类型 55

4.2.11 文件流支持 55

4.2.12 过期密码处理 55

4.2.13 快照隔离 56

4.3 小结 56

第5章 SQL Server管理和开发工具 57

5.1 组织界面 58

5.1.1 窗口放置 59

5.1.2 上下文菜单 61

5.2 Registered Servers 61

5.2.1 管理服务器 61

5.2.2 服务器组 62

5.3 Object Explorer 63

5.3.1 导航树 63

5.3.2 筛选Object Explorer 65

5.3.3 Object ExplorerDetails页面 65

5.3.4 表设计器 65

5.3.5 创建数据库关系图 66

5.3.6 Query Designer 67

5.3.7 Object Explorer报表 68

5.4 使用Query Editor 69

5.4.1 打开连接到服务器的查询 69

5.4.2 打开.sql文件 70

5.4.3 快捷方式和书签 71

5.4.4 查询选项 72

5.4.5 执行SQL批处理 72

5.4.6 结果 73

5.4.7 查看查询执行计划 73

5.5 使用Solution Explorer 74

5.6 以模板和代码片段为基础编写代码 74

5.6.1 模板的使用 74

5.6.2 代码片段的使用 75

5.7 小结 75

第Ⅱ部分 建立数据库和处理数据 79

第6章 基本的查询流 79

6.1 了解查询流 80

6.1.1 查询语句的语法流 80

6.1.2 查询语句的图形化视图 80

6.1.3 查询语句的逻辑流 82

6.1.4 查询语句的物理流 82

6.2 From子句数据源 83

6.2.1 可能的数据源 83

6.2.2 表别名 84

6.2.3 表名称 85

6.2.4 完全限定的名称 85

6.3 WHERE条件 86

6.3.1 使用BETWEEN搜索条件 86

6.3.2 与列表比较 87

6.3.3 使用LIKE搜索条件 89

6.3.4 多个WHERE条件 91

6.4 列、星号、别名和表达式 92

6.4.1 星号 92

6.4.2 别名 93

6.4.3 限定的列 94

6.5 结果集排序 94

6.5.1 通过使用列名称来指定顺序 95

6.5.2 使用表达式指定顺序 96

6.5.3 使用列别名指定顺序 97

6.5.4 使用列的顺序位置 97

6.5.5 ORDER BY和排序规则 97

6.6 SELECT DISTINCT 99

6.7 TOP()谓词 100

6.7.1 WITH TIES选项 102

6.7.2 随机行选择 102

6.8 小结 103

第7章 关系数据库设计和创建物理数据库架构 104

7.1 数据库基础知识 104

7.1.1 数字化数据库的优点 105

7.1.2 表、行和列 105

7.1.3 数据库设计阶段 106

7.1.4 规范化 106

7.1.5 三个“一规则” 107

7.1.6 标识实体 107

7.1.7 泛化 108

7.1.8 主键 109

7.1.9 外键 109

7.1.10 基数 110

7.1.11 可选性 110

7.2 数据设计模式 111

7.2.1 一对多模式 112

7.2.2 一对一模式 112

7.2.3 多对多模式 112

7.2.4 超型/子型模式 114

7.2.5 域完整性查找模式 115

7.2.6 递归模式 116

7.2.7 数据库设计层 118

7.3 范式 118

7.3.1 第一范式(1NF) 118

7.3.2 第二范式(2NF) 119

7.3.3 第三范式(3NF) 120

7.3.4 Boyce-Codd范式(BCNF) 121

7.3.5 第四范式(4NF) 122

7.3.6 第五范式(5NF) 122

7.4 战略考虑事项 122

7.4.1 何时在不同的数据库中单独存储表 122

7.4.2 何时使用何种架构 123

7.5 小结 123

第8章 数据类型、表达式和标量函数 124

8.1 数据类型 124

8.1.1 字符数据类型 124

8.1.2 数值数据类型 125

8.1.3 日期/时间数据类型 125

8.1.4 其他数据类型 126

8.2 构建表达式 126

8.2.1 运算符 127

8.2.2 按位运算符 128

8.2.3 CASE表达式 130

8.2.4 SQL Server 2012新增的逻辑函数 132

8.2.5 使用空值 133

8.3 标量函数 138

8.3.1 用户定义函数 138

8.3.2 日期和时间函数 139

8.3.3 SQL Server 2012新增的函数 142

8.4 字符串函数 143

8.4.1 SUBSTRING(string,starting position,length) 144

8.4.2 STUFF(string,insertion position,delete count,string inserted) 144

8.4.3 CHARINDEX(search string,string,starting position) 144

8.4.4 PATINDEX(pattern,string) 144

8.4.5 RIGHT(string,count)和LEFT(string,count) 145

8.4.6 LEN(string) 145

8.4.7 RTRIM(string)和LTRIM(string) 145

8.4.8 UPPER(string)和LOWER(string) 145

8.4.9 REPLACE(string,string) 145

8.4.10 dbo.pTitleCase(source,search,replace) 147

8.4.11 SQL Server 2012新增的字符串函数 148

8.5 Soundex函数 148

8.5.1 使用SOUNDEX()函数 149

8.5.2 使用DIFFERENCE()Soundex函数 151

8.6 数据类型的转换函数 151

8.7 服务器环境信息 154

8.8 小结 155

第9章 用联接、子查询和CTE合并数据 156

9.1 使用联接 157

9.1.1 内联接 158

9.1.2 外联接 162

9.1.3 自联接 167

9.1.4 交叉联接 168

9.1.5 特殊联接 169

9.2 差集查询 170

9.2.1 左差集查询 170

9.2.2 全差集查询 171

9.3 使用联合 171

9.3.1 UNION ALL查询 171

9.3.2 交集联合 172

9.3.3 差值联合/EXCEPT 173

9.4 子查询 173

9.4.1 简单子查询 174

9.4.2 把子查询用作列表 177

9.4.3 嵌套子查询 177

9.4.4 把子查询用作表 177

9.4.5 相关子查询 179

9.5 小结 182

第10章 聚合、窗口化和排名数据 183

10.1 聚合数据 183

10.1.1 基本聚合 183

10.1.2 聚合、平均和空值 185

10.2 结果集中的分组 185

10.2.1 简单分组 186

10.2.2 分组集 187

10.2.3 筛选已分组的结果 188

10.3 窗口化和排名 189

10.3.1 窗口化 189

10.3.2 OVER()子句 189

10.3.3 在窗口内分区 190

10.4 排名函数 191

10.4.1 ROW_NUMBER()函数 191

10.4.2 RANK()函数和DENSE RANK()函数 193

10.4.3 NTILE()函数 195

10.4.4 聚合函数 196

10.4.5 SQL Server 2012新增的T-SQL特性 197

10.4.6 前一行和当前行 198

10.5 小结 199

第11章 通过视图投影数据 200

11.1 使用视图的理由 200

11.2 基本视图 202

11.2.1 运用QueryDesigner创建视图 202

11.2.2 用DDL代码创建视图 203

11.2.3 执行视图 204

11.2.4 更改并删除视图 205

11.3 从更广泛的角度看视图 206

11.3.1 列别名 206

11.3.2 ORDER BY和视图 206

11.3.3 视图限制 207

11.3.4 嵌套视图 207

11.3.5 通过视图更新 209

11.3.6 视图和性能 209

11.4 锁定视图 210

11.4.1 未经检查的数据 210

11.4.2 保护数据 211

11.4.3 保护视图 212

11.4.4 加密视图的SELECT语句 213

11.4.5 应用程序元数据 213

11.5 运用同义词 214

11.6 小结 214

第12章 在SQL Server中修改数据 215

12.1 插入数据 216

12.1.1 插入简单的值行 216

12.1.2 从SELECT插入结果集 219

12.1.3 从存储过程插入结果集 220

12.1.4 创建默认行 222

12.1.5 在插入数据时创建表 222

12.2 更新数据 224

12.2.1 更新单个表 224

12.2.2 执行全局搜索和替代 225

12.2.3 更新数据时引用多个表 226

12.3 删除数据 230

12.3.1 删除时引用多个数据源 231

12.3.2 级联删除 232

12.3.3 物理删除数据的其他选择 232

12.4 合并数据 233

12.5 返回修改后的数据 237

12.5.1 从插入返回数据 237

12.5.2 从更新返回数据 237

12.5.3 从删除返回数据 238

12.5.4 从合并返回数据 238

12.5.5 把数据返回到表中 239

12.6 小结 239

第Ⅲ部分 高级T-SQL数据类型和查询技术 243

第13章 操作层次结构 243

13.1 HierarchyID 243

13.1.1 选择单个节点 245

13.1.2 搜索祖先节点 246

13.1.3 执行子树搜索 246

13.1.4 插入新节点 247

13.2 HierarchyID方法 248

13.3 索引策略 250

13.4 层次结构数据的备选操作方式 251

13.4.1 递归CTE 251

13.4.2 XML 252

13.5 小结 253

第14章 使用XML数据 254

14.1 XML数据类型 255

14.1.1 类型化XML和非类型化XML 259

14.1.2 XML架构 260

14.1.3 XML列和变量 262

14.1.4 XML参数和返回值 263

14.2 XML数据类型方法 265

14.2.1 XPath 265

14.2.2 value() 265

14.2.3 nodes()方法 266

14.2.4 exist() 266

14.2.5 query()和modify() 266

14.3 FOR XML 267

14.3.1 AUTO 267

14.3.2 RAW 270

14.3.3 EXPLICIT 271

14.3.4 PATH 272

14.4 XQuery与FLWOR操作 274

14.5 小结 275

第15章 分布式查询的执行 276

15.1 分布式查询概述 276

15.2 分布式查询的开发 284

15.2.1 分布式查询和SSMS 284

15.2.2 分布式视图 284

15.2.3 使用分布式事务 287

15.3 性能事项 289

15.3.1 优化分布式查询 289

15.3.2 分片和联合 290

15.4 小结 291

第Ⅳ部分 使用T-SQL编程 295

第16章 使用T-SQL编程 295

16.1 Transact-SQL基础 295

16.1.1 T-SQL批处理 296

16.1.2 T-SQL格式化 297

16.2 操作变量 298

16.2.1 变量默认值和作用域 298

16.2.2 使用SET命令和SELECT命令 299

16.2.3 增量变量 300

16.2.4 条件选择 301

16.2.5 在SQL查询中使用变量 301

16.2.6 多重赋值变量 302

16.3 过程流 303

16.3.1 使用条件T-SQL的IF命令 303

16.3.2 使用WHILE循环 305

16.3.3 使用GOTO命令移动到标签 306

16.4 通过代码分析SQL Server 306

16.4.1 动态管理对象 306

16.4.2 sp help 307

16.4.3 系统函数 308

16.5 临时表和表变量 308

16.5.1 本地临时表 308

16.5.2 全局临时表 309

16.5.3 表变量 310

16.6 SQL Server 2012中关于T-SQL的新增内容 311

16.6.1 调试增强 311

16.6.2 元数据发现 311

16.6.3 OFFSET和FETCH 312

16.7 错误处理 313

16.7.1 遗留错误处理 314

16.7.2 RAISERROR 315

16.7.3 TRY...CATCH 318

16.7.4 T-SQL致命错误 323

16.8 批量操作 323

16.8.1 批量插入 324

16.8.2 BCP 326

16.9 小结 326

第17章 存储过程的开发 327

17.1 管理存储过程 328

17.1.1 创建、更改和删除 328

17.1.2 查看存储过程 329

17.1.3 加密存储过程代码 330

17.1.4 执行存储过程 331

17.1.5 系统存储过程 331

17.2 把数据传递到存储过程 332

17.2.1 输入参数 332

17.2.2 提供列表和表作为存储过程的输入参数 334

17.3 从存储过程中返回数据 338

17.3.1 输出参数 338

17.3.2 RETURN命令的运用 339

17.3.3 结果集 340

17.3.4 返回数据的路径和范围 342

17.4 小结 343

第18章 构建用户定义的函数 344

18.1 标量函数 345

18.1.1 理解限制 345

18.1.2 创建标量函数 346

18.1.3 调用标量函数 347

18.2 内联表值函数 347

18.2.1 创建内联表值函数 348

18.2.2 调用内联表值函数 348

18.2.3 使用参数 349

18.2.4 将用户定义函数相互关联 350

18.2.5 使用架构绑定创建函数 350

18.3 多语句表值函数 351

18.3.1 创建多语句表值函数 351

18.3.2 调用函数 352

18.4 用户定义函数的最佳实践 353

18.4.1 性能最大化 353

18.4.2 使用一致的命名约定 353

18.5 小结 353

第Ⅴ部分 企业数据管理 357

第19章 配置SQL Server 357

19.1 设置选项 357

19.1.1 配置服务器 358

19.1.2 配置数据库 361

19.1.3 配置连接 362

19.1.4 外围应用配置器方面 363

19.2 配置选项 363

19.2.1 显示高级选项 363

19.2.2 启动/停止配置属性 365

19.2.3 内存配置属性 368

19.2.4 处理器配置属性 372

19.2.5 安全配置属性 377

19.2.6 连接配置属性 380

19.2.7 高级服务器配置属性 385

19.2.8 配置数据库自动选项 388

19.2.9 游标配置属性 390

19.2.10 SQL ANSI配置属性 392

19.2.11 触发器配置属性 398

19.2.12 数据库状态配置属性 398

19.2.13 恢复配置属性 400

19.3 小结 403

第20章 基于策略的管理 404

20.1 定义策略 404

20.1.1 管理方面 406

20.1.2 健康条件 407

20.1.3 创建策略 409

20.2 评估策略 413

20.3 小结 414

第21章 备份和恢复计划 415

21.1 恢复概念 416

21.2 恢复模型 417

21.2.1 简单恢复模型 417

21.2.2 完整恢复模型 418

21.2.3 批量日志恢复模型 419

21.2.4 设置恢复模型 420

21.2.5 修改恢复模型 420

21.3 备份数据库 421

21.3.1 备份目标 421

21.3.2 备份轮换 421

21.3.3 用Management Studio执行备份 421

21.3.4 用代码备份数据库 423

21.3.5 用代码验证备份 426

21.4 使用事务日志 426

21.4.1 事务日志内 426

21.4.2 备份事务日志 428

21.4.3 截断日志 429

21.4.4 事务日志和简单恢复模型 429

21.5 恢复操作 429

21.5.1 检测问题 430

21.5.2 恢复顺序 430

21.5.3 用Management Studio执行还原 431

21.5.4 还原个别页面 433

21.5.5 通过T-SQL代码还原 434

21.6 系统数据库恢复 438

21.6.1 master数据库 438

21.6.2 msdb系统数据库 440

21.7 执行完全恢复 440

21.8 小结 441

第22章 维护数据库 442

22.1 DBCC命令 442

22.1.1 数据库完整性 444

22.1.2 数据库文件大小 452

22.1.3 其他DBCC命令 456

22.2 管理数据库维护 457

22.2.1 计划数据库维护 457

22.2.2 维护计划 457

22.2.3 命令行维护 462

22.2.4 监控数据库维护 462

22.3 小结 463

第23章 传输数据库 464

23.1 Copy Database Wizard 465

23.2 使用SQL脚本 467

23.3 分离和附加 470

23.4 Import and Export Wizard 472

23.5 数据层应用程序(DAC) 474

23.6 小结 475

第24章 数据库快照 477

24.1 数据库快照的工作原理 478

24.1.1 数据库快照的机制 478

24.1.2 第一次写时复制 478

24.2 使用数据库快照 479

24.2.1 创建数据库快照 479

24.2.2 查询数据库快照 481

24.2.3 删除数据库快照 482

24.2.4 回滚数据库快照 482

24.3 小结 484

第25章 使用Service Broker进行异步消息传输 485

25.1 配置消息队列 486

25.2 使用对话 488

25.2.1 将消息发送到队列 488

25.2.2 接收消息 489

25.3 SQL Server 2012中ServiceBroker的新增功能 491

25.3.1 消息多播 491

25.3.2 AlwaysOn支持 491

25.3.3 有害消息处理 492

25.3.4 消息排队时间 492

25.4 监控Service Broker和排除故障 492

25.5 小结 493

第26章 日志传送 494

26.1 可用性测试 495

26.2 温备用可用性 495

26.3 定义日志传送 496

26.4 检查日志传送配置 504

26.5 监视日志传送 505

26.6 修改或删除日志传送 506

26.7 切换角色 508

26.8 小结 509

第27章 数据库镜像 510

27.1 数据库镜像概述 511

27.2 定义和配置数据库镜像 512

27.3 检查数据库镜像配置 520

27.4 监控数据库镜像 522

27.4.1 使用Database Mirroring Monitor监控 522

27.4.2 使用System Monitor监控 525

27.4.3 使用SQL Server Profiler监控 525

27.5 暂停或删除数据库镜像 526

27.6 角色切换 526

27.7 高可用性/AlwaysOn 528

27.7.1 要求和前提条件 528

27.7.2 配置AlwaysOn Availability Groups 529

27.7.3 监控AlwaysOn Availability Groups 536

27.8 小结 537

第28章 复制数据 538

28.1 在服务器之间移动数据 538

28.1.1 批量复制程序 539

28.1.2 SSIS 539

28.1.3 分发式事务 539

28.1.4 触发器 539

28.1.5 Copy Database Wizard 539

28.1.6 备份和还原 539

28.1.7 日志传送 540

28.1.8 数据库镜像 540

28.2 复制的概念 540

28.2.1 复制的类型 540

28.2.2 复制代理 541

28.2.3 事务一致性 542

28.3 配置复制 542

28.3.1 创建发布服务器和分发服务器 542

28.3.2 使用远程分发服务器 543

28.3.3 创建一个快照/事务发布 544

28.3.4 创建事务/快照发布的推送订阅 546

28.3.5 创建事务/快照发布的请求订阅 547

28.3.6 创建对等拓扑 548

28.3.7 创建一个合并发布 548

28.3.8 Web同步 549

28.4 小结 550

第29章 群集 551

29.1 群集的功能 551

29.1.1 高可用性和可伸缩性 551

29.1.2 在线的含义 552

29.1.3 群集的工作原理 552

29.2 配置群集 553

29.2.1 配置Windows Server 2008/2008R2的群集 553

29.2.2 把SQL Server 2012安装为群集实例 558

29.2.3 测试故障转移 565

29.3 小结 566

第30章 用PowerShell配置和管理SQL Server 567

30.1 使用PowerShell的原因 567

30.2 PowerShell基本知识 568

30.2.1 语言特性 568

30.2.2 创建脚本 573

30.3 SQL Server PowerShell扩展 577

30.3.1 导入模块 577

30.3.2 SQL PSDrive—SQLSERVER 577

30.3.3 SQL cmdlet 578

30.4 通过SMO与SQL Server通信 580

30.4.1 SQL Server管理对象 580

30.4.2 ADO.NET 583

30.5 编写SQL Server任务脚本 585

30.5.1 管理任务 585

30.5.2 基于数据的任务 588

30.6 小结 589

第31章 管理WindowsAzure SQL Database中的数据 590

31.1 Azure SQL Database概述 590

31.2 管理WindowsAzure SQLDatabase 590

31.2.1 SQL Server ManagementStudio 591

31.2.2 Windows Azure SQL Database管理器 592

31.2.3 在SQL Database中创建数据库 592

31.3 高可用性和可伸缩性 593

31.3.1 高可用性 593

31.3.2 可伸缩性 594

31.4 把数据迁移到SQL Database中 594

32.4.1 生成脚本向导 595

31.4.2 SQL Server Integration Services 601

31.4.3 使用bcp实用工具 608

31.5 小结 610

第Ⅵ部分 SQL Server的安全 613

第32章 SQL Server中的身份验证类型 613

32.1 Windows身份验证 615

32.2 SQL身份验证 615

32.3 SQL和Windows身份验证之间的区别 616

32.4 Kerberos和Windows身份验证委托 616

32.5 小结 617

第33章 授权安全对象 618

33.1 权限链 618

33.2 对象所有权 619

33.3 安全对象的权限 619

33.4 对象安全 620

33.4.1 用户自定义数据库角色 620

33.4.2 对象权限 620

33.4.3 用代码授予对象权限 621

33.4.4 用代码撤消和拒绝对象权限 622

33.4.5 公共角色 623

33.4.6 用代码管理角色 623

33.4.7 分层角色结构 624

33.4.8 对象安全和Management Studio 624

33.5 一个示例安全模型 625

33.6 视图和安全 625

33.7 小结 626

第34章 数据加密 627

34.1 数据加密简介 627

34.1.1 密钥的层次结构 628

34.1.2 用T-SQL加密 628

34.1.3 用对称密钥加密 630

34.1.4 使用非对称密钥 631

34.1.5 使用证书 632

34.2 小结 632

第35章 行级安全性 633

35.1 Security表 633

35.2 分配权限 635

35.2.1 分配安全性 635

35.2.2 处理安全级别的更新 638

35.3 检查权限 640

35.3.1 安全检查存储过程 640

35.3.2 安全检查函数 641

35.3.3 使用Windows登录 642

35.3.4 安全检查触发器 644

35.4 小结 644

第Ⅶ部分 监视和审计 647

第36章 触发器的创建 647

36.1 触发器基础 647

36.1.1 事务流 648

36.1.2 触发器的创建 648

36.1.3 AFTER触发器 649

36.1.4 INSTEAD OF触发器 650

36.1.5 触发器限制 651

36.1.6 禁用触发器 651

36.1.7 列出触发器 652

36.1.8 触发器和安全性 652

36.2 处理事务 652

36.2.1 确定已更新的列 653

36.2.2 inserted和deleted逻辑表 654

36.2.3 开发支持多行的触发器 655

36.3 多个触发器之间的交互 656

36.3.1 触发器的组织 657

36.3.2 嵌套触发器 657

36.3.3 递归触发器 658

36.3.4 INSTEAD OF触发器和AFTER触发器一起使用 660

36.3.5 多个AFTER触发器 660

36.4 事务聚合处理 660

36.4.1 库存事务触发器 661

36.4.2 库存触发器 662

36.5 DDL触发器 664

36.6 DDL触发器的管理 664

36.6.1 创建和更改DDL触发器 664

36.6.2 触发器的作用域 665

36.6.3 DDL触发器和安全性 666

36.6.4 启用和禁用DDL触发器 666

36.6.5 删除DDL触发器 667

36.7 DDL触发器的开发 667

36.7.1 EventData()函数 667

36.7.2 避免数据库对象的更改 668

36.8 小结 669

第37章 性能监视器和PAL 670

37.1 使用PeffMon 670

37.1.1 系统监视器 670

37.1.2 Data Collector Set 673

37.1.3 使用PowerShell访问性能计数器 674

37.2 小结 676

第38章 使用Profiler和SQL Trace 677

38.1 SQL Server Profiler的功能 677

38.2 运行Profiler 677

38.2.1 定义新的跟踪 678

38.2.2 选择事件和数据列 678

38.2.3 筛选事件 680

38.2.4 组织列 680

38.2.5 运行跟踪 681

38.2.6 使用跟踪文件 681

38.2.7 集成性能监视器数据 681

38.3 使用SQL Trace 682

38.4 小结 684

第39章 等待状态 685

39.1 SQL Server OS 685

39.2 查看等待状态统计信息 686

39.2.1 执行请求 686

39.2.2 等待状态统计信息 686

39.2.3 等待请求 687

39.3 常见的红旗等待类型 687

39.4 收集等待数据的其他方式 688

39.5 小结 688

第40章 Extended Events 689

40.1 Extended Events对象模型 689

40.1.1 包 689

40.1.2 事件 690

40.1.3 动作 690

40.1.4 目标 691

40.1.5 谓词 691

40.1.6 映射 691

40.1.7 会话 692

40.1.8 通道 692

40.2 system_health会话 692

40.3 Extended Events Profiler 692

40.4 小结 694

第41章 数据更改的跟踪和捕获 695

41.1 配置Change Tracking 695

41.1.1 启用数据库 696

41.1.2 自动清理 696

41.1.3 启用表 697

41.1.4 内部表 698

41.2 查询Change Tracking 699

41.2.1 版本号 699

41.2.2 行变更 700

41.3 删除Change Tracking 701

41.4 Change_Data Capture 702

41.5 SQL Server 2012中的新增功能 703

41.6 启用CDC 703

41.6.1 启用数据库 703

41.6.2 启用表 704

41.7 使用Change Data Capture 705

41.7.1 检查日志序号 705

41.7.2 查询变更表 706

41.7.3 查询净更改 708

41.7.4 迭代变更表 710

41.8 删除Change Data Capture 710

41.9 小结 711

第42章 SQL Audit 712

42.1 SQL Audit技术概述 712

42.2 创建Audit对象 713

42.2.1 定义目标 714

42.2.2 使用T-SQL 714

42.2.3 启用/禁用审计 715

42.3 ServerAudit Specification 715

42.3.1 添加操作 716

42.3.2 用T-SQL创建 716

42.3.3 修改Server Audit Specification 716

42.4 Database Audit Specification 716

42.5 查看审计线索 717

42.6 小结 718

第43章 管理数据仓库 719

43.1 使用管理数据仓库 719

43.2 配置MDW 720

43.3 建立数据集合 723

43.4 查看MDW报表 724

43.4.1 磁盘使用情况汇总 724

43.4.2 服务器活动历史报表 725

43.4.3 查询统计信息报表 726

43.5 创建定制的数据收集器集合 726

43.6 小结 728

第Ⅷ部分 性能调整和优化 731

第44章 解释查询执行计划 731

44.1 查看查询执行计划 732

44.1.1 估计和实际查询执行计划 732

44.1.2 阅读执行计划 732

44.1.3 使用Showplan和STATISTICS PROFILE 733

44.1.4 SQLP rofiler的执行计划 734

44.2 理解查询执行计划 735

44.3 小结 736

第45章 索引策略 737

45.1 索引的艺术 737

45.2 索引基础 738

45.2.1 B-树索引 738

45.2.2 聚集索引 738

45.2.3 非聚集索引 739

45.2.4 复合索引 740

45.2.5 唯一索引和约束 740

45.2.6 页面分隔问题 740

45.2.7 索引选择性 741

45.2.8 无序的堆 742

45.2.9 查询操作 742

45.3 查询路径 743

45.3.1 查询路径1:提取所有数据 745

45.3.2 查询路径2:聚集索引查找 745

45.3.3 查询路径3:范围查找查询 745

45.3.4 查询路径4:用非键列筛选 747

45.3.5 查询路径5:书签查找 748

45.3.6 查询路径6:覆盖索引 749

45.3.7 查询路径7:用2个NC索引来筛选 752

45.3.8 查询路径8:用有序的复合索引筛选 753

45.3.9 查询路径9:用无序的复合索引筛选 753

45.3.10 查询路径10:Non-SARG-able表达式 754

45.4 全面的索引策略 755

45.4.1 标识重要查询 755

45.4.2 选择聚集索引 756

45.4.3 创建基索引 757

45.5 特殊索引 757

45.5.1 筛选索引 757

45.5.2 索引视图 758

45.5.3 Columnstore索引 760

45.6 小结 760

第46章 最大限度地重用查询计划 762

46.1 查询编译 762

46.1.1 Query Optimizer 762

46.1.2 查看Plan Cache 763

46.1.3 查询计划的生存期 764

46.1.4 执行查询计划 764

46.2 查询重编译 764

46.3 小结 765

第47章 管理事务、锁定和阻塞 766

47.1 ACID属性 767

47.1.1 原子性 767

47.1.2 一致性 767

47.1.3 隔离性 767

47.1.4 持久性 768

47.2 事务的编程 768

47.2.1 逻辑事务 768

47.2.2 Xact_State()函数 769

47.2.3 Xact_Abort 769

47.2.4 嵌套事务 770

47.2.5 隐式事务 770

47.2.6 保存点 771

47.3 默认的锁定和阻塞行为 771

47.4 监控锁定和阻塞 773

47.4.1 使用ManagementStudio报表查看阻塞 773

47.4.2 使用Activity Monitor查看阻塞 774

47.4.3 使用Profiler 775

47.4.4 使用动态管理视图查询锁 775

47.5 死锁 776

47.5.1 创建死锁 777

47.5.2 自动检测死锁 779

47.5.3 处理死锁 779

47.5.4 最小化死锁 780

47.6 理解SQL Server锁定 781

47.6.1 锁粒度 781

47.6.2 锁模式 781

47.6.3 控制锁定超时 783

47.6.4 锁定持续时间 783

47.6.5 索引级的锁定限制 783

47.7 事务隔离级别 784

47.7.1 设置事务隔离级别 785

47.7.2 级别1——Read Uncommitted和脏读取 786

47.7.3 级别2——Read Committed 787

47.7.4 级别3——Repeatable Read 787

47.7.5 级别4——Serializable 790

47.7.6 快照隔离 793

47.7.7 使用锁定提示 795

47.8 应用程序锁 796

47.9 应用程序锁定设计 797

47.9.1 实现乐观锁定 797

47.9.2 丢失更新 797

47.10 事务日志的体系结构 798

47.10.1 事务日志序列 798

47.10.2 事务日志恢复 800

47.11 事务性能策略 801

47.12 小结 802

第48章 数据压缩 803

48.1 理解数据压缩 803

48.1.1 数据压缩的优缺点 804

48.1.2 行压缩 805

48.1.3 页面压缩 805

48.1.4 压缩序列 806

48.2 应用数据压缩 807

48.2.1 确定当前压缩设置 807

48.2.2 估计数据压缩 807

48.2.3 启用数据压缩 808

48.2.4 数据压缩策略 809

48.3 小结 810

第49章 分区 811

49.1 分区策略 811

49.2 分区视图 812

49.3 已分区表和索引 817

49.3.1 创建文件组 818

49.3.2 创建分区函数 820

49.3.3 创建分区模式 820

49.3.4 创建分区表 821

49.3.5 查询分区表 822

49.3.6 修改分区表 822

49.3.7 切换表 823

49.3.8 滚动分区 825

49.3.9 给已分区表建立索引 826

49.3.10 删除分区 826

49.4 小结 826

第50章 Resource Governor 827

50.1 研究Resource Governor的基础知识 827

50.1.1 理解资源池 827

50.1.2 工作负载组 830

51.1.3 分类器函数 832

50.2 Resource Governor的性能监控 833

50.3 视图和限制 834

50.4 小结 834

第Ⅸ部分 商业智能 837

第51章 BI数据库设计 837

51.1 数据仓库 837

51.2 使用星型架构设计数据仓库 838

51.3 用雪片型架构设计数据仓库 839

51.4 在数据仓库中确保一致性 839

51.5 加载数据 840

51.5.1 加载维度 840

51.5.2 加载事实表 842

51.5.3 修改维度中的数据 842

51.6 小结 843

第52章 在Integration Services中建立、部署和管理ETL工作流 844

52.1 SSIS环境概述 845

52.1.1 在SQL Server Data Services中创建基本的SSIS包 846

52.1.2 使用UI改进功能方便地配置一个数据流任务中的包元素 848

52.2 SSIS环境详述 852

52.2.1 使用连接管理器 852

52.2.2 使用控制流元素 854

52.2.3 使用数据流组件 858

52.2.4 使用参数和变量 863

52.2.5 变量 864

52.2.6 使用SSIS表达式语言 865

52.2.7 使用包的日志记录 866

52.3 部署、执行项目和包 866

52.3.1 使用包部署模型 866

52.3.2 从(旧)包模型转换为项目模型 867

52.3.3 使用项目部署模型 867

52.3.4 使用SSIS服务器执行项目和包 868

52.4 小结 870

第53章 在Analysis Services中使用MDX构建多维数据集 871

53.1 Analysis Services的快速启动 871

53.2 Analysis Services体系结构 872

53.2.1 统一维度模型 872

53.2.2 服务器 872

53.2.3 客户端 873

53.3 构建数据库 873

53.3.1 SQL Server Data Tools 873

53.3.2 数据源 873

53.3.3 数据源视图 874

53.3.4 创建多维数据集 877

53.4 维度 877

53.4.1 创建维度 877

53.4.2 常规维度之外的内容 880

53.4.3 维度的细化 880

53.5 多维数据集 881

53.5.1 维度的使用 883

53.5.2 Calculations选项卡 883

53.5.3 KPI 884

53.5.4 动作 884

53.5.5 分区 884

53.5.6 聚合函数的设计 885

53.5.7 透视 886

53.6 数据存储 887

53.7 多维数据集的处理 887

53.7.1 处理方法 888

53.7.2 其他考虑 888

53.7.3 空值处理 889

53.7.4 未知成员 889

53.7.5 错误配置 889

53.8 小结 889

第54章 配置和管理Analysis Services 890

54.1 安装Analysis Services 890

54.2 配置Analysis Services的基本设置 893

54.3 高级SSAS部署 894

54.4 使用SQL Profiler评估查询性能 895

54.5 小结 896

第55章 使用Reporting Services编写报表 897

55.1 报表编写环境 897

55.1.1 SQL ServerDataTools(SSDT)中的Report Designer 898

55.1.2 Report Builder 898

55.1.3 PowerView 898

55.2 报表的基本组成 898

55.2.1 数据源 898

55.2.2 数据集 899

55.2.3 报表定义语言(RDL)文件 899

55.3 用Report Wizard建立报表 900

55.4 从头编写报表 901

55.5 研究Report Designer 902

55.5.1 设计界面 902

55.5.2 Solution Explorer和Properties 902

55.5.3 Report Data和Toolbox面板 903

55.5.4 文本框属性窗口 904

55.6 使用Reporting Services功能显示数据 905

55.6.1 创建Matrix报表 905

55.6.2 处理多维数据集 905

55.6.3 使用参数 907

55.6.4 使用RS Expressions 909

55.7 设计报表布局 909

55.7.1 选择报表类型 909

55.7.2 分组和排序 910

55.7.3 使用图表工具 910

55.8 用Report Builder建立报表 912

55.8.1 用Report Builder创建报表 912

55.8.2 使用Report Gallery 914

55.9 小结 915

第56章 配置和管理Reporting Services 916

56.1 安装Reporting Services 916

56.1.1 本机模式 916

56.1.2 SharePoint集成模式 917

56.2 部署Reporting Services报表 919

56.2.1 使用SSDT部署报表 919

56.2.2 使用Report Manager部署报表——本机模式 920

56.2.3 在SharePoint中部署报表 920

56.3 用Reporting Services管理安全 922

56.3.1 在本机模式下管理角色 923

56.3.2 用角色管理访问权限 924

56.3.3 管理订阅 926

56.3.4 创建数据驱动的订阅 927

56.3.5 集成模式下的Data Alerts 927

56.4 灾难恢复 927

56.4.1 备份目录 928

56.4.2 备份对称密钥 928

56.4.3 还原Reporting Services 929

56.5 小结 929

第57章 使用Analysis Services挖掘数据 930

57.1 数据挖掘过程 930

57.2 使用Analysis Services建模 931

57.2.1 数据挖掘向导 931

57.2.2 挖掘模型 932

57.2.3 模型评估 933

57.3 算法 936

57.3.1 决策树 936

57.3.2 线性回归 937

57.3.3 聚类分析 937

57.3.4 序列聚类分析 938

57.3.5 神经网络 938

57.3.6 逻辑回归 938

57.3.7 Naive Bayes 939

57.3.8 关联规则 940

57.3.9 时间序列 940

57.4 多维数据集集成 941

57.5 小结 941

第58章 创建和部署BI语义模型 942

58.1 BI语义模型的含义 942

58.2 开发环境 943

58.3 使用PowerPivot创建BI语义模型 945

58.4 用PowerPivot扩展BI语义模型 948

58.4.1 在PowerPivot中创建KPI 948

58.4.2 在PowerPivot中创建层次结构 950

58.4.3 在PowerPivot中创建透视图 953

58.5 把BI语义模型部署到SharePoint上 955

58.6 在SharePoint 2010中管理PowerPivot工作簿数据的自动刷新 955

58.7 使用SQL Server Data Tools创建BI语义模型 956

58.8 用SQL Server Data Tools扩展BI语义模型 957

58.9 把BI语义模型部署到Analysis Services实例上 959

58.9.1 部署选项 959

58.9.2 部署服务器选项 960

58.9.3 DirectQuery选项 960

58.10 小结 960

第59章 创建和部署PowerView报表 961

59.1 Power View的要求 961

59.1.1 服务器端的要求 961

59.1.2 客户端的要求 961

59.2 用Power View创建和部署报表 962

59.2.1 创建连接文件库 963

59.2.2 创建Report Data Source文件 963

59.2.3 创建BI Semantic Model Connection文件 965

59.2.4 用Power View创建报表 966

59.3 部署Power View报表 973

59.4 小结 974