第1章 数据库空间管理
1.1 文件的分配方式及文件空间检查方法
1.2 数据文件空间使用与管理
1.3 日志文件不停增长
1.4 文件自动增长和自动收缩
1.5 小结
第2章 数据库备份与恢复
2.1 备份概述
2.2 选择备份策略和恢复模式
2.3 选择数据库还原方案
2.4 应对由于备份损坏导致的还原错误
2.5 系统数据库备份与恢复
2.6 实例:将数据库系统在一台新服务器上恢复
第3章 SQL Server服务或数据库不可访问
3.1 SQL Server服务启动顺序
3.2 数据库状态切换及Recovery
3.3 系统数据库不能启动的常见原因和解决方法
3.4 用户数据库常见问题和解决方法
3.5 实例:修复Recovery失败的数据库
第4章 数据库损坏修复
4.1 常见错误解读
4.2 DBCC CHECKDB
4.3 数据库反复损坏问题应对
第5章 连接与认证
5.1 协议的选择与别名
5.2 连接失败检测步骤——命名管道
5.3 连接失败检测步骤——TCP/IP
5.4 一般性网络错误(General Network Error)
5.5 认证与代理问题
第6章 SQL Server内存分配理念和常见内存问题
6.1 从操作系统层面看SQL Server内存分配
6.2 SQL Server内部独特的内存管理模式
6.3 SQL Server内存使用状况分析方法
6.4 数据页缓冲区压力分析
6.5 Stolen Memory缓存压力分析
6.6 Multi-page缓存区压力分析
6.7 常见内存错误与解决办法
6.8 小结
第7章 SQL Server IO问题
7.1 SQL Server的I/O操作
7.2 系统级I/O问题判断
7.3 数据库引擎错误833
7.4 IO问题的SQL Server内部分析
7.5 硬盘压力测试
7.6 小结
第8章 任务调度与CPU问题
8.1 SQL Server独特的任务调度算法(SQLOS)
8.2 SQL CPU %问题
8.3 OLTP和Data Warehouse系统差别及常用性能阀值
8.4 小结
第9章 阻塞与死锁——知识准备
9.1 锁产生的背景
9.2 锁资源模式和兼容性
9.3 事务隔离级别与锁的申请和释放
9.4 如何监视锁的申请、持有和释放
9.5 锁的数量和数据库调优的关系
9.6 结论
9.7 数据库引擎中基于行版本控制的隔离级别
第10章 阻塞与死锁——问题定位与解决
10.1 阻塞问题定位方法及实例演示
10.2 常见阻塞原因与解决方法
10.3 案例分析:连接池(Connection Pooling)与阻塞
10.4 死锁问题定位及解决方法
第11章 从等待状态判断系统资源瓶颈
11.1 LCK_xx类型
11.2 PAGEIOLATCH_x 与WRITELOG
11.3 PAGELATCH_x
11.4 Tempdb上的PAGELATCH
11.5 其他资源等待
11.6 最后一道瓶颈:许多任务处于Runnable状态
11.7 小结
第12章 语句调优——知识准备
12.1 索引与统计信息
12.2 编译与重编译
12.3 读懂执行计划
12.4 读懂语句运行统计信息
第13章 语句调优-问题定位与解决方法
13.1 是否是因为做了物理IO而导致的性能不佳
13.2 是否是因为编译时间长而导致性能不佳
13.3 判断执行计划是否合适
13.4 Parameter Sniffing
13.5 调整数据库设计来优化语句性能
13.6 调整语句设计提高性能
第14章 常用SQL Server系统信息与搜集方法
14.1 Windows 事件日志(Event Log)
14.2 SQL Server Errorlog文件
14.3 性能监视器(Performance Monitor)
14.4 SQL Trace文件
14.5 系统管理视图跟踪
14.6 自动化信息收集:SQLDiag工具
14.7 系统自动监视工具 - Performance Dashboard