好学近乎知,力行近乎仁,知耻近乎勇。
--《中庸》
:

SQL Server 2012宝典(第4版)

SQL Server 2012宝典(第4版)

作者: (美) 约根森(Jorgensen, A

出版社: 清华大学出版社

出版时间: 2014-5

价格: 128.00

ISBN: 9787302360254

扫码右侧二维码

作者简介:

Adam Jorgensen (www.adamjorgensen.com):本书的第一作者,他担任Pragmatic Works Consulting(www.pragmaticworks.com)的总裁,Professional Association of SQL Server (PASS) (www.sqlpass.org)的总监,是一位SQL Server MVP和著名的演讲家、作家和高管导师。他致力于帮助公司采用过去未曾想象到的方式使用数据,以最大限度地提高执行力。Adam关注社区,每年都会参加超过75个社区会议。他住在佛罗里达州的杰克逊维尔市,已撰写和参与撰写了5本关于SQL Server、分析和SharePoint的书籍。Adam重写或更新了第1、53、54和57章。

目录:

第Ⅰ部分 入 门 第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 Explorer Details页面 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 第Ⅱ部分 建立数据库和处理数据 第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 运用Query Designer 创建视图 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数据类型和查询技术 第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编程 第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 第Ⅴ部分 企业数据管理 第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进行 异步消息传输 48525.1 配置消息队列 486 25.2 使用对话 488 25.2.1 将消息发送到队列 488 25.2.2 接收消息 489 25.3 SQL Server 2012中Service Broker的新增功能 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章 管理Windows Azure SQL Database 中的数据 590 31.1 Azure SQL Database概述 590 31.2 管理Windows Azure SQL Database 590 31.2.1 SQL Server Management Studio 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的安全 第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 第Ⅶ部分 监视和审计 第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 使用PerfMon 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 Server Audit 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 第Ⅷ部分 性能调整和优化 第44章 解释查询执行计划 731 44.1 查看查询执行计划 732 44.1.1 估计和实际查询执行计划 732 44.1.2 阅读执行计划 732 44.1.3 使用Showplan和 STATISTICS PROFILE 733 44.1.4 SQL Profiler的执行计划 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 使用Management Studio 报表查看阻塞 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 第Ⅸ部分 商 业 智 能 第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 Server Data Tools(SSDT) 中的Report Designer 898 55.1.2 Report Builder 898 55.1.3 Power View 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章 创建和部署Power View 报表 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

相关推荐

追问
2024-11-16 8.9k
长安的荔枝
2024-11-15 4.3k

评论

2024-06-22 17:11:04
天马行空发表
这本书是我接触 SQL Server 的启蒙,从基本概念到高级应用,讲解得十分细致全面。作者的语言生动幽默,让枯燥的技术变得有趣起来。这本书既适合初学者入门,也适合有经验的开发者进阶。
2024-06-22 17:11:04
书香墨海发表
作为一本 SQL Server 宝典,这本书涵盖了该领域的方方面面。作者用大量的示例和案例,深入浅出地阐述了复杂的概念。书中还包含了许多最佳实践和技巧,对我的实际工作提供了极大帮助。
2024-06-22 17:11:04
勤奋好学发表
这本书内容丰富,从基础知识到高级技术,循序渐进,非常适合我这种刚接触 SQL Server 的新手。作者的讲解清晰易懂,让我对 SQL Server 的理解有了质的飞跃。
2024-06-22 17:11:04
博学多才发表
这本书可以说是 SQL Server 领域的百科全书,内容详尽、案例丰富、语言风趣。无论是初学者还是经验丰富的开发者,都能从中找到有价值的信息。强烈推荐给所有 SQL Server 爱好者!
2024-06-22 17:11:04
孜孜不倦发表
本书的特点在于全面性,从基础语法到高级运维,几乎涵盖了 SQL Server 的所有知识点。作者用清晰简洁的语言,辅以大量的代码示例,让读者轻松理解和应用相关技术。
登录发表评论