第1章 性能优化思路 1
1.1 两个优化实战案例 2
1.1.1 内存性能问题案例 2
1.1.2 CPU占用100%分析案例 6
1.2 性能优化理论体系 12
第2章 代码效率分析方法 15
2.1 服务端代码性能分析方法 16
2.1.1 VSTS性能分析工具Profiler介绍 16
2.1.2 VSTS性能分析工具使用 16
2.1.3 VSTS报表字段字典 22
2.2 客户端代码性能分析方法 26
2.2.1 IE8 Profiler简介 26
2.2.2 使用IE8 Profiler分析客户端脚本 26
2.2.3 查看IE8 Profiler分析报告 27
2.2.4 IE8 Profiler报表字段字典 29
2.3 性能调优工具集锦 30
第3章 编码规范 32
3.1 概述 33
3.2 编码规范 33
3.2.1 数据库设计及编码规范 33
3.2.2 客户端代码编码规范 39
3.2.3 服务器代码编码规范 44
第4章 服务器性能监控 50
4.1 概述 51
4.2 服务器性能监控 52
4.2.1 内存 52
4.2.2 处理器 53
4.2.3 磁盘 54
4.2.4 网络 54
4.2.5 进程 56
4.2.6 系统 56
4.2.7 .NET CLR Memory 57
4.2.8 .NET CLR Loading 57
4.2.9 Asp.net 57
4.2.10 数据库 57
第5章 客户实战案例 60
5.1 概述 61
5.2 WinDbg工具介绍 61
5.2.1 环境配置 61
5.2.2 常用命令简介 62
5.2.3 示例应用 65
5.3 客户问题诊断案例 70
5.3.1 Web服务器内存达到3GB后崩溃原因诊断定位 70
5.3.2 Web服务器运行中突然崩溃原因定位 78
5.3.3 DevGrid控件EventHandler事件泄漏内存 83
5.3.4 Session陷阱及正确使用 86
5.3.5 WinDbg内存泄漏+异常检测案例 89
第6章 数据库性能分析及故障诊断方法 103
6.1 数据库优化概述 104
6.2 效率专题研究 104
6.2.1 数据库无法收缩变小原因分析案例汇总 104
6.2.2 数据库碎片增长过快原因分析及建议方案 110
6.2.3 聚集索引对插入效率的影响 113
6.2.4 多表连接方案效率评估 114
6.3 优化方法指令 116
6.3.1 显示查询计划 116
6.3.2 查看SQL内部执行计划生成/优化信息 117
6.3.3 查看缓存对象(syscachobjects) 117
6.3.4 清空缓存 117
6.3.5 STATISTICS IO 118
6.3.6 STATISTICS TIME 118
6.3.7 分析执行计划 118
6.3.8 索引优化 121
6.3.9 数据库和文件空间 128
63.10 监视命令 132
6.3.11 SOL性能统计 133
6.3.12 跟踪文件统计 134
6.4 性能故障检测方法 136
6.4.1 CPU问题诊断 136
6.4.2 内存诊断 138
6.4.3 I/O诊断 141
6.4.4 tempdb诊断 143
6.4.5 阻塞诊断 144
6.4.6 死锁诊断 147
6.4.7 排除故障 154
6.4.8 信息查询 155
6.4.9 存储引擎 155
第7章 基于Web技术的性能优化方案 165
7.1 Web技术优化方案 166
7.1.1 发布时要关闭调试模式 166
7.1.2 服务器和客户缓存利用 166
7.1.3 启用GZIP压缩功能 166
7.1.4 对站点中的静态资源精简与压缩 166
7.1.5 JavaScript/CSS输出位置规范 167
7.1.6 减少页面请求 168
7.1.7 禁用服务器控件的视图状态 169
7.1.8 定制仅满足特定功能的自定义控件 169
7.1.9 优化方案提升数据 169
7.2 网络瓶颈诊断 169
7.2.1 各种网速测试方法 169
7.2.2 网络瓶颈诊断 171