SQL Server 2008数据库技术内幕PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:李爱武编著
- 出 版 社:北京:中国铁道出版社
- 出版年份:2012
- ISBN:9787113146405
- 页数:405 页
第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
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《Prometheus技术秘笈》百里燊 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《林下养蜂技术》罗文华,黄勇,刘佳霖主编 2017
- 《脱硝运行技术1000问》朱国宇编 2019
- 《催化剂制备过程技术》韩勇责任编辑;(中国)张继光 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《中国当代乡土小说文库 本乡本土》(中国)刘玉堂 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《中国铁路人 第三届现实主义网络文学征文大赛一等奖》恒传录著 2019
- 《莼江曲谱 2 中国昆曲博物馆藏稀见昆剧手抄曲谱汇编之一》郭腊梅主编;孙伊婷副主编;孙文明,孙伊婷编委;中国昆曲博物馆编 2018
- 《中国制造业绿色供应链发展研究报告》中国电子信息产业发展研究院 2019
- 《中国陈设艺术史》赵囡囡著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《《走近科学》精选丛书 中国UFO悬案调查》郭之文 2019
- 《清至民国中国西北戏剧经典唱段汇辑 第8卷》孔令纪 2018
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018