目录 2
第1部分 调整基础 2
第1章 性能调整概述 2
1.1 数据库调整概述 2
1.2 系统开发生命周期 3
1.3 调整目标 6
1.4 性能问题 8
1.5 调整过程和步骤 10
1.6 使用数据库调整检查表 14
1.7 DBA的作用和职责 15
1.8 Oracle调整工具 18
1.9 复习题 19
1.10 考试复习题:Oracle9i性能调整(#1Z0-033) 20
1.11 实习项目 22
1.12 案例项目 23
第2部分 调整内存 26
第2章 调整缓冲区缓存 26
2.1 缓冲区缓存概述 27
2.2 配置缓冲区缓存 29
2.3 具有一个数据库块大小的数据库 31
2.4 具有多个块大小的数据库 32
2.5 动态SGA分配 35
2.6 配置多个缓冲区池 37
2.8 Buffer Cache Size Advice 40
2.7 自动表缓存 40
2.9 缓冲区缓存诊断 45
2.10 缓冲区缓存的内部情况 51
2.11 复习题 54
2.12 考试复习题:Oracle9i性能调整(#1Z0-033) 54
2.13 实习项目 57
2.14 案例项目 59
第3章 调整重做日志缓冲区 68
3.1 重做日志缓冲区概述 68
3.1.1 作用和功能 69
3.1.2 事务 69
3.1.4 进程 70
3.1.3 清空重做日志缓冲区 70
3.2 修改重做日志缓冲区容量 71
3.2.1 设置初始化参数 71
3.2.2 容量影响性能 72
3.2.3 修改容量的规则 72
3.3 日志缓冲区和日志写入器(LGWR) 76
3.4 日志缓冲区诊断 78
3.5 优化重做操作 86
3.6 复习题 88
3.7 考试复习题:Oracle 9i性能调整(#1Z0-003) 89
3.8 实习项目 91
3.9 案例项目 94
第4章 调整Shared Pool Memory 96
4.1 Shared Pool Memory概述 97
4.1.1 处理SQL语句 98
4.1.2 处理PL/SQL块 98
4.1.3 分析进程 101
4.2 Shared Pool Memory性能的相关术语 101
4.3 Shared Pool Memory内部结构相关术语 102
4.4 库缓存 103
4.5 数据字典缓存 104
4.6 配置Shared Pool Memory 106
4.7 Shared Pool Size Advice 109
4.8 诊断Shared Pool Memory 112
4.8.1 诊断库缓存 112
4.8.2 诊断数据字典缓存 115
4.8.3 诊断Shared Pool Memory利用 117
4.8.4 诊断Shared Pool空闲内存 118
4.8.5 使用Oracle Enterprise Manager诊断Shared Pool 119
4.9 查看Shared Pool Memory 122
4.9.1 V$DB_OBJECT_CACHE 123
4.9.2 V$OBJECT_USAGE 124
4.9.3 V$SQL 124
4.9.4 V$SQLAREA 124
4.9.5 V$SQLTEXT 126
4.9.6 V$SQLTEXT_WITH_NEWLINES 127
4.10 清空Shared Pool Memory 128
4.11 固定对象 128
4.11.1 CURSOR_SHARING参数 133
4.11.2 CURSOR_SPACE_FOR_TIME参数 135
4.12 大型池内存 135
4.13 Java池 136
4.14 复习题 138
4.15 考试复习题:Oracle9i性能调整(#1Z0-033) 140
4.16 实习项目 142
4.17 案例项目 146
第5章 使用Program Global Area 148
5.1 Program Global Area 149
5.1.1 PGA的组件 150
5.1.2 PGA对性能的影响 151
5.2 PGA配置 152
5.2.1 专用服务器的PGA配置 153
5.2.2 AUTO设置 154
5.2.3 手工设置 155
5.2.4 共享服务器的PGA配置 157
5.3 PGA Advice功能 158
5.3.1 使用动态性能视图的Advice 158
5.3.2 使用Oracle Enterprise Manager的Advice 161
5.3.3 调整PGA目标 163
5.4 PGA诊断 164
5.4.1 使用V$SQL_WORKAREA视图 166
5.4.2 PGA统计 170
5.4.3 使用V$SYSSTAT视图的更多PGA统计 172
5.4.4 PGA和Oracle Enterprise Manager 173
5.5 调整排序操作 174
5.5.1 排序操作 175
5.5.2 防止排序操作 176
5.5.3 排序操作诊断 177
5.5.4 系统级诊断 180
5.5.5 会话级诊断 181
5.5.6 SORT_AREA_RETAINED_SIZE参数 182
5.6 创建临时表空间 182
5.7 复习题 186
5.8 考试复习题:Oracle9i性能调整(#1Z0-033) 187
5.9 实习项目 190
5.10 案例项目 193
第6章 优化数据存储 196
第3部分 调整存储器 196
6.1 物理体系结构 197
6.2 Oracle块概况 198
6.2.1 Oracle块大小 199
6.2.2 Oracle块选项 201
6.2.3 PCTFREE概况 202
6.2.4 PCTFREE计算 205
6.2.5 PCTFREE和PCTUSED计算指导原则 208
6.2.6 高水位线 209
6.3 盘区管理 210
6.3.1 盘区选项 211
6.3.2 数据字典盘区管理 214
6.3.3 局部盘区管理 217
6.3.4 盘区报告 220
6.4 段的大小设置 221
6.4.1 段类型 221
6.4.2 表段的大小设置 223
6.4.3 分析表和表统计 226
6.4.4 DBMS_SPACE程序包 232
6.4.5 检测和解决链接的行 236
6.5 索引段 245
6.6 10个最好的方法 246
6.7 复习题 246
6.8 考试复习题:Oracle9i性能调整(#1Z0-033) 247
6.9 实习项目 250
6.10 案例项目 251
第7章 优化表空间 253
7.1 RAID配置 254
7.1.1 RAID第0层的特征 255
7.1.2 RAID第1层的特征 255
7.1.3 RAID第0+1层的特征 256
7.1.4 RAID第5层的特征 256
7.2 表空间 257
7.2.1 表空间概况 257
7.2.2 表空间的类型 259
7.2.3 表空间的管理 259
7.2.4 自动空间管理 262
7.2.5 表空间创建选项 264
7.2.6 表空间示例 267
7.2.7 更改表空间状态 269
7.2.8 表空间的大小设置 271
7.2.9 表空间分配 273
7.2.10 表空间映射 276
7.2.11 Oracle Enterprise Manager Tablespace Map工具 276
7.2.12 调整表空间的大小 281
7.2.13 移动和重命名数据文件 282
7.2.14 可传送的表空间 284
7.2.15 表空间监控 288
7.3 Oracle-managed Files 291
7.4 监控数据文件的I/O活动 296
7.5 检测和诊断数据文件争用 297
7.6 外部文件 301
7.7 DBMS_SPACE_ADMIN程序包 304
7.8 容量计划 305
7.8.1 非生产数据库的容量计划 306
7.8.2 新生产数据库的容量计划 306
7.8.3 生产数据库增长的容量计划 306
7.9 最佳方法 309
7.10 复习题 309
7.11 考试复习题:Oracle9i性能调整(#1Z0-033) 310
7.12 实习项目 312
7.13 案例项目 314
第8章 调整UNDO段 316
8.1 回滚概念 318
8.2 UNDO段概述 320
8.2.1 回滚段和UNDO段 321
8.2.2 UNDO段的用途 323
8.3 UNDO段的管理 325
8.3.1 人工管理 325
8.3.2 自动管理 330
8.4 设置大小的指导原则 335
8.4.1 设置回滚段的大小 335
8.4.2 设置撤销段的大小 341
8.5 诊断回滚段 344
8.5.1 回滚段统计信息 344
8.5.2 回滚段块标题争用 346
8.5.3 段标题争用 347
8.5.4 回滚段缓冲器争用 347
8.5.5 回滚段用法 348
8.5.6 使用回滚段的事务 349
8.5.7 回滚段和进程信息 350
8.5.8 回滚段持续时间 350
8.5.9 提交与回滚 351
8.6 诊断UNDO段 351
8.6.1 空间请求指示器 352
8.6.2 快照指示器 352
8.6.3 偷窃指示器 353
8.6.4 事务高峰时间 353
8.7 用Oracle Enterprise Manager诊断UNDO段 354
8.6.5 最长的事务 354
8.8 反闪查询 356
8.9 解决常见的UNDO段问题 359
8.9.1 ORA-01554出错:不在事务表中的事务槽范围之中 359
8.9.2 ORA-01555出错:快照太陈旧 359
8.9.3 ORA-01594出错:试图包装到回滚段中 360
8.9.4 ORA-01650出错:不能扩充回滚段 360
8.10 减少撤销数据的最好方法 360
8.11 复习题 361
8.12 考试复习题:Oracle9i性能调整(#1Z0-033) 362
8.13 实习项目 365
8.14 案例项目 369
第4部分 高级调整 372
第9章 检测锁争用 372
9.1 锁概述 373
9.2 锁类型 374
9.2.1 DDL锁 375
9.2.2 DML锁 375
9.3 锁模式 376
9.4 锁级别 378
9.4.1 数据库级别 378
9.4.2 表级别 379
9.4.4 列级别 380
9.5 锁语句 380
9.4.3 行级别 380
9.5.1 SHARE(S)锁模式 383
9.5.2 ROW SHARE(RS)锁模式 384
9.5.3 ROW EXCLUSIVE(RX)锁模式 385
9.5.4 SHARE ROW EXCLUSIVE(SRX)锁模式 386
9.5.5 EXCLUSIVE(X)锁模式 387
9.6 SELECT...FOR UPDATE语句 387
9.7 锁定示例 389
9.8 DML_LOCKS初始化参数 391
9.9 SET TRANSACTION语句 392
9.10 死锁 394
9.11.1 锁的动态性能视图 397
9.11 检测和解决锁争用 397
9.11.2 Oracle Enterprise Manager 404
9.11.3 解决锁争用 407
9.12 10个最好方法 407
9.13 复习题 407
9.14 考试复习题:Oracle9i性能调整(#1Z0-033) 408
9.15 实习项目 410
9.16 案例项目 411
第10章 其他调整问题 413
10.1 调整后台进程 414
10.1.1 ARCn进程 416
10.1.2 CKPT进程 419
10.1.3 DBWn进程 423
10.2 检测后台进程争用 426
10.3 锁存器 428
10.4 调整和监控操作系统 430
10.4.1 操作系统调整问题 431
10.4.2 内存 432
10.4.3 输入/输出(I/O) 432
10.4.4 CPU 433
10.4.5 操作系统监控工具 434
10.6 复习题 440
10.7 考试复习题:Oracle9i性能调整(#1Z0—033) 441
10.8 实习项目 443
10.9 案例项目 444
第11章 高级调整主题 446
11.1 共享服务器的配置和监控 447
11.1.1 专用服务器模式 447
11.1.2 共享服务器模式 449
11.1.3 配置共享服务器 451
11.1.4 监控和检测共享服务器连接 457
11.1.5 共享服务器的优点和缺点 464
11.2 分布式事务处理 465
11.2.1 分布式事务处理概述 465
11.2.2 创建和使用DATABASE LINK 466
1 1.2.3 DATABASE LINK的性能问题 473
11.3 复制 473
11.3.1 复制体系结构的概述 475
11.3.2 复制类型 479
11.3.3 物化视图复制的建立 481
11.3.4 诊断复制问题 492
11.4 Real Application Cluster 493
11.5 复习题 494
11.6 考试复习题:Oracle9i性能调整(#1Z0-033) 495
11.7 实习项目 497
11.8 案例项目 498
第5部分 调整内存 502
第12章 调整工具 502
12.1 诊断工具 503
12.1.1 Alert日志 503
12.1.3 V$视图 505
12.1.2 背景进程跟踪 505
12.1.4 初始化参数 508
12.1.5 Oracle Enterprise Manager 510
12.2 统计工具 513
12.2.1 UTLBSTAT/UTLESTAT 513
12.2.2 STATSPACK 518
12.3 SQL工具 540
12.4 数据块分解工具 559
12.4.1 DBVERIFY 559
12.4.2 DBMS_REPAIR 561
12.4.3 分析工具 563
12.4.4 分析命令 564
12.4.5 DBMS_UTILITY 564
12.4.7 DBMS_DDL 565
12.4.6 DBMS_STATS 565
12.5 资源管理工具 566
12.5.1 Database Resource Manager的组成部分 566
12.5.2 DEFAULT PLAN和CONSUMER GROUP 568
12.5.3 使用DRM 569
12.5.4 观察Resource Manager Data 576
12.6 复习题 578
12.7 考试复习题:Oracle9i性能调整(#1Z0-033) 579
第6部分 应用调整 586
第13章 SQL调整 586
13.1 Oracle优化器 587
13.1.1 优化器模式 589
13.1.2 基于规则的优化器 590
13.1.3 基于成本的优化器 597
13.2 解释SQL的执行计划和统计数字 601
13.2.1 查询实例1 601
13.2.2 查询实例2 603
13.2.3 查询实例3 608
13.3 与优化器有关的参数 611
13.4 优化器提示 612
13.4.1 连接顺序提示 612
13.4.2 查询转换提示 615
13.4.3 访问路径 616
13.4.4 并行执行 617
13.4.5 连接操作提示 618
13.4.6 优化器目标提示 620
13.4.7 其他提示 621
13.5 识别消耗最高资源量的SQL查询 622
13.6 理解SQL标准的要求 624
13.6.2 限定表 625
13.6.1 语法约定 625
13.6.3 表别名 625
13.7 改进SQL语句的执行 626
13.6.4 绑定变量 626
13.7.1 分析表和索引 627
13.7.3 考虑在外关键字上创建索引 628
13.7.2 创建索引 628
13.7.4 在小表上使用索引 629
13.7.5 使用OR与UNION的相互替代 630
13.7.6 并行执行 631
13.7.7 表别名 632
13.7.9 使用NOT EQUAL(!=)或NOT IN操作符与NOT EXISTS操作符的相互替代 633
13.7.8 使用表连接代替简单的子查询 633
13.7.10 使用Oracle提示 634
13.7.11 使用UNION ALL代替UNION 635
13.7.12 当计算行数时使用索引列 636
13.7.13 重写查询 636
13.7.14 使用基于函数的索引 637
13.7.15 使用绑定变量 638
13.8 避免低速的SQL执行 640
13.9 SQL分析实例 641
13.9.1 方法 641
13.9.2 查询1 642
13.9.3 查询2 643
13.9.4 查询3 645
13.10 使用摘要 645
13.10.1 场景1 646
13.10.2 场景2 648
13.10.3 场景3 649
13.10.4 场景4 650
13.11 复习题 652
13.12 考试复习题:Oracle9i性能调整(#1Z0-033) 653
13.13 实习项目 655
13.14 案例项目 659
第14章 优化应用 661
14.1 索引对调整的影响 662
14.1.2 复合索引 664
14.1.1 B*Tree索引 664
14.1.3 逆索引 665
14.1.4 Skip Scan索引功能 666
14.1.5 压缩索引 668
14.1.6 基于函数的索引 670
14.1.7 位图索引 671
14.2 监控索引使用情况 673
14.3 虚拟索引 675
14.4 表的应用考虑 678
14.4.1 索引组织表 679
14.4.2 群集表 681
12.8 实习项目 683
14.4.3 表分区 684
12.9 案例项目 684
14.5 复习题 691
14.6 考试复习题:Oracle9i性能调整(#1Z0-033) 692
14.7 实习项目 694
14.8 案例项目 695
第15章 调整专题和Statistics Collector项目 697
15.1 调整专题 697
15.1.1 公司 697
15.1.2 应用 697
15.1.3 模式 698
15.1.4 阶段 698
15.2.1 目的 701
15.2.2 描述 701
15.1.5 最后思考 701
15.2 Statistics Collector项目 701
15.2.3 体系结构 702
15.2.4 数据模型 702
15.2.5 数据仓库的物理结构 703
15.2.6 Statistics Collector的存储程序包 706
15.2.7 报告 706
15.2.8 数据库连接 706
15.2.9 工作调度 706
附录 Oracle体系结构概述 708