图书介绍
SQL Server 2008数据库技术内幕pdf电子书版本下载
- 李爱武编著 著
- 出版社: 北京:中国铁道出版社
- ISBN:9787113146405
- 出版时间:2012
- 标注页数:405页
- 文件大小:162MB
- 文件页数:422页
- 主题词:关系数据库系统-数据库管理系统-教材
PDF下载
下载说明
SQL Server 2008数据库技术内幕PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1篇 体系结构基础 2
第1章 服务器体系结构与配置 2
1.1启动SQL Server服务器 2
1.1.1使用net start命令启动 2
1.1.2使用Windows服务管理器工具启动 2
1.2客户端工具 3
1.2.1客户端工具sqlcmd和SSMS比较 3
1.2.2 sqlcmd的使用方法 3
1.2.3 SQL Server Management Studio的使用方法 5
1.3服务器体系结构 6
1.4内存结构 8
1.4.1 data cache 9
1.4.2 plan cache 10
1.4.3 Workspace缓存 11
1.5 lazywriter进程、checkpoint进程及worker线程 11
1.5.1 lazywriter进程 11
1.5.2 checkpoint进程 12
1.5.3 worker线程 12
1.6数据库及其构成 13
1.6.1系统数据库 13
1.6.2文件与文件组 13
1.7服务器配置 14
1.7.1显示服务器配置信息 14
1.7.2修改服务器配置参数 15
1.8数据库配置 16
1.8.1显示数据库配置信息 16
1.8.2修改数据库配置信息 17
第2章 系统基表、系统视图与resource数据库 19
2.1系统基表 19
2.1.1查看所有系统基表 19
2.1.2以DAC连接查看系统基表中的数据 21
2.1.3连接APPLE服务器上默认SQL Server实例 22
2.2系统视图及其分类 23
2.2.1 SQL Server系统视图分类 23
2.2.2查询resource数据库存储的系统视图信息 23
2.3访问resource数据库 24
2.3.1查看resource数据库信息 25
2.3.2查看系统视图定义 25
2.3.3在服务器中附加resource数据库 26
2.4系统视图的简单应用:查询表的结构 28
第2篇 堆表与索引数据存储格式 31
第3章 文件存储格式常用研究工具 31
3.1几个常用的dbcc命令 31
3.1.1 SQL Server产品与dbcc命令的关系 31
3.1.2 dbcc extentinfo、 dbcc ind和dbcc page用法 32
3.1.3跟踪标记的启用与关闭 32
3.1.4 dbcc help——得到所有dbcc命令名称及其语法信息 34
3.1.5 dbcc extentinfo——得到对象分配到的区信息 35
3.1.6 dbcc ind——得到对象分配到的数据页信息 36
3.1.7 dbcc page——以指定格式导出数据页数据 37
3.2十六进制数据编辑工具——WinHex 42
3.2.1设置打开文件的方式 42
3.2.2转到指定偏移量 43
3.2.3在WinHex中查看和修改SQL Server文件数据 44
3.2.4使用dbcc writepage命令修改数据页数据 46
第4章 数据页结构 48
4.1数据页类型 48
4.2应用dbcc fileheader和dbcc dbinfor命令查看数据页内容 49
4.3在数据文件中定位数据页 50
4.4数据页结构 50
4.4.1数据页中三部分数据实例展示 51
4.4.2页头 52
4.4.3数据部分 54
4.4.4偏移量列表 54
第5章 堆表数据的存储方式 60
5.1行内数据、行溢出数据和大对象数据 60
5.1.1三类数据的含义 60
5.1.2记录长度不能超过8060字节 60
5.1.3分配单元 61
5.2记录类型 62
5.3记录的存储格式 62
5.4行内数据与行溢出数据的存储方式 64
5.4.1行内数据的存储方式 65
5.4.2行溢出数据的存储方式 68
5.5 forwarded/forwarding记录的存储 71
5.6大对象数据的存储 77
5.6.1 large value types out of row参数设置为0的情形 77
5.6.2 large value types out of row参数设置为1的情形 78
第6章 索引数据的存储方式 81
6.1堆表的非聚集索引结构 81
6.1.1记录的RowID 81
6.1.2如何查看RowID 82
6.1.3非聚集索引整体结构 83
6.1.4叶结点索引记录存储方式 86
6.1.5分支结点索引记录存储方式 91
6.2聚集索引结构 94
6.2.1叶结点记录存储方式 94
6.2.2分支结点索引记录存储方式 99
6.2.3聚集索引上创建的非聚集索引结构 104
6.3约束与索引的关系 106
6.4 DML语句对索引的影响 106
6.4.1 delete语句对索引的影响 106
6.4.2 delete语句对索引影响的讨论 107
6.4.3 insert操作对索引的影响 110
6.4.4 update操作对索引的影响 113
6.4.5 truncate table命令对索引的影响 114
第7章 多版本数据存储方式 115
7.1事务 115
7.1.1事务的ACID属性 115
7.1.2 commit与rollback命令 116
7.1.3客户端事务模式 116
7.1.4事务隔离级别 117
7.2开启read committed_snapshot参数后产生的多版本数据 117
7.2.1参数开启前后“行数据存储方式”的变化 117
7.2.2 update产生的旧版本数据及版本信息 119
7.2.3 delete操作产生的旧版本数据及版本信息数据 122
7.3开启allow_ snapshot isolation参数产生的多版本数据 127
7.3.1多版本数据产生的过程 127
7.3.2 allow_ snapshot isolation参数开启前后“行记录的存储方式” 128
7.3.3 snapshot隔离级别下产生的多版本数据 130
7.3.4开启allow_snapshot_isolation参数是否解决读等待写 133
第3篇 空间管理与数据校验 136
第8章SQL Server空间管理数据页 136
8.1空间管理相关数据页 136
8.2可用区跟踪——GAM及SGAM数据页 137
8.2.1 GAM和SGAM数据页的组合值 137
8.2.2查找混合区可用数据页的流程图 138
8.2.3新建数据文件的GAM与SGAM位图数据 138
8.2.4分配一个混合区后的GAM与SGAM位图数据 141
8.2.5分配多个混合区及多个专用区后的GAM与SGAM位图数据 142
8.2.6禁止单数据页分配 143
8.3数据页可用空间跟踪——PFS数据页 144
8.3.1 PFS如何跟踪数据页可用空间 144
8.3.2新数据库文件的PFS数据 145
8.3.3添加堆表数据对PFS的影响 147
8.3.4删除堆表数据对PFS的影响 148
8.4差异备份内容跟踪——DCM数据页 149
8.4.1 DCM原理分析实例 149
8.4.2全库备份后的DCM数据 150
8.4.3全库备份后数据修改导致的DCM数据变化 151
8.4.4全库备份后的DCM数据重置 153
8.5大容量操作改变的区跟踪——BCM数据页 153
8.5.1 bcp命令实例分析BCM原理 153
8.5.2全库备份或日志备份后的BCM初始数据 155
8.5.3大容量操作后的BCM数据 155
8.5.4执行事务日志备份的BCM数据重置 157
8.6实体空间跟踪——IAM数据页 158
8.6.1分配单元(allocation unit)及IAM链 158
8.6.2 IAM数据页的内容 159
8.6.3利用IAM数据页检索实体数据的过程 163
8.6.4执行全表扫描的步骤 164
8.6.5对表添加记录时的步骤 165
第9章 堆表数据删除或修改后的空间重用 166
9.1 delete操作引起的数据页内容变化 166
9.1.1 delete操作引起数据页内容的5种变化 166
9.1.2展示数据变化的实例 166
9.2删除数据所占空间的重用 170
9.2.1空闲空间足够容纳新记录的情形 170
9.2.2数据页中数据的重新组织 174
9.3修改数据后的空间重用 177
9.3.1定长记录 178
9.3.2记录长度未增长 180
9.3.3记录长度增长可存储在页尾空闲空间 182
9.3.4记录长度增长可存储在重组后的页尾空闲空间 184
9.3.5记录长度增长不能存储在重组后的页尾空闲空间 187
9.4未附加条件的delete、truncate和drop table操作 190
9.4.1准备测试数据 191
9.4.2添加测试数据后的空间管理数据页初始状态 192
9.4.3 delete操作产生的重做数据量 194
9.4.4 delete操作引起的GAM、PFS和IAM数据变化 195
9.4.5 truncate操作产生的重做数据量 196
9.4.6 truncate操作引起的GAM、PFS和IAM数据变化 196
9.5删除操作导致的锁 197
9.5.1 delete操作导致的锁 197
9.5.2 truncate操作导致的锁 199
9.5.3 drop table操作导致的锁 201
第10章 数据页I/O校验和与残缺页保护 203
10.1与数据页I/O保护机制有关的页头数据 203
10.2设置数据页I/O保护机制 203
10.3校验和机制 204
10.3.1校验和原理 204
10.3.2模拟I/O错误查看校验和保护的效果 207
10.3.3 m_flagBits的作用 208
10.4残缺页检测机制 210
10.4.1残缺页检测实现原理 210
10.4.2准备测试数据 211
10.4.3验证m tomBits的构造过程 214
10.4.4模拟数据页I/O错误查看残缺页检测效果 216
10.4.5 m_flagBits的作用 217
第4篇 重做日志原理 219
第11章 重做日志的VLF与LSN 219
11.1 VLF及其状态 219
11.1.1日志记录 219
11.1.2 VLF的状态 220
11.1.3查看VLF信息 220
11.1.4重做日志文件的VLF个数 222
11.2数据库的完整日志序列维护状态 226
11.3 VLF的循环使用 227
11.3.1非完整日志维护状态 227
11.3.2完整日志维护状态 229
11.4 LSN日志记录属性 232
11.4.1日志段 232
11.4.2日志记录的LSN 233
11.4.3日志记录的定位步骤 234
11.4.4日志记录定位示例 234
第12章checkpoint与实例恢复 237
12.1 checkpoint的功能 237
12.1.1 checkpoint对数据页的影响 238
12.1.2 checkpoint操作产生的日志记录及MinLSN 240
12.1.3 checkpoint操作后的日志记录截断 244
12.2实例恢复过程 245
12.2.1分析 246
12.2.2 redo过程 246
12.2.3 undo过程 246
第13章 常用SQL语句产生的重做数据 247
13.1查看日志记录的工具:fn_dblog函数 247
13.1.1 fn_dblog函数的主要列含义 248
13.1.2日志记录中的主要操作与对象类型的含义 248
13.1.3得到一个操作产生的重做数据 249
13.1.4得到一个操作产生的重做数据量 250
13.2事务处理命令产生的重做数据 251
13.2.1 begin transaction命令 251
13.2.2 commit命令 252
13.2.3 rollback命令 252
13.3 DDL语句产生的重做数据 253
13.3.1 create table语句 254
13.3.2 drop table语句 255
13.3.3 truncate table语句 256
13.4 DML语句产生的重做数据 257
13.4.1 insert语句 257
13.4.2 delete语句 260
13.4.3 update语句 261
第14章 大容量操作产生的重做数据 264
14.1数据库恢复模式对大容量操作产生重做数据的影响 264
14.2 select into命令产生的重做数据 265
14.2.1完整恢复模式 265
14.2.2大容量日志恢复模式 268
14.3 create index命令产生的重做数据 270
14.3.1完整恢复模式 270
14.3.2大容量日志恢复模式 272
14.4 insert into select命令在大容量日志恢复模式下产生的重做数据 273
14.5 bcp命令在大容量日志恢复模式下产生的重做数据 276
14.6 bulk insert命令在大容量日志恢复模式下产生的重做数据 278
14.7表上建有索引的各种情况 279
第5篇 执行计划重用与重编译 282
第15章SQL查询执行计划的重用与重编译 282
15.1执行计划 282
15.1.1创建执行计划的过程 282
15.1.2显示查询的执行计划 283
15.1.3执行计划的plan handle与sql handle属性 286
15.1.4 dbcc freeproccache命令清空计划缓存 286
15.1.5查询计划缓存中的执行计划信息 286
15.2 SQL查询执行计划的重用 289
15.2.1执行计划重用实例 289
15.2.2执行计划能够重用的基本要求 291
15.3参数化处理 292
15.3.1简单参数化处理 292
15.3.2强制参数化处理 294
15.4低重复率SQL命令的处理 295
15.5 trivial计划 296
15.6执行计划的重建与重编译 299
15.6.1服务器环境参数的改变导致执行计划重建 301
15.6.2架构数据的改变导致执行计划重编译 303
15.6.3统计信息的改变导致执行计划重编译 305
15.6.4使用recompile选项强制执行计划重建 306
第16章 批处理执行计划的重用与重编译 308
16.1批处理执行计划的特点 308
16.2批处理的执行计划 308
16.3批处理的重编译 309
16.4批处理执行计划的重建 313
第17章 存储过程执行计划的重用与重编译 315
17.1创建Profiler跟踪模板 315
17.2执行计划重用示例 316
17.2.1使用系统视图验证执行计划重用 317
17.2.2使用Profiler跟踪执行计划重用 317
17.2.3 SP:CacheMiss的含义 318
17.3引起执行计划重建或重编译的各种情况 319
17.3.1服务器环境参数改变对执行计划的影响 319
17.3.2引用对象结构的改变对执行计划的影响 322
17.3.3引用对象的统计信息改变对执行计划的影响 324
17.4强制执行计划重编译或重建 325
17.4.1执行存储过程时附加recompile选项 325
17.4.2创建存储过程时附加recompile选项 327
17.4.3对存储过程或其引用对象执行sp_ recompile 328
17.4.4对存储过程定义中的语句使用option recompile选项 333
第6篇 锁的原理 335
第18章锁 335
18.1锁粒度与锁模式简介 335
18.2查看锁的信息 337
18.2.1使用sys.dm_ tran_locks视图 337
18.2.2使用SQL Profiler工具 338
18.3常见资源附加的锁 339
18.3.1数据库锁 339
18.3.2区锁 341
18.3.3表锁 343
18.3.4表锁:意向共享模式(IS) 343
18.3.5表锁:共享模式(S) 344
18.3.6表锁:意向排他模式(IX) 345
18.3.7表锁:排他模式(X) 346
18.3.8表锁:Sch-S与Sch-M锁 347
18.3.9页锁与行锁 348
18.3.10索引键锁与键范围锁 348
18.4多个锁的复合 349
18.4.1锁的覆盖 349
18.4.2共享意向排他(SIX) 350
18.4.3共享意向更新(SIU) 350
18.4.4更新意向排他(UIX) 351
18.5锁的升级 352
18.6 read committed隔离级别下的锁 353
18.6.1未使用索引时的select操作 353
18.6.2使用索引时的select操作 356
18.6.3未使用索引时的update操作 357
18.6.4没有其他连接时修改表操作 357
18.6.5启动连接2时修改表操作 359
18.6.6使用索引时的update操作 360
18.7 serializable隔离级别下的键范围锁 362
18.7.1键范围锁简介 363
18.7.2键范围锁的锁定范围 363
18.7.3查询操作对索引附加的RangeS-S锁 364
18.7.4查询条件为等式且目标记录存在的情形 365
18.7.5查询条件为等式但目标记录不存在的情形 368
18.7.6查询条件为不等式且目标记录存在的情况 369
18.7.7查询条件为不等式且目标记录不存在的情况 370
18.7.8 update操作对索引附加的RangeS-U锁 371
18.7.9 update及delete操作对索引附加的RangeX-X锁 372
18.8 repeatable read隔离级别下的锁 373
18.8.1查询操作未使用索引的情形 373
18.8.2查询操作使用索引的情形 375
18.9查询操作不使用锁的几种情形 376
18.9.1 read uncommitted与锁 376
18.9.2数据库开启read_committed_snapshot参数 377
18.9.3 snapshot隔离级别 378
第19章 游标 379
19.1验证游标与一般查询的效率差别 379
19.2游标的分类 380
19.2.1 STATIC游标特征列举 381
19.2.2 KEYSET游标特征列举 384
19.2.3 DYNAMIC游标特征列举 386
19.2.4 FAST FORWARD游标特征列举 387
第7篇 备份原理 390
第20章 备份原理 390
20.1全库备份 390
20.1.1进行全库备份的步骤 390
20.1.2全库备份过程图示 391
20.1.3全库备份操作产生的备份集 391
20.1.4全库备份注意事项 392
20.1.5全库备份集的几个LSN属性 392
20.1.6如何确定全库备份集的first_lsn及last_lsn 392
20.2事务日志备份 396
20.2.1事务日志备份操作 396
20.2.2事务日志备份实例 396
20.2.3大容量日志模式下的事务日志备份 400
20.2.4事务日志备份对重做数据的影响 401
20.3差异备份 403
20.3.1查看差异备份的步骤 403
20.3.2通过查看提示信息简单说明差异备份 403