图书介绍

SQL Server 2008数据库技术内幕【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

SQL Server 2008数据库技术内幕
  • 李爱武编著 著
  • 出版社: 北京:中国铁道出版社
  • ISBN:9787113146405
  • 出版时间:2012
  • 标注页数:405页
  • 文件大小:162MB
  • 文件页数:422页
  • 主题词:关系数据库系统-数据库管理系统-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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 cache9

1.4.2 plan cache10

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十六进制数据编辑工具——WinHex42

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记录的RowID81

6.1.2如何查看RowID82

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与LSN219

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日志记录的LSN233

11.4.3日志记录的定位步骤234

11.4.4日志记录定位示例234

第12章checkpoint与实例恢复237

12.1 checkpoint的功能237

12.1.1 checkpoint对数据页的影响238

12.1.2 checkpoint操作产生的日志记录及MinLSN240

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_ recompile328

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_lsn392

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

热门推荐