标题：Oracle Database 10g 性能调整与优化
图书信息
  书       名：Oracle Database 10g性能调整与优化
作　　者： （美）尼米克（Niemiec,R.J）　著；薛莹　译
出 版 社： 清华大学出版社
出版时间： 2009-1-1 
字　　数： 1375000 
版　　次： 1 
页　　数： 869
开　　本： 16开 
印　　次： 1 
纸　　张： 胶版纸
I S B N ： 9787302189121
包　　装： 平装
内容简介
本书提供了监控、分析和优化Oracle Database 10g的方法，由Oracle认证大师Richard J．Niemiec倾力打造。书中包含了详细的案例研究、最佳实践和丰富的0racle新的调整特性的代码示例。通过学习本书，读者可以了解到如何选择最优化的索引选项，有效地管理驱动器和磁盘阵列，对查询执行故障检修，以及可靠地预测将来的性能。本书也将详细介绍PL／SQL性能增强、初始化文件调整，以及最新的数据库调查和报告实用程序。
作者简介
尼米克（Niemiec.R.J），Richard被Oracle公司授予Oracle认证大师——迄今为止，全世界仅有6人获得此殊荣，因此他是世界范围内公认的0racle专家。他是独立Oracle用户组(IOUG)的前任主管以及中西部Oracle用户组的现任主管。Richard已经被5次命名为IOuG会议的最佳主讲人，并且是企业家名人纪念馆的成员。目前Richard J．Niemiec任TUSC公司的总裁，该公司旗下有500多个专业从事Oracle技术全方位服务咨询和培训的机构。
目录
第1章 Oracle Database 10g新功能介绍（针对DBA和开发人员）
1.1 安装改进
1.2 SYSAUX表空间
1.3 自动存储管理
1.4 集群就绪服务（CRS）
1.5 服务器生成的警报
1.6 自动工作量仓库（AWR）
1.7 自动数据库诊断监控程序（ADDM）
1.8 SQL调整顾问
1.9 自动共享内存管理（ASMM）
1.10 闪回恢复区
1.11 回收站
1.12 恢复管理器的改动
1.13 透明数据加密（10gR2）
1.14 LogMiner的改动
1.15 新的DBMS_STATS选项
1.16 跟踪增强
1.17 DBMS_SCHEDULER
1.18 默认的（永久）表空间
1.19 临时表空间组
1.20 重命名表空间
1.21 大文件表空间
1.22 收缩段
1.23 数据泵（Data Pump）
1.24 跨平台的可移植表空间
1.25 写入外部表
1.26 自动撤消保留调整
1.27 包括新信息的V$SESSION
1.28 OEM的改动
1.29 网格控制
1.30 10g版本中的新后台进程
1.31 版本比较表
1.32 新特性回顾
1.33 参考文档
第2章 基本的索引原理（针对DBA和初级开发人员）
2.1 基本的索引概念
2.2 组合索引
2.3 限制索引
2.3.1 使用不等于运算符（<>、!=）
2.3.2 使用 IS NULL或IS NOT NULL
2.3.3 使用函数
2.3.4 比较不匹配的数据类型
2.4 选择性
2.5 集群因子（Clustering Factor）
2.6 二元高度（binary height）
2.7 使用直方图
2.8 快速全局扫描
2.9 跳跃式扫描
2.10 索引的类型
2.10.1 B树索引
2.10.2 位图索引
2.10.3 HASH索引
2.10.4 索引组织表
2.10.5 反转键索引
2.10.6 基于函数的索引
2.10.7 分区索引
2.10.8 位图连接索引
2.11 快速重建索引
2.12 技巧回顾
2.13 参考文档
第3章 磁盘实现方法和ASM（针对DBA）
3.1 成为规范的磁盘阵列
3.1.1 使用磁盘阵列改进性能和可用性
3.1.2 所需的磁盘数量　　
3.1.3 可用的RAID级别
3.1.4 更新的RAID 5
3.2 安装和维护传统文件系统
3.3 在硬件磁盘之间分布关键数据文件
3.3.1 分开存储数据和索引文件
3.3.2 避免I/O磁盘争用
3.3.3 通过移动数据文件来均衡文件I/O
3.4 本地托管的表空间
3.4.1 创建本地托管的表空间
3.4.2 把字典托管的表空间迁移到本地托管的表空间
3.4.3 Oracle大文件表空间
3.4.4 Oracle托管文件
3.5 ASM简介
3.5.1 I/O角色之间的通信
3.5.2 ASM实例
3.5.3 ASM init.ora参数
3.5.4 ASM的安装
3.5.5 ASM参数和SGA调整
3.5.6 ASM和权限
3.5.7 ASM磁盘
3.5.8 ASM和多路径
3.5.9 ASM磁盘组
3.5.10 ASM磁盘组和数据库
3.5.11 ASM冗余和故障组
3.5.12 Oracle Database 10gRelease 2中新的空间相关列
3.5.13 集群同步服务
3.5.14 数据库实例和ASM
3.5.15 使用ASM进行数据库合并和集群化
3.5.16 支持ASM的数据库进程
3.5.17 大文件和ASM
3.5.18 支持ASM的数据库init.ora参数
3.5.19 ASM和数据库部署最佳实践
3.5.20 ASM存储管理和分配
3.5.21 ASM重新平衡和重新分布
3.6 使用分区来避免磁盘争用
3.6.1 获得关于分区的更多信息
3.6.2 其他类型的分区
3.6.3 其他分区选项
3.7 使用索引分区
3.8 导出分区
3.9 消除碎片
3.9.1 使用正确的盘区大小
3.9.2 创建一个新表空间并把数据移到其中
3.9.3 导出和重新导入表
3.9.4 正确设定比例以避免链化现象
3.9.5 自动段空间管理
3.9.6 重建数据库
3.10 增加日志文件尺寸和LOG_CHECKPOINT_INTERVAL以提高速度
3.10.1 确定重做日志文件的大小是否存在问题
3.10.2 确定日志文件的大小和检查点的时间间隔
3.11 闪回恢复
3.12 增加恢复的可能性：在每次批处理后提交
3.13 使用回滚段
3.13.1 避免回滚段之间的争用
3.13.2 监控回滚段的等待和争用
3.13.3 增加回滚段
3.13.4 把大的事务隔离到它们自己的回滚段上
3.13.5 更简便的方法：UNDO表空间
3.13.6 监控UNDO空间
3.14 结束有问题的会话
3.15 不要在SYSTEM或SYSAUX表空间中执行排序
3.16 在不同磁盘和控制器上存放多个控制文件
3.17 对写操作频繁的数据使用裸设备来提高I/O
3.17.1 使用裸设备的好处
3.17.2 使用裸设备的缺点
3.18 磁盘I/O的其他注意事项和提示
3.19 设计阶段需要注意的问题
3.20 技巧回顾
3.21 参考文档
第4章 用初始参数调整数据库（针对DBA）
4.1 标识重要的初始参数
4.2 不用重启就修改初始参数
4.3 用Enterprise Manager 查看初始参数
4.4 调整DB_CACHE_SIZE来提高性能
4.4.1 在调整DB_CACHE_SIZE时使用V$DB_CACHE_ADVICE
4.4.2 保证数据缓存命中率超过95％
4.4.3 监控V$SQLAREA视图以查找较慢的查询
4.5 设定DB_BLOCK_SIZE来反映数据读取量的大小
4.5.1 调整SHARED_POOL_SIZE以优化性能
4.5.2 使用Oracle的多个缓冲池
4.5.3 调整PGA_AGGREGATE_TARGET以优化对内存的应用
4.5.4 修改SGA大小以避免分页和交换
4.5.5 了解基于成本的优化
4.5.6 创建足够的调度程序　　
4.5.7 25个重要的初始化参数
4.5.8 查找未归档的初始参数
4.5.9 了解典型的服务器
4.5.10 典型的服务器模式
4.5.11 调整Oracle Application数据库
4.6 技巧回顾
4.7 参考文档
第5章 企业管理器和网格控制（针对DBA和开发人员）
5.1 企业管理器（EM）基础
5.2 从All Targets和其他分组开始
5.3 Policies （Violations）选项卡
5.4 监控数据库
5.4.1 Database Administration选项卡
5.4.2 Database Administration选项卡：Tablespace
5.4.3 Database Administration选项卡：实例级别
5.4.4 Database Administration选项卡：All InitializationParameters
5.4.5 Database Administration选项卡：Manage Optimizer Statistics
5.4.6 Database Administration选项卡（实例级别）：
5.4.7 Database Maintenance选项卡
5.4.8 Database Topology选项卡
5.4.9 Database Performance选项卡
5.5 监控主机
5.6 监控应用服务器
5.7 监控Web应用程序
5.8 Deployments选项卡（补丁选项）
5.9 Jobs选项卡
5.10 Reports选项卡
5.11 自动存储管理的性能
5.12 小结
5.13 技巧回顾
5.14 参考文档
第6章 使用EXPLAIN和STORED OUTLINES（针对DBA和开发人员）
6.1 Oracle的SQL TRACE实用程序
6.1.1 对简单查询使用SQL TRACE的简单步骤
6.1.2 TRACE输出部分
6.1.3 更复杂的TKPROF输出
6.1.4 深入探讨TKPROF输出
6.1.5 使用DBMS_MONITOR（10g的新特性）
6.1.6 使用TRCSESS将多个跟踪文件保存到一个文件中（10g的新特性）
6.1.7 单独使用EXPLAINPLAN
6.1.8 EXPLAIN PLAN—— 从上至下读取和从下至上读取
6.1.9 阅读EXPLAIN PLAN
6.1.10 使用DBMS_XPLAN
6.1.11 另一种EXPLAIN PLAN输出方法：构建树结构
6.1.12 另一个使用树的例子
6.1.13 在开发产品中利用TRACE/EXPLAIN发现有问题的查询
6.1.14 PLAN_TABLE表中的重要列
6.1.15 Oracle支持的一些有用的程序包
6.1.16 适用于未记录入档的TRACE操作的初始参数
6.1.17 使用存储纲要
6.1.18 使用Plan Stability（存储纲要）
6.2 技巧回顾
第7章 基本的提示语法（针对DBA和开发人员）
7.1 最常用的提示
7.1.1 谨慎使用提示
7.1.2 首先修正设计方案
7.2 可用的提示和分组
7.2.1 改变执行路径
7.2.2 使用访问方法提示
7.2.3 使用查询转换提示
7.2.4 使用连接操作提示
7.2.5 使用并行执行
7.2.6 其他提示
7.3 指定提示
7.4 指定多个提示
7.5 使用别名时，提示别名而不是表名
7.6 使用提示
7.6.1 使用FIRST_ROWS提示
7.6.2 使用ALL_ROWS提示
7.6.3 使用FULL提示
7.6.4 使用INDEX提示
7.6.5 使用NO_INDEX提示
7.6.6 使用INDEX_JOIN提示
7.6.7 使用INDEX_COMBINE提示
7.6.8 使用INDEX_ASC提示
7.6.9 使用INDEX_DESC提示
7.6.10 使用INDEX_FFS提示
7.6.11 使用ORDERED提示
7.6.12 使用LEADING提示
7.6.13 使用NO_EXPAND提示
7.6.14 使用DRIVING_SITE提示
7.6.15 使用USE_MERGE提示
7.6.16 使用USE_NL提示
7.6.17 使用USE_HASH提示
7.6.18 使用PUSH_SUBQ提示
7.6.19 使用PARALLEL提示
7.6.20 使用NO_PARALLEL提示
7.6.21 使用APPEND提示
7.6.22 使用NOAPPEND提示
7.6.23 使用CACHE提示
7.6.24 使用NOCACHE提示
7.6.25 使用CLUSTER提示
7.6.26 使用HASH提示
7.6.27 使用CURSOR_ SHARING_EXACT提示
7.6.28 使用QB_NAME提示
7.7 其他一些提示和注意事项
7.8 使用提示可能遇到的问题
7.9 提示一览表
7.10 技巧回顾
7.11 参考文档
第8章 调整查询（针对开发人员和初级DBA）
8.1 调整哪些查询？查询V$SQLAREA
8.1.1 在V$SQLAREA视图中选出最占用资源的查询
8.1.2 在V$SQL视图中选出最占用资源的查询
8.2 选出最占用资源的会话和查询的新10g视图
8.2.1 从V$SESSMETRIC视图中选出当前最占用资源的会话
8.2.2 查看可用的AWR快照
8.2.3 从DBA_HIST_SQLSTAT视图中选出最占用资源的查询
8.2.4 从dba_hist_sqlstat视图中选择查询文本
8.2.5 从DBA_HIST_SQL_PLAN视图中选出查询执行计划
8.3 确定何时使用索引
8.4 遗忘索引
8.5 创建索引
8.6 查看表上的索引
8.7 修正差的索引
8.8 在删除索引时保持谨慎
8.9 对SELECT和WHERE中的列使用索引
8.10 使用快速全局扫描
8.11 使查询魔术般加速
8.12 在内存中缓存表
8.13 使用多个索引（利用最佳选择性）
8.14 使用索引合并
8.15 处理受限制的索引
8.16 使用基于函数的索引
8.17 了解“古怪”的OR
8.18 使用EXISTS函数
8.19 表就是视图
8.20 SQL和“大一统”理论
8.21 Oracle Database 10g中的调整修改
8.22 10g自动SQL调整
8.22.1 保证调整用户能访问API
8.22.2 创建调整任务
8.22.3 查看顾问日志中的任务
8.22.4 执行SQL调整任务
8.22.5 查看调整任务的状态
8.22.6 显示SQL调整顾问报告
8.22.7 检查报告输出
8.23 技巧回顾
8.24 参考文档
第9章 表的连接和其他高级调整技术（针对DBA和开发人员）
9.1 连接方法
9.1.1 嵌套循环连接
9.1.2 排序合并连接
9.1.3 集群连接
9.1.4 散列连接
9.1.5 索引连接
9.2 表连接的初始化参数排序合并与散列连接参数
9.3 双表连接：等尺寸表（基于成本）
9.4 双表索引连接：等尺寸表（基于成本）
9.5 强制执行特殊的连接方法
9.6 在多表连接中除去连接记录（侯选行）
9.7 在大小不同的表间进行双表连接
9.8 三表连接（基于成本）
9.9 位图连接索引
9.10 第三方性能调整工具
9.11 调整分布式查询
9.12 一切就绪
9.13 各种调整技术摘要
9.13.1 外部表
9.13.2 数据快照太旧：开发人员的编程难题
9.13.3 设置事件以转储每次等待
9.13.4 使用EXISTS操作符有效缩短时间
9.14 在块级别进行调整
9.15 使用简单的数学方法调整性能
9.15.1 传统的数学分析
9.15.2 方法论的七个步骤
9.15.3 模式分析
9.15.4 数学方法总结
9.16 连接调整：关系模型与对象关系模型的性能
9.16.1 使用的模型
9.16.2 结果
9.16.3 总结
9.17 技巧回顾
9.18 参考文档
第10章 使用PL/SQL提高性能（针对DBA和开发人员）
10.1 使用DBMS_APPLICATION_INFO进行实时监控 
10.2 在RAC环境中为实时监控使用自定义包代替DBMS_APPLICATION_INFO 
10.3 在数据库的表中记录计时信息 
10.4 减少PL/SQL程序的单元迭代和迭代的时间
10.5 使用ROWID进行迭代处理 
10.6 将数据类型、IF语句的排列和PLS_INTEGER 
10.6.1 确保比较运算中的数据类型相同 
10.6.2 根据条件出现的频率来排序IF条件 
10.6.3 使用PLS_INTEGER PL/SQL数据类型进行整数运算 
10.7 减少对SYSDATE的调用 
10.8 减少MOD函数的使用 
10.9 共享池和固定PL/SQL对象 
10.9.1 将PL/SQL对象语固定(缓存)到内存中 
10.9.2 固定所有的包 
10.10 标识需要固定的PL/SQL对象 
10.11 使用和修改DBMS_ SHARED_POOL.SIZES 
10.12 从DBA_OBJECT_SIZE 中获取详细的对象信息 
10.13 发现无效的对象 
10.14 发现已禁用的触发器 
10.15 将PL/SQL表用于快速参考表查询 
10.16 查找和调整所使用对象的SQL 
10.17 在处理DATE数据类型时使用时间信息 
10.18 调整和测试PL/SQL 
10.19 了解PL/SQL对象定位的含义 
10.20 使用回滚段打开大型游标 
10.21 使用数据库的临时表来提高性能 
10.22 集成用户跟踪机制以定位执行位置 
10.23 限制动态SQL的使用 
10.24 使用管道表函数来建立复杂结果集 
10.25 别管调试命令 
10.26 为初学者提供的例子 
10.26.1 创建PL/SQL代码 
10.26.2 创建过程 
10.26.3 执行PL/SQL过程 
10.26.4 创建函数 
10.26.5 在SQL中执行GET_CUST_NAME函数
10.26.6 创建数据包 
10.26.7 在数据库触发器中使用PL/SQL 
10.27 技巧回顾 
10.28 参考文档 
第11章 调整RAC和使用并行特性
11.1 实时应用集群(RAC)
11.1.1 并行数据库
11.1.2 Oracle RAC的体系结构
11.1.3 Oracle RAC系统的内部工作方式
11.1.4 SCN 处理
11.1.5 RAC性能调整概述
11.1.6 RAC等待事件和互连统计数据
11.1.7 集群互连调整——硬件等级
11.1.8 使用企业管理器网格控制调整RAC
11.2 并行操作的基本概念
11.3 并行DML和DDL语句和操作
11.4 Oracle 9i的并行DML语句和操作
11.5 并行处理和分区
11.6 操作内部和操作之间的并行处理
11.7 使用并行操作生成表和索引的示例
11.8 并行DML语句和示例
11.8.1 并行DML的约束条件
11.8.2 并行DML语句示例
11.9 通过V$视图监控并行操作
11.9.1 V$PQ_TQSTAT
11.9.2 V$PQ_SYSSTAT
11.9.3 V$PQ_SESSTAT
11.10 在并行操作时使用EXPLAIN PLAN和AUTOTRACE
11.11 调整并行执行和Oracle 9i初始化参数
11.12 并行加载
11.13 性能比较和监控并行操作
11.14 优化RAC中的并行操作
11.14.1 并行操作的目标
11.14.2 RAC并行使用模型
11.14.3 初始化参数
11.14.4 查看并行统计数据的V$视图
11.14.5 并行配置和相关基线测试
11.14.6 并行查询测试示例
11.14.7 Create Table As
11.14.8 索引构建
11.14.9 性能考虑因素和小结
11.15 使用并行处理时的其他注意事项
11.16 技巧回顾
11.17 参考文档
第12章 V$视图（针对开发人员和DBA）
第13章 X$表（针对高级DBA）
第14章 使用STATSPACK和AWR报表调整等待和闩锁
第15章 执行快速系统检查（针对DBA）
第16章 使用UNIX工具监控系统（针对DBA）
附录A 主要的初始化参数（针对DBA）附录B V$视图（针对DBA和开发人员）
附录C X$表（针对DBA）
媒体评论
“Rich再次完成了一本优秀的书籍，书中以大胆的、鼓舞他人的方式教导不同层次的读者。” 
——Ari Kaplan．独立Oracle用户组的总裁 
“Rich Niemiec是Oracle性能调整方面的“绝对”专家。每个Oracle DBA的书架上都应该放有本书——任何人都可以从中学到知识。这是一本被反复证明过有重要参考价值的优秀书籍。” 
——Kimberly Floss．PepsiCo的数据库服务经理， 
独立0racle用户组的前任总裁 
“Rich是一名世界顶尖的Oracle优化专家。他的书籍为所有优化从业人员（从初级到高级）提供了大量提示和技巧；本书将使Oracle世界的每位优化从业人员的技能得到提升。” 
——Mohammed Abdul Samad，沙特阿拉伯教育部 
“我非常钦佩Rich在Oracle技术方面的丰富知识。希望熟练掌握Oracle性能调整的任何人都可以从本书中获益。本书包含了Rich在Oracle方面的专家知识和经验，并且是所有Oracle专业人士必读的书籍。” 
——Hardik Bhatt，芝加哥城首席信息官 
“Rich Niemiec编写的任何书籍都是必须购买的书籍，他深入了解Oracle的方方面面。” 
——Karen Brownfield．Oracle Applications用户组董事