著者还有:Paul S.Randal、Kimberly L.Tripp、Conor Cunningham、Adam Machanic、Ben Nevarez
副标题:无
作 者:(美)Kalen Delaney[等]著;陈宝国等译
分类号:
ISBN:9787115230799
微信扫一扫,移动浏览光盘
简介
本书全面探讨了sql server 2008的内部工作原理。全书共分为11章,首先在第1章中详细介绍了sql server 2008的架构和配置,然后在接下来的10个章节中深入探讨了sql server 2008数据存储和查询处理等各个方面的内部机制,包括:数据库和数据库文件、表、索引、跟踪、日志记录和恢复、特殊存储、查询优化、计划缓存和重新编译、事务和并发、dbcc等。本书还有一个网站,上面有本书额外的第12章“查询执行”、本书的所有代码及其他工具和脚本。
本书由知识丰富的资深专家和数位具有多年产品使用经验的讲师联手打造,是一本关于sql server工作原理的权威参考指南,不管您是数据库开发人员、架构师,还是数据库管理员,都可以从阅读本书中获益。
深层次展示核心引擎的功能及其工作原理
借助著名内部专家小组的指导,深入探究核心sql server引擎,并把这些知识运用在实际工作中、无论您是数据库开发人员、架构师,还是管理员,都能获得利用关键架构变更所需的深层知识,并挖掘产品的全部潜力。
深度揭示sql server的内部工作原理:
当sql server编译、扩展、压缩和移动数据库时,内部在进行什么操作
如何使用事件跟踪——从触发器到扩展事件引擎
为什么合适的索引能大大减少查询执行时间
如何用新的存储能力超越正常的行数限制
查询优化器是如何运行的
为有问题的查询计划排除故障的多种技术
何时强制sql server重用或创建新的缓存查询计划
运行dbcc时,sqlserver在内部检查什么
处理多个并发用户时,如何在5个隔离级别和2个并发模型中做出选择
目录
第1章 sql server 2008架构和配置 1
1.1 sql server版本 1
1.2 sql server元数据 2
1.2.1 兼容性视图 2
1.2.2 目录视图 3
1.2.3 其他元数据 4
1.3 sql server引擎组件 6
1.3.1 观察引擎行为 7
1.3.2 协议 8
1.3.3 关系引擎 9
1.3.4 存储引擎 10
1.4 sqlos 13
1.5 计划程序 14
1.5.1 sql server工作线程 15
1.5.2 将计划程序绑定到cpu中 17
1.5.3 专用管理员连接(dac) 20
1.6 内存 21
1.6.1 缓冲池与数据缓存 21
1.6.2 访问内存中的数据页 21
1.6.3 管理数据缓存中的页面 22
.1.6.4 可用缓冲区列表和惰性编写器 22
1.6.5 检查点 23
1.6.6 管理其他缓存中的内存 24
1.6.7 调节内存大小 25
1.6.8 调节缓冲池大小 26
1.7 服务器资源调控器 30
1.7.1 资源调控器概述 30
1.7.2 资源调控器控制 37
1.7.3 资源调控器元数据 38
1.8 sql server 2008配置 39
1.8.1 使用sql server配置管理器 39
1.8.2 配置网络协议 39
1.8.3 默认的网络配置 39
1.8.4 管理服务 40
1.9 sql server系统配置 41
1.9.1 操作系统配置 41
1.9.2 跟踪标记 43
1.10 服务器配置设置 43
1.11 小结 52
第2章 更改跟踪、跟踪和扩展事件 53
2.1 基础知识:触发器和事件通知 53
2.1.1 运行时触发器行为 53
2.2 更改跟踪 54
2.2.1 更改跟踪配置 54
2.2.2 更改跟踪的运行时行为 57
2.3 跟踪和事件探查 60
2.3.1 sql跟踪架构和术语 61
2.3.2 安全性和权限 62
2.3.3 profiler入门 63
2.3.4 服务器端跟踪和收集 70
2.4 扩展事件 78
2.4.1 xe体系结构的组件 79
2.4.2 事件会话 86
2.4.3 扩展事件ddl和查询 88
2.5 小结 91
第3章 数据库和数据库文件 92
3.1 系统数据库 92
3.1.1 master 93
3.1.2 model 93
3.1.3 tempdb 93
3.1.4 资源数据库 93
3.1.5 msdb 94
3.2 样例数据库 94
3.2.1 adventureworks 94
3.2.2 pubs 95
3.2.3 northwind 95
3.3 数据库文件 95
3.4 创建数据库 97
3.4.1 create database例子 99
3.5 扩展或收缩数据库 99
3.5.1 自动文件扩展 100
3.5.2 手动文件扩展 100
3.5.3 快速文件初始化 100
3.5.4 自动收缩性 100
3.5.5 手动收缩 101
3.6 使用数据库文件组 102
3.6.1 默认文件组 102
3.6.2 filegroup creation例子 103
3.6.3 文件流文件组 104
3.7 修改数据库 105
3.7.1 alter database例子 106
3.8 数据库剖析 107
3.8.1 空间分配 107
3.9 设置数据库选项 110
3.9.1 状态选项 112
3.9.2 游标选项 114
3.9.3 自动选项 115
3.9.4 sql选项 115
3.9.5 数据库恢复选项 116
3.9.6 其他数据库选项 117
3.10 数据库快照 117
3.10.1 创建数据库快照 118
3.10.2 数据库快照使用的空间 119
3.10.3 管理快照 120
3.11 tempdb数据库 121
3.11.1 tempdb中的对象 121
3.11.2 tempdb中的优化 122
3.11.3 最佳实践 123
3.11.4 tempdb空间监视 124
3.12 数据库安全性 124
3.12.1 数据库访问 125
3.12.2 管理数据库安全性 126
3.12.3 数据与架构 127
3.12.4 主体与架构 127
3.12.5 默认架构 128
3.13 移动或复制数据库 128
3.13.1 分离和重新附加数据库 128
3.13.2 备份和还原数据库 130
3.13.3 移动系统数据库 130
3.13.4 移动master数据库 131
3.14 兼容性级别 131
3.15 小结 132
第4章 日志记录和恢复 133
4.1 事务日志基础 133
4.1.1 恢复阶段 134
4.1.2 读日志 137
4.2 更改日志大小 137
4.2.1 虚拟日志文件 137
4.2.2 观察虚拟日志文件 138
4.2.3 自动截断虚拟日志文件 141
4.2.4 维护可恢复日志 142
4.2.5 自动压缩日志 144
4.2.6 日志文件大小 145
4.3 备份和还原数据库 145
4.3.1 备份类型 145
4.3.2 恢复模型 146
4.3.3 选择备份类型 149
4.3.4 还原数据库 150
4.4 小结 154
第5章 表 155
5.1 创建表 155
5.1.1 命名表和列 156
5.1.2 保留关键字 157
5.1.3 分隔标识符 157
5.1.4 命名约定 158
5.1.5 数据类型 158
5.1.6 关于null 178
5.2 用户定义数据类型 180
5.3 identity属性 181
5.4 内部存储 184
5.4.1 sys.indexes目录视图 185
5.4.2 数据存储元数据 186
5.4.3 数据页 189
5.4.4 检查数据页 190
5.4.5 数据行的结构 193
5.4.6 查找一个物理页面 195
5.4.7 固定长度行的存储 197
5.4.8 可变长度行的存储 199
5.4.9 日期和时间数据的存储 204
5.4.10 sql_variant数据的存储 206
5.5 约束 209
5.5.1 约束名称和目录视图信息 210
5.5.2 视图和多行数据修改中出现的约束故障 211
5.6 修改表 212
5.6.1 更改数据类型 212
5.6.2 添加一个新列 213
5.6.3 添加、删除、禁用或启用约束 213
5.6.4 删除列 214
5.6.5 启用或禁用一个触发器 215
5.6.6 修改表的内部 215
5.7 堆修改内部 217
5.7.1 分配结构 217
5.7.2 插入行 218
5.7.3 删除行 219
5.7.4 更新行 221
5.8 小结 224
第6章 索引:内部和管理 225
6.1 概述 225
6.1.1 sql server索引b树 226
6.2 分析索引的工具 228
6.2.1 使用dm_db_index_physical_stats动态管理视图 228
6.2.2 使用dbcc id 231
6.3 理解索引结构 233
6.3.1 聚集键的依赖关系 234
6.3.2 非聚集索引 236
6.3.3 约束和索引 236
6.4 索引创建选项 237
6.4.1 ignore_dup_key 238
6.4.2 statistics_norecom pute 238
6.4.3 maxdop 238
6.4.4 索引放置 238
6.4.5 约束和索引 239
6.5 物理索引结构 239
6.5.1 索引行格式 239
6.5.2 聚集索引结构 240
6.5.3 聚集索引的非叶级 241
6.5.4 分析聚集索引结构 241
6.5.5 非聚集索引结构 246
6.6 特殊索引结构 255
6.6.1 计算列上的索引和索引视图 255
6.6.2 全文索引 262
6.6.3 空间索引 262
6.6.4 xml索引 262
6.7 数据修改的内部 263
6.7.1 插入行 263
6.7.2 拆分页 264
6.7.3 删除行 267
6.7.4 更新行 272
6.7.5 表级数据修改与索引级数据修改 275
6.7.6 日志记录 276
6.7.7 锁定 276
6.7.8 碎片 276
6.8 管理索引结构 277
6.8.1 删除索引 277
6.8.2 alter index 278
6.8.3 检测碎片 279
6.8.4 删除碎片 280
6.8.5 重建索引 282
6.9 小结 284
第7章 特殊存储 285
7.1 大型对象存储 285
7.1.1 长度受限的大型对象数据(行溢出数据) 285
7.1.2 不限长度大型对象数据 289
7.1.3 最大长度数据的存储 294
7.2 文件流数据 295
7.2.1 为sql server启用文件流数据 295
7.2.2 创建一个启用文件流的数据库 296
7.2.3 创建一张表存储文件流数据 297
7.2.4 操纵文件流数据 298
7.2.5 文件流数据的元数据 302
7.2.6 文件流数据性能方面的考虑 304
7.3 稀疏列 305
7.3.1 稀疏列的管理 305
7.3.2 列集和稀疏列操作 307
7.3.3 物理存储 309
7.3.4 元数据 311
7.3.5 利用稀疏列节省存储空间 312
7.4 数据压缩 315
7.4.1 vardecimal 315
7.4.2 行压缩 315
7.4.3 页压缩 322
7.5 表和索引分区 329
7.5.1 分区函数和分区方案 330
7.5.2 分区的元数据 331
7.5.3 分区的滑动窗口优势 334
7.6 小结 336
第8章 查询优化器 337
8.1 概述 337
8.1.1 树格式 337
8.2 什么是优化 338
8.3 查询优化器如何研究查询计划 339
8.3.1 规则 339
8.3.2 属性 339
8.3.3 替代项的存储——“备注” 341
8.3.4 运算符 341
8.4 优化器架构 346
8.4.1 优化之前 347
8.4.2 简化 347
8.4.3 琐碎计划/自动参数化 347
8.4.4 限制 348
8.4.5 备注——有效地探索多项计划 349
8.5 统计信息、基数估计和开销 350
8.5.1 统计信息设计 351
8.5.2 密度/频度信息 353
8.5.3 筛选的统计信息 355
8.5.4 字符串统计信息 356
8.5.5 基数估计细节 356
8.5.6 限制 359
8.5.7 成本计算 360
8.6 索引选择 361
8.6.1 筛选索引 363
8.6.2 索引视图 365
8.7 分区表 369
8.7.1 分区对齐索引视图 372
8.8 数据仓库 372
8.9 更新 372
8.9.1 halloween保护 375
8.9.2 拆分/排序/折叠 375
8.9.3 合并 377
8.9.4 大范围更新计划 379
8.9.5 稀疏列更新 381
8.9.6 分区更新 381
8.9.7 锁定 384
8.10 分布式查询 385
8.11 扩展的索引 387
8.11.1 全文索引 387
8.11.2 xml索引 387
8.11.3 空间索引 388
8.12 计划提示 389
8.12.1 调试计划问题 389
8.12.2 {hash
1.1 sql server版本 1
1.2 sql server元数据 2
1.2.1 兼容性视图 2
1.2.2 目录视图 3
1.2.3 其他元数据 4
1.3 sql server引擎组件 6
1.3.1 观察引擎行为 7
1.3.2 协议 8
1.3.3 关系引擎 9
1.3.4 存储引擎 10
1.4 sqlos 13
1.5 计划程序 14
1.5.1 sql server工作线程 15
1.5.2 将计划程序绑定到cpu中 17
1.5.3 专用管理员连接(dac) 20
1.6 内存 21
1.6.1 缓冲池与数据缓存 21
1.6.2 访问内存中的数据页 21
1.6.3 管理数据缓存中的页面 22
.1.6.4 可用缓冲区列表和惰性编写器 22
1.6.5 检查点 23
1.6.6 管理其他缓存中的内存 24
1.6.7 调节内存大小 25
1.6.8 调节缓冲池大小 26
1.7 服务器资源调控器 30
1.7.1 资源调控器概述 30
1.7.2 资源调控器控制 37
1.7.3 资源调控器元数据 38
1.8 sql server 2008配置 39
1.8.1 使用sql server配置管理器 39
1.8.2 配置网络协议 39
1.8.3 默认的网络配置 39
1.8.4 管理服务 40
1.9 sql server系统配置 41
1.9.1 操作系统配置 41
1.9.2 跟踪标记 43
1.10 服务器配置设置 43
1.11 小结 52
第2章 更改跟踪、跟踪和扩展事件 53
2.1 基础知识:触发器和事件通知 53
2.1.1 运行时触发器行为 53
2.2 更改跟踪 54
2.2.1 更改跟踪配置 54
2.2.2 更改跟踪的运行时行为 57
2.3 跟踪和事件探查 60
2.3.1 sql跟踪架构和术语 61
2.3.2 安全性和权限 62
2.3.3 profiler入门 63
2.3.4 服务器端跟踪和收集 70
2.4 扩展事件 78
2.4.1 xe体系结构的组件 79
2.4.2 事件会话 86
2.4.3 扩展事件ddl和查询 88
2.5 小结 91
第3章 数据库和数据库文件 92
3.1 系统数据库 92
3.1.1 master 93
3.1.2 model 93
3.1.3 tempdb 93
3.1.4 资源数据库 93
3.1.5 msdb 94
3.2 样例数据库 94
3.2.1 adventureworks 94
3.2.2 pubs 95
3.2.3 northwind 95
3.3 数据库文件 95
3.4 创建数据库 97
3.4.1 create database例子 99
3.5 扩展或收缩数据库 99
3.5.1 自动文件扩展 100
3.5.2 手动文件扩展 100
3.5.3 快速文件初始化 100
3.5.4 自动收缩性 100
3.5.5 手动收缩 101
3.6 使用数据库文件组 102
3.6.1 默认文件组 102
3.6.2 filegroup creation例子 103
3.6.3 文件流文件组 104
3.7 修改数据库 105
3.7.1 alter database例子 106
3.8 数据库剖析 107
3.8.1 空间分配 107
3.9 设置数据库选项 110
3.9.1 状态选项 112
3.9.2 游标选项 114
3.9.3 自动选项 115
3.9.4 sql选项 115
3.9.5 数据库恢复选项 116
3.9.6 其他数据库选项 117
3.10 数据库快照 117
3.10.1 创建数据库快照 118
3.10.2 数据库快照使用的空间 119
3.10.3 管理快照 120
3.11 tempdb数据库 121
3.11.1 tempdb中的对象 121
3.11.2 tempdb中的优化 122
3.11.3 最佳实践 123
3.11.4 tempdb空间监视 124
3.12 数据库安全性 124
3.12.1 数据库访问 125
3.12.2 管理数据库安全性 126
3.12.3 数据与架构 127
3.12.4 主体与架构 127
3.12.5 默认架构 128
3.13 移动或复制数据库 128
3.13.1 分离和重新附加数据库 128
3.13.2 备份和还原数据库 130
3.13.3 移动系统数据库 130
3.13.4 移动master数据库 131
3.14 兼容性级别 131
3.15 小结 132
第4章 日志记录和恢复 133
4.1 事务日志基础 133
4.1.1 恢复阶段 134
4.1.2 读日志 137
4.2 更改日志大小 137
4.2.1 虚拟日志文件 137
4.2.2 观察虚拟日志文件 138
4.2.3 自动截断虚拟日志文件 141
4.2.4 维护可恢复日志 142
4.2.5 自动压缩日志 144
4.2.6 日志文件大小 145
4.3 备份和还原数据库 145
4.3.1 备份类型 145
4.3.2 恢复模型 146
4.3.3 选择备份类型 149
4.3.4 还原数据库 150
4.4 小结 154
第5章 表 155
5.1 创建表 155
5.1.1 命名表和列 156
5.1.2 保留关键字 157
5.1.3 分隔标识符 157
5.1.4 命名约定 158
5.1.5 数据类型 158
5.1.6 关于null 178
5.2 用户定义数据类型 180
5.3 identity属性 181
5.4 内部存储 184
5.4.1 sys.indexes目录视图 185
5.4.2 数据存储元数据 186
5.4.3 数据页 189
5.4.4 检查数据页 190
5.4.5 数据行的结构 193
5.4.6 查找一个物理页面 195
5.4.7 固定长度行的存储 197
5.4.8 可变长度行的存储 199
5.4.9 日期和时间数据的存储 204
5.4.10 sql_variant数据的存储 206
5.5 约束 209
5.5.1 约束名称和目录视图信息 210
5.5.2 视图和多行数据修改中出现的约束故障 211
5.6 修改表 212
5.6.1 更改数据类型 212
5.6.2 添加一个新列 213
5.6.3 添加、删除、禁用或启用约束 213
5.6.4 删除列 214
5.6.5 启用或禁用一个触发器 215
5.6.6 修改表的内部 215
5.7 堆修改内部 217
5.7.1 分配结构 217
5.7.2 插入行 218
5.7.3 删除行 219
5.7.4 更新行 221
5.8 小结 224
第6章 索引:内部和管理 225
6.1 概述 225
6.1.1 sql server索引b树 226
6.2 分析索引的工具 228
6.2.1 使用dm_db_index_physical_stats动态管理视图 228
6.2.2 使用dbcc id 231
6.3 理解索引结构 233
6.3.1 聚集键的依赖关系 234
6.3.2 非聚集索引 236
6.3.3 约束和索引 236
6.4 索引创建选项 237
6.4.1 ignore_dup_key 238
6.4.2 statistics_norecom pute 238
6.4.3 maxdop 238
6.4.4 索引放置 238
6.4.5 约束和索引 239
6.5 物理索引结构 239
6.5.1 索引行格式 239
6.5.2 聚集索引结构 240
6.5.3 聚集索引的非叶级 241
6.5.4 分析聚集索引结构 241
6.5.5 非聚集索引结构 246
6.6 特殊索引结构 255
6.6.1 计算列上的索引和索引视图 255
6.6.2 全文索引 262
6.6.3 空间索引 262
6.6.4 xml索引 262
6.7 数据修改的内部 263
6.7.1 插入行 263
6.7.2 拆分页 264
6.7.3 删除行 267
6.7.4 更新行 272
6.7.5 表级数据修改与索引级数据修改 275
6.7.6 日志记录 276
6.7.7 锁定 276
6.7.8 碎片 276
6.8 管理索引结构 277
6.8.1 删除索引 277
6.8.2 alter index 278
6.8.3 检测碎片 279
6.8.4 删除碎片 280
6.8.5 重建索引 282
6.9 小结 284
第7章 特殊存储 285
7.1 大型对象存储 285
7.1.1 长度受限的大型对象数据(行溢出数据) 285
7.1.2 不限长度大型对象数据 289
7.1.3 最大长度数据的存储 294
7.2 文件流数据 295
7.2.1 为sql server启用文件流数据 295
7.2.2 创建一个启用文件流的数据库 296
7.2.3 创建一张表存储文件流数据 297
7.2.4 操纵文件流数据 298
7.2.5 文件流数据的元数据 302
7.2.6 文件流数据性能方面的考虑 304
7.3 稀疏列 305
7.3.1 稀疏列的管理 305
7.3.2 列集和稀疏列操作 307
7.3.3 物理存储 309
7.3.4 元数据 311
7.3.5 利用稀疏列节省存储空间 312
7.4 数据压缩 315
7.4.1 vardecimal 315
7.4.2 行压缩 315
7.4.3 页压缩 322
7.5 表和索引分区 329
7.5.1 分区函数和分区方案 330
7.5.2 分区的元数据 331
7.5.3 分区的滑动窗口优势 334
7.6 小结 336
第8章 查询优化器 337
8.1 概述 337
8.1.1 树格式 337
8.2 什么是优化 338
8.3 查询优化器如何研究查询计划 339
8.3.1 规则 339
8.3.2 属性 339
8.3.3 替代项的存储——“备注” 341
8.3.4 运算符 341
8.4 优化器架构 346
8.4.1 优化之前 347
8.4.2 简化 347
8.4.3 琐碎计划/自动参数化 347
8.4.4 限制 348
8.4.5 备注——有效地探索多项计划 349
8.5 统计信息、基数估计和开销 350
8.5.1 统计信息设计 351
8.5.2 密度/频度信息 353
8.5.3 筛选的统计信息 355
8.5.4 字符串统计信息 356
8.5.5 基数估计细节 356
8.5.6 限制 359
8.5.7 成本计算 360
8.6 索引选择 361
8.6.1 筛选索引 363
8.6.2 索引视图 365
8.7 分区表 369
8.7.1 分区对齐索引视图 372
8.8 数据仓库 372
8.9 更新 372
8.9.1 halloween保护 375
8.9.2 拆分/排序/折叠 375
8.9.3 合并 377
8.9.4 大范围更新计划 379
8.9.5 稀疏列更新 381
8.9.6 分区更新 381
8.9.7 锁定 384
8.10 分布式查询 385
8.11 扩展的索引 387
8.11.1 全文索引 387
8.11.2 xml索引 387
8.11.3 空间索引 388
8.12 计划提示 389
8.12.1 调试计划问题 389
8.12.2 {hash
著者还有:Paul S.Randal、Kimberly L.Tripp、Conor Cunningham、Adam Machanic、Ben Nevarez
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×