序言 1
前言 1
第一部分 用于调查和编制应用性能文档的工具 1
第1章 性能方法论 1
1.1 性能方法论的引入 1
译者序 1
1.1.1 读者必须是专家吗 2
1.1.2 了解用户需求 2
1.1.3 性能方法论使用的工具 2
1.2.1 三种类型的应用系统 3
1.2.2 自已动手发现问题 3
1.2 掌握系统技术 3
1.3 整体化方法 4
1.3.1 第1阶段:信息收集 6
1.3.2 第2阶段:问题调查和优先级确定 9
1.3.3 第3阶段:调查与验证 14
1.3.4 第4阶段:进行优化 20
1.3.5 技术堆栈测量 23
1.4 问题定义 24
1.4.1 建立一个清晰简明的问题定义 25
1.4.2 案例研究 26
1.4.3 问题的性质What 27
1.4.4 发生问题的位置Where 32
1.4.5 问题发生的时间When 36
1.4.6 问题涉及的范围Extent 39
1.4.7 优先级确定Priority 42
1.5 案例研究小结 43
1.6 调查清单 44
1.7 本章小结 44
第2章 编制系统性能文档 47
2.1 项目文档摘要大纲 47
2.1.1 项目文档的优点 48
2.1.2 文档结构 48
2.2 如何回答提问 50
2.2.1 标题页总结信息 50
2.2.2 第1部分:Oraclc联系人 53
2.2.3 第2部分:客户联系人 53
2.2.4 第3部分:问题定义 54
2.2.5 第4部分:系统环境 56
2.2.6 第5部分:Oracle环境 61
2.2.7 第6部分:应用环境 66
2.2.8 第7部分:Web及Forms服务器环境 69
2.2.9 第8部分:客户环境 71
2.2.10 第9部分:网络 73
2.2.11 第10部分:进程信息 76
2.2.12 第11部分:其他系统信息 79
2.2.13 第12部分:进一步信息 80
2.2.14 第13部分:对硬件和环境的要求 80
2.3 本章小结 81
3.1.1 Oracle应用部件 83
3.1 Oracle应用体系结构 83
第二部分 优化应用技术栈 83
第3章 开始调查 83
3.1.2 Oracle应用技术栈 88
3.1.3 其他Oracle应用部件 95
3.1.4 物理层实现 96
3.2 比较时限 99
3.2.1 自己动手进行性能测试 99
3.2.2 使用优化的PC机进行测试 102
3.2.3 Oracle应用测试 103
3.3 与优化有关的社会工程学方面的问题 105
3.4 如何开始调查 105
3.4.2 检查客户端配置 107
3.4.1 用户和业务处理 107
3.4.3 检查网络 108
3.4.4 检查服务器和数据库 108
3.4.5 复查网络 109
3.4.6 记录并公布发现的问题 109
3.5 本章小结 109
第4章 优化客户:Windows95/98 111
4.1 优化指南 111
4.2 开始优化前的准备工作 112
4.2.1 检查Windows操作系统的版本 112
4.2.2 验证文件系统的完整性 113
4.2.3 备份系统 114
4.2.4 确保简单的引导过程 115
4.3 优化BIOS 122
4.3.1 操作模式 122
4.3.2 键盘速率 123
4.3.3 高速缓存 123
4.3.4 ROM映射 124
4.3.5 软盘引导 124
4.3.6 未使用的IDE通道 125
4.4 优化Windows桌面 125
4.4.1 删除屏幕保护器 125
4.4.2 删除墙纸 126
4.4.4 减少屏幕使用的色彩数量 127
4.4.3 升级显示驱动程序 127
4.4.5 优化图形性能 128
4.4.6 删除活动光标 129
4.4.7 删除快捷工具条 130
4.4.8 优化数据录入速度 130
4.5 优化Windows环境 131
4.5.1 优化设备的主要任务 131
4.5.2 优化注册表 133
4.6 优化存储器 134
4.6.1 优化CD-ROM配置的存储器 134
4.6.2 减少已安装的字体数量 135
4.7 优化磁盘I/O 136
4.7.1 文件系统 136
4.6.3 Oracle应用的字体别名 136
4.7.2 消除存储碎片和文件排序 138
4.7.3 检查硬盘工作模式 139
4.7.4 使用直接存储器存取 142
4.7.5 优化转储文件 143
4.7.6 删除磁盘压缩功能 148
4.7.7 优化磁盘高速缓存 149
4.7.8 清除文件系统 149
4.8 实用程序 154
4.8.1 工具Power Toys 155
4.8.2 工具Tweak UI 155
4.8.3 工具KernelToys 162
4.9 故障排除 163
4.9.1 检查硬件冲突 163
4.9.2 使用Windows进行长期测试 167
4.9.3 Windows操作系统的启动问题 167
4.10 有关Windows操作系统的提示 167
4.10.1 把桌面加入到菜单中 168
4.10.2 创建级联菜单 169
4.10.3 在文件中查找文本 169
4.10.4 给程序指定键顺序 171
4.10.5 安装可热拔插的SCSI设备 172
4.10.6 重新分配计算机 172
4.10.7 修改系统标志 173
4.10.8 调整Windows系统的闪屏 174
4.10.9 使用多语言操作系统 175
4.10.10 FAT-16和FAT-32的比较 176
4.11 修补程序与热修复 178
4.11.1 Windows 95下的修补程序与热修复 179
4.11.2 Windows 98下的修补程序与热修复 181
4.11.3 Office 97下的修补程序与热修复 182
4.11.4 Novell环境下Windows 95/98的客户升级 182
4.12 Windows操作系统的检查清单 183
4.13 本章小结 183
第5章 优化客户:Windows NT/2000 186
5.1 优化指南 186
5.2.2 校验文件系统的完整性 187
5.2.1 Oracle应用对存储器和CPU处理器的要求 187
5.2 优化前的准备工作 187
5.2.3 备份注册表和创建紧急修复盘 188
5.3 原始安装 190
5.3.1 使用FAT-16或NTFS 190
5.3.2 禁止自动启动程序运行 193
5.3.3 禁止自动启动的服务 194
5.3.4 禁止协议使用和重新绑定排队 196
5.3.5 整理磁盘碎片 197
5.3.6 优化页交换文件 199
5.4 优化要考虑的问题 202
5.4.1 禁止BIOS映射 202
5.4.2 检查服务程序包 202
5.4.3 最大化应用性能 203
5.4.4 加速引导过程 204
5.4.5 注册表配置编辑器Regedt32和Regedit 207
5.4.6 IDE接口的限制 208
5.5 性能监视工具 209
5.5.1 标准性能监视工具 209
5.5.2 资源工具箱 220
5.5.3 第三方工具 224
5.6 进行性能调查 227
5.6.1 使用性能监视器 227
5.6.2 调查网络 230
5.7 对Windows系统的一般提示 231
5.7.1 最佳化Oracle应用的性能 231
5.7.2 工具PowerToys和KernelToys 232
5.7.3 禁止屏幕保护器 234
5.7.4 最佳化Windows NT的低速TCP/IP WAN连接 234
5.7.5 有关使用二级高速缓存的考虑 234
5.7.6 Windows NT服务程序包和热修复 235
5.8 本章小结 235
第6章 通用保护错误 239
6.1 什么是GPF错误 239
6.1.1 GPF与MS-DOS服务的相关性 241
6.1.2 可再现或随机发生的GPF错误 241
6.1.3 可恢复GPF错误的类型 242
6.1.4 安全模式 242
6.2 干净的PC机 243
6.1.5 Oracle错误的特征 243
6.2.2 第2步:确保简洁的引导 244
6.2.1 第1步:验证文件系统和硬盘的完整性 244
6.2.3 第3步:删除临时文件 245
6.2.4 第4步:检查设备间的冲突 246
6.2.5 第5步:安装Windows操作系统的Service Pack 247
6.2.6 第6步:检查DLL文件的副本 249
6.2.7 第7步:检查网络 252
6.2.8 第8步:说明虚拟存储器 253
6.2.9 第9步:安装扩展内存管理器 254
6.2.10 第10步:检查显示设备的配置 255
6.3 引发GPF的其他可能原因 258
6.3.1 存储器 258
6.2.12 第12步:排除ROM寻址空间 258
6.2.11 第11步:对应用进行升级 258
6.3.2 BIOS设置 259
6.3.3 系统资源 259
6.4 记录GPF 260
6.4.1 工具Tweak UI 260
6.4.2 工具Dr. Watson 263
6.5 自定义窗体的有关问题 264
6.5.1 使用构件 264
6.5.2 设计窗体 265
6.5.3 了解虚拟存储器的使用情况 265
6.5.4 定制窗体错误 266
6.6 GPF错误调查清单 267
6.7 本章小结 268
第7章 优化中间件 272
7.1 互联计算体系结构 272
7.1.1 连接进程 272
7.1.2 规划性能 275
7.2 优化操作系统和硬件 279
7.2.1 CPU处理器 279
7.2.2 物理存储器和页面交换空间 279
7.2.3 TCP/IP协议和操作系统参数 280
7.3 优化应用组件 280
7.3.2 Oracle Web应用服务器版本3.0 281
7.3.1 HTTP服务器 281
7.3.3 Oracle Apache和WebDB监听程序 282
7.3.4 优化窗体服务器 287
7.3.5 把进程映射到用户 289
7.3.6 游览器JInitiator 290
7.4 故障排除 293
7.4.1 窗体运行时诊断工具 293
7.4.2 调试FRM-99999错误 296
7.4.3 检查窗体、JInitiator和JAR文件 298
7.4.4 调查清单 302
7.5 本章小结 302
第8章 优化数据库 304
8.1 数据库基本概念介绍 304
8.1.1 系统全局区 305
8.1.2 执行数据库命令 307
8.2 数据库统计信息入门 307
8.3 了解并配置共享缓冲池 310
8.3.1 共享缓冲池中的SQL和PL/SQL对象 310
8.3.2 共享缓冲池的管理方法 311
8.3.3 SQL语句的载入和运行 312
8.3.4 PL/SQL语句的载入和运行 313
8.3.5 控制共享缓冲池中的SQL和PL/SQL对象 314
8.3.6 包保持策略 314
8.3.7 识别并解决共享缓冲池竞争问题 315
8.3.8 共享缓冲池综述 317
8.4 数据存储和布局 319
8.4.1 数据存储 320
8.4.2 数据存储的布局 321
8.5 理解并配置磁盘I/O 323
8.5.1 缓冲高速缓存 323
8.5.2 对缓冲高速缓存的访问 324
8.5.3 缓冲高速缓存竞争的类型 326
8.6 了解并配置分类 327
8.6.1 Oracle执行分类的方式 327
8.6.2 Oracle执行分类的时机 328
8.6.3 为分类分配临时表空间 328
8.7 并行执行和并行服务器 329
8.7.1 并行执行 329
8.8 解决数据库性能问题 330
8.7.2 并行服务器 330
8.8.1 开始调查 331
8.8.2 动态性能视图 331
8.8.3 验证UtlBstat/UtlEstat报告 332
8.8.4 分析UtlEstat报告的内容 334
8.9 实时性能的测量 340
8.9.1 共享缓冲池的重访问 340
8.9.2 分析资源等待 341
8.9.3 分析SQL区域 344
8.9.4 分析游标 345
8.9.5 分析锁存器失误 345
8.10 本章小结 346
8.9.6 确认运行时间长的SQL语句 346
第9章 优化服务器 348
9.1 通用服务器部件 348
9.2 调查并优化服务器性能 350
9.2.1 监视存储器状态 351
9.2.2 磁盘子系统配置和性能 355
9.2.3 CPU处理器的利用率 359
9.2.4 监视网络的工作情况 362
9.2.5 优化操作系统的核心部分 363
9.2.6 监视低级系统调用 364
9.2.7 工具一览 365
9.3 性能调查 366
9.3.1 升级服务器 367
9.3.2 主动地进行性能管理 368
9.4 本章小结 369
第10章 优化网络 370
10.1 网络技术简介 370
10.1.1 OSI模型和Oracle应用 370
10.1.2 OSI模型的底层 372
10.1.3 OSI模型的高层 383
10.2 SQL *Net/Net8协议 384
10.2.1 SQL *Net/Net8协议和应用 384
10.2.2 跟踪SQL *Net 387
10.2.3 运动在WAN上的SQL*Net/Net8 388
10.3 Oracle应用中的网络功能 390
10.3.1 连接进程 390
10.3.2 JAR文件和网络流量 391
10.3.3 带宽和延迟 400
10.4 测试Oracle应用 402
10.4.1 可变延迟的GL事务 402
10.4.2 使用测试工具Mercury LoadRunner和Cloud 404
10.5 测量并模拟网络流量和状态 404
10.5.1 模拟网络运行 405
10.5.2 网络测试工具 408
10.5.3 测量包分段 418
10.5.4 性能基准 419
10.6 服务质量 419
10.6.1 基于应用识别技术的网络 420
10.7 问题定义 421
10.6.2 虚拟专用网 421
10.8 本章小结 422
第11章 优化SQL语句 424
11.1 基于规则和基于成本的优化器 425
11.1.1 基于规则的优化 425
11.1.2 基于成本的优化 427
11.1.3 CBO何时使用参数optimizer_mode=RULE 427
11.1.4 分析CBO的特点 429
11.1.5 分析策略:分析的时机和方法 431
11.2 理解SQL和索引 433
11.2.1 SQL的处理过程 434
11.2.2 共享和对SQL语句的二次分析 434
11.2.3 非共享SQL语句与共享SQL语句比较 435
11.2.4 理解索引的功能 436
11.3 调试 440
11.3.1 识别载入频率高的SQL语句 440
11.3.2 开始跟踪 443
11.3.3 SQL跟踪工具 447
11.4 最佳化SQL语句和改善性能 455
11.4.1 测试程序的代码 456
11.4.2 使用提示 457
11.4.3 高水印 461
11.4.4 如何避免全表扫描 463
11.4.5 优化SQL语句 465
11.5 本章小结 467
11.4.6 优化视图 467
第三部分 优化用户和应用子系统 469
第12章 优化用户 469
12.1 培训程序 469
12.2 提高用户的查询效率 471
12.2.1 内置窗体的限制条件 472
12.2.2 如何查找窗体查询 472
12.2.3 如何使用智能查询 475
12.3 与上下文环境有关的可变字段 477
12.4 本章小结 487
第13章 优化并行处理 488
13.1 并行处理概述 488
13.1.1 并行管理器 489
13.1.2 并行程序 491
13.1.3 并行程序库 491
13.2 并行处理的生存期及数据库技术 492
13.2.1 并行处理的生存期 492
13.2.2 并行管理器的生存期 498
13.2.3 并行处理的自动恢复 502
13.2.4 数据库技术回顾 504
13.3 管理并行处理 506
13.3.1 建立定义完整的环境 507
13.3.2 需要监视的对象 511
13.3.3 常用监视的工具 511
13.4 处理特殊的性能问题 514
13.4.1 掌握并管理作业提交延迟 515
13.4.2 掌握管理并提高运行效率低的作业 518
13.4.3 掌握并改善作业终止时出现的延迟 521
13.4.4 掌握并解决输出延迟 521
13.4.5 对环境的细微调整 522
13.4.6 不断对性能进行评价 524
13.5 本章小结 524
第14章 优化Oracle工作流 526
14.1 Oracle工作流的结构体系 526
14.1.1 工作流开发客户 528
14.1.2 Oracle服务器 529
14.1.4 最终用户客户 532
14.1.3 应用服务器 532
14.2 性能优化 535
14.2.1 信息收集 535
14.2.2 优化性能的建议 539
14.3 排除性能故障 551
14.3.1 工作流引擎中存在的瓶颈 551
14.3.2 丢失的通知 554
14.3.3 挂起的进程 555
14.4 本章小结 556
第四部分 优化案例和回顾 559
第15章 案例研究 559
15.1 基本信息 559
15.1.3 问题定义 560
15.1.2 Oracle合同和客户合同 560
15.1.1 项目基础 560
15.1.4 系统环境 562
15.1.5 Oracle数据库环境 562
15.1.6 应用环境 563
15.1.7 Web/Forms服务器 564
15.1.8 客户环境 564
15.1.9 网络环境 564
15.1.10 有关附加信息 565
15.1.11 对硬件和环境的要求 565
15.1.12 审查附加信息 566
15.1.13 审阅UtlBstat和UtlEstat报表 566
15.1.14 分析问题 569
15.2 本章小结 571
第16章 本书总结 572
16.1 建立正确的调查方向 572
16.2 人和社会因素对性能的影响 574
16.3 在Oracle的支持下开展工作 574
16.4 与客户协调工作 576
16.5 进入互联网时代 579
16.6 最后的建议 580
第五部分 附录 581
附录A 项目文档摘要 581
附录B 记录性能问题 590
附录C 本书光盘内容介绍 594