首页>参考读物>计算机科学与技术>数据库

Oracle STATSPACK 高性能调整技术
作者 : (美)Donald K.Burleson
译者 : 袁勤勇 等
丛书名 : Oracle技术丛书
出版日期 : 2002-04-01
ISBN : 7-111-09882-X
定价 : 58.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 504
开本 : 16开
原书名 : Oracle High-Performance Tuning with STATSPACK
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书是Oracle公司官方推荐的使用STATSPACK进行高性能调整的专著,作者是具有20多年的Oracle数据库调整经验的专家。本书主要介绍了使用STATSPACK这一强大工具来诊断并优化系统性能的方法,该工具可以通过查看数据库的历史趋势和性能模式前瞻性地调整数据库。主要内容包括:STATSPACK方法和工具概述,使用STATSPACK调整Oracle数据库以及利用STATSPACK进行数据库报告。本书安排合理,结构缜密,附录中还包括大量预制的STATSPACK脚本,方便读者使用。相信本书能成为你调整Oracle数据库的好帮手。

图书前言

自从Oracle第一次发布STATSPACK工具以来,大家对于怎样使用STATSPACK辅助数据库进行调整就很关注。与其他大多数Oracle产品不同,STATSPACK没有大张旗鼓地推出,所以大多数Oracle专业人士没有注意到这个强大的新工具,或者说没有意识到使用这个工具进行数据库调整是多么重要。
  STATSPACK是一个简单的工具,它可以将Oracle的统计快照存入Oracle的表中。STATSPACK是Oracle UTLBSTAT-UTLESTAT工具程序的后继,这个UTLBSTAT-UTLESTAT工具能够获取一个时期的开始快照和结束快照,并且能够为在这两个快照之间进行的所有数据库活动产生一个报告。
  通常需要将获取的Oracle性能统计数据存人表中。我在1996编写过一个扩展UTLESTAT功能的工具,它可以将获取的Oracle数据存入表中,并且发表了一篇有关这个主题的文章。从那个时期起,我就利用这个STATSPACK的前身进行Oracle数据库的远程监控,以及报告数据库的性能。随着STATSPACK的引入,所有的人现在都有了一个将获取的Oracle统计数据放人表中的标准化机制,Oracle统计数据的历史档案为分析任何所需时段的Oracle性能提供了绝好的机会。更为重要的是。性能统计数据的历史档案可以让DBA编制趋势分析报告,它可以对数据库未来的行为做出预测。
  STATSPACK的基本安装和配置相当简单,但是Oracle仅提供了一个简单的报告来显示从STATPACK表中获取的信息。因为我曾经有多年的分析表中的Oracle统计数据的经验,所以我能够快速地修改已有的脚本,STATSPACK表中读取数据并且产生相当有用的报告。
  这些脚本的价值会使这本书物有所值,而且我还介绍了解释STATSPACK输出的详细技术。在本书中,我向读者展示了怎样使用STATSPACK报告来确保正确调整数据库的具体步骤。在本书的正文部分,我仅仅重复了最重要的STATSPACK脚本,但是在附录中提供了所有脚本的详细列表,并且按照字母顺序进行了排序。我希望你可以参考附录,以便能够深入理解各种产生的报告。
  我写本书的目的是将我20年来在数据库调整方面的经验写成一篇数据库调整的综合文章。这是我的第三本有关Oracle调整的书,我收集了大量正确调整数据库时需要深入了解的内容。虽然大量的统计数据非常容易让人头脑糊涂,但是我会尽力强调重点,只向读者展示对改善数据库性能有帮助的信息。
  另外很重要的一点是,这本书引入了一种完全不同的Oracle调整方法。已有的Oracle调整书籍都强调处理即时的性能问题,而本书强调了怎样利用Oracle STATSPACK工具,通过查看数据库的历史趋势和性能模式前瞻性地调整数据库。这种前瞻性的调整方式可以确保对数据库的调整能够满足所有Oracle处理需求,而不是只针对于DBA实时注意到的处理需求。
  以许多Oracle DBA的观点来看,对数据库的性能问题可以做的事情很少。虽然能够使用Oracle Enterprise Manager性能工具包,也可以运行为Oracle v$视图定制的脚本,还可以判断性能瓶颈出现的原因,但是却不能够对实时运行的数据库进行任何改变以改正问题。
  而本书着重于讨论使用OracleSTATSPACK工具收集相关的性能统计信息,并且为DBA提供结构化的方法来查看各种Oracle组件以及观察它们之间的相互作用。前瞻性Oracle调整的目标是避免将来出现性能问题。Oracle调整中,"忘记昨天,就会重复错误"这句话始终是真理。
  根据我的20年数据库调整经验,我发现这种前瞻性技术是长期调整数据库整体性能的最好方式。通过使用STATSPACK持续监控数据库性能,并且利用自动脚本提醒异常情况,使我的数据库具有了非常好的性能。我发现可以使用大规模的自动化任务进行Oracle数据库性能调整。
  本书的另一个显著特点是我对书进行了缜密的安排,以使性能之间的依赖关系能够按照正确的顺序组织起来。例如,Oracle数据库内部的Oracle调整不会改善与数据库服务器相关的性能问题。换句话说,服务器性能会直接影响在这个数据库服务器上运行的Oracle数据库的性能。这些依赖性将会涉及数据库服务器、磁盘I/O子系统以及Oracle网络。为了正确地调整Oracle数据库,在开始调整数据库之前,必须处理好这些外部因素。
  另外,辨识Oracle调整的非因果性特性也是很重要的。例如,对单独SQL语句进行调整可以极大地改变这些独立SQL语句阶性能,然而,还必须将各个独立SQL语句使用的RAM内存数量与数据库阶性能作为一个整体进行权衡。例如,通过使用更多的内部存储可以极大地加速SQL语句的执行,但是这样会牺牲在数据库中执行的其他SQL语句的性能。
  我还故意推迟了对Oracle数据库设计问题的介绍。这是因为大多数Oracle DBA没有能力重新设计Oracle表,这一点对于已经在产品环境中使用的第三方应用或者内部应用尤其突出。但是,我坚定地认为正确的Oracle设计是Oracle性能至关重要的因素。
  在本书中,我还向读者展示了怎样扩展STATSPACK工具以获得与数据库服务器、磁盘I/O子系统以及Oracle表有关的性能度量。通过向STATSPACK数据库中增加这些因素,Oracle DBA可以得到数据库性能的整体印象。
  这本书与其他OracLe调整书籍的区别在于:
  1)这是第一本讲述使用STATSPACK工具进行Oracle调整的各种方法的书籍。
  2)这本书以前瞻性方式讨论了Ocracle调整,与讲述即时反应方法的其他Oracle调整书籍相比,这是一种新方法。通过使用前瞻性方式,Oracle专家能够研究数据库过去的详细性能,并且制定出最适应于他们的Oracle系统处理特性的整体调整策略。
  3)这本书的不同之处还在于它讨论了所有影响Oracle性能的因素。其他的书籍只将它们的讨论限定于Oracle数据库的内部,而本书将会讨论所有相关的环境问题,包括数据库服务器、网络以及磁盘I/O。
  本书将会为调整Oracle数据库提供完整的方法指导,并且还提供了几十个封装了重要因素的预制STATSPACK脚本,这使得初学者也能够迅速找到性能瓶颈。
  这本书最大的好处在于它简化了Oracle调整,并且扩充了Oracle统计数据的范围。这本书不是对Oracle标准调整技术的再整理。STATSPACK工具的引入改变了Oracle调整的方法,本书重点强调了使用STATSPACK工具收集、解释以及改正Oracle性能问题的方法。
  除了日常的Oracle调整之外,读者还能学会怎样使用STATSPACK收集当前的性能信息,以用于警告机制、趋势分析以及长期资源规划。我希望本书能够成为你的Orale调整工具库中不可或缺的帮手。

作者简介

(美)Donald K.Burleson:暂无简介

译者简介

袁勤勇 等:暂无简介

图书目录

第一部分 方法和工具概述
第1章 Oracle调整概述
1.1 整体调整方法
1.1.1 服务器调整
1.1.2 网络调整
1.1.3 磁盘调整
1. 1.4 实例调整
1.1.5 对象调整
1.1.6 SQL调整
1.1.7 用Oracle并行查询进行调整
1.1.8 调整Oarcle并行服务器环境
1.2 Oracle和STATSPACK
1.3 小结
第2章 STATSPACK概述
2.1 STATSPACK体系结构
2.2 STATSPACK怎样收集数据
2.3 STATSPACK的表结构
2.3.1 STATSPACK控制表
2.3. 2 STATSPACK参数表
2.4 STATSPACK信息使用
2. 4. l 使用STATSPACK进行数据库调整
2.4.2 资源规划
2. 4.3 预测模型
2.5 小结
第3章 安装和配置STATSPACK
3.1 将STATSPACK用于Oracle8.0到8.1.5
3.2 STATSPAcK脚本概述
3.3 步骤1:创建perfstat表空间
3.4 步骤2:运行创建脚本
3.5 步骤3:测试STATSPACK安装
3.6 步骤4:规划自动STATSPACK数据收集
3.7 STATSPACK的配置和维护
3.8 调整STATSPACK收集门限
3.8.1 快照级别
3.8.2 快照门限
3.9 移走旧有的STATSPACK快照
3.10 便于使用的STATSPACK Shell脚本
3.11 小结
第4章 STATSPACK表中的数据
4.1 STATSPACK遗漏的内容
4.2 STATSPACK附属表结构
4.3 STATSPACK概要表
4.3.1 atats$latch_misses_summary表
4.3.2 stats$sgastat_summary表
4.3.3 stats$sql_summary表
4.3.4 stats$parameter表
4.4 STATSPACK系统表
4.4.1 stats$rollstat表
4.4.2 stats$latch表
4.4.3 stats$latch_children表
4.4.4 stats$librarycache表
4.4.5 stats$waitstat表
4.4.6 stats$enqueuestat表
4.4.7 stats$sysstat表
4.4.8 stats$sesstat表
4.4.9 stats$sgastat表
4.5 STATSPACK事务表
4.5.1 stats$buffer_pool表
4.5.2 stats$buffer_pool_statistics表
4.5.3 stats$filestatxs表
4.6 STATSPACK事件表
4.6.1 stats$system_event表
4.6.2 stats$session_event表
4.6.3 stats$bg_event_summary表
4.6.4 stats$idle_event表
4.7 Oracle并行服务器表
4.7.1 stats$rowcache_summary表
4.7.2 stats$sgaxs表
9.8 小结
第二部分 使用STATSPACK
调整Oracle数据库
第5章 扩展STATSPACK收集服务器统计
5.1 vmstat工具概述
5.1.1 各种vmstat的不同之处
5.1.2 在vmstat中可以得到什么
5.1.3 使用vmstat识别CPU瓶颈
5.1.4 使用vmstat识别频繁使用的CPU
5.1.5 识别RAM内存瓶颈
5.2 在STATSPACK中获取服务器性能数据
5.2.1 获取vmstat信息的脚本
5.2.2 vmstat获取脚本的本质
5.2.3 报告其他Oracle服务器上的vmstat信息
5.3 小结
第6章 调整服务器环境
6.1 数据库管理员和系统管理员之间的关系
6.2 在线服务器监控工具
6.2.1 使用glance
6.2.2 使用top监控服务器
6.2.3 使用sar监控服务器统计
6.3 监控服务器CPU消耗
6.4 升级整个服务器
6.4.1 增加附加的CPU处理器
6.4.2 服务器任务负载平衡
6.4.3 使用nice和priocntl改变执行优先级
6.5 监控服务器内存消耗
6.5.1 服务器内存设置
6.5.2 非常大的内存和Oracle
6.5.3 使Oracle内存不可交换
6.6 报告服务器统计
6.6.1 服务器异常报告
6.6.2 日常vmstat趋势报告
6.6.3 长期服务器分析和趋势
6.7 小结
第7章 调整网络环境
7.1 优化OracleNet8配置
7.1.1 protocol.ora中的tcp.nodelay参数
7.1.2 sqlnet.ora的automatic_ipc参数
7.1.3 tnsnames.ora中的SDU和TDU参数
7.1.4 在listener.ora中的queuesize参数
7.1.5 sqlnet.ora的break_poll_skip参数
7.1.6 sqlnet.ora的disable_oob参数
7.1.7 epc_disabled环境变量
7.2 其他影响网络行为的Oracle特性
7.2.1 使用阵列获取来提高网络吞吐
7.2.2 使用多线程服务器
7.2.3 连接共享和网络性能
7.2.4 ODBC和网络性能
7.2.5 调整Oracle复制
7.3 从Oracle STATSPACK中监控网络性能
7.4 调整分布式网络
7.5 小结
第8章 使用STATSPACK调整磁盘I/O子系统
8. 1 影响磁盘I/O的Oracle调整因素
8.2 Oracle内部结构和磁盘I/O
8.2.1 Oracle文件组织技术
8.2.2 瞬时磁盘热点
8.3 映射Oracle磁盘结构
8.3.1 多RAM缓冲问题
8.3.2 对Oracle进行文件条带化
8.3.3 对Oracle使用RAID
8.3.4 使用具有原始设备的Oracle
8.3.5 Oracle数据库的磁盘负载平衡
8.3.6 配置Oracle表空间和数据文件
8.3.7 建立Oracle文件到磁盘的体系结构
8.3.8 报告Oracle磁盘体系结构
8.4 STATSPACK报告Oracle数据文件
8.4.1 使用STATSPACK报告详细的磁盘和文件I/O
8.4.2 有关特定I/O活动的STATSPACK报告
8.4.3 识别热点数据文件的STATSPACK脚本
8. 4. 4 定位热点磁盘的方法
8.5 扩充STATSPACK以用于磁盘I/O数据
8.5.1 基本iostat工具
8.5.2 定义STATSPACK表
8.5.3 获取iostat信息
8.5.4 产生iostat报告
8.6 使用STATSPACK查看I/O特性
8.7 小结
第9章 调整Oracle数据库实例
9.10 Oracle数据库实例概述
9.1. 1 Oracle SGA
9.1. 2 Oracle后台进程
9.1.3 块大小和Oracle磁盘I/O
9.1.4 db file multiblock read count以及Oracle
9.2 调整Oracle数据缓冲
9.2.1 数据块缓存介绍
9.2.2 完全数据缓存
9.2.3 数据缓冲命中率
9.2.4 数据缓冲池内部结构
9.2.5 使用STASPACK监控数据缓冲池的使用
9.2.6 新数据池概述
9.2.7 定位KEEP池的表和索引
9.2.8 调整RECYCLE池
9.2.9 为RECYCLE池识别候选
9.3 使用STATSPACK进行数据缓冲命中率趋势报告
9. 4 调整数据库写入器进程
9.5 调整共享池
9.6 调整库缓存
9. 6.1 监控库缓存缺失率
9.6.2 使用STATSPACK监控库缓存内的对象
9.7 调整数据辞典缓存
9.8 调整Oracle排序
9. 9 调整回滚段
9.10 小结
第10章 调整Oracle数据表和索引
10.1 Oracle基本存储参数及其对性能的影响
10.1.1 pctfree存储参数
10.1.2 pctused存储参数
10. 1. 3 freelists存储参数
10. 1.4 OPS使用的freelistgroup存储参数
10. 1.5 存储参数规则概述
10. 2 自由表管理和Oracle对象
10. 2.1 自由表中的链接与去除链接
10. 2.2 减少自由表的重链接
10.3 数据表内部情况和自由表
10. 4 根据数据行平均长度设置pctfree和pctused
10.5 缓存忙等待和自由表冲突
10.5.1 利用STATSPACK发现等待冲突
10.5.2 利用STATSPACK发现缓存贮等待
10.6 重组Oracle数据表
10.7 识别存在链接数据行的Oracle表
10.7.1 识别带有长数据行的表
10.7.2 识别稀疏表
10.8 为提高操作性能对Oracle表中的数据行重新排序
10.9 索引重建技术
10.9.1 何时需要重建索引
10. 9. 2 自动索引重建
10.10 利用STATSPACK监视Oracle表和索引
10. 10.1 分配STATSPACK扩展表
10.10.2 收集数据表和索引的STATSPACK快照
10.10.3 生成数据表和索引的报告
10.10.4 通过e-mail发布数据表报告
10.11 小结
第11章 调整OracleSQL
11.1 SQL调整的目标
11.2 说明性SQL语法的问题
11.3 OracleSQL优化器
11. 3. 1 optimizer_mode=RULE
11.3. 2 optimizer_mode=FIRST_ROWS
11. 3.3 optimizer_mode=ALL_ROWS
11.3.4 optimizer_mode=CHOOSE
11. 4 利用基于规则的优化器进行调整
11.4.1 改变基于规则的驱动表
11. 4.2 基于规则的优化器何时无法使用正确的索引
11.5 使用基于成本优化器进行调整
11.5.1 启用基于成本的优化器
11.5.2 为CBO收集统计数据
11.6 确定默认的optimizer_mode设置
11.7 其他的调整技术
11.7.1 带CBOSQL提示的调整
11.7.2 调整SQL子查询
11.7.3 文字性SQL语句的问题
11.7.4 在Oracle8i中使用cursor_sharing参数
11.7.5 带临时表的SQL调整
11.7.6 通过添加索引调整SQL
11.7.7 编写高效率SQL的一般原则
11.8 SQL调整过程
11.8.1 步骤1:识别库缓冲区中影响大的SQL
11.8.2 步骤2:提取并解释SQL语句
11.8.3 步骤3:调整SQL语句
11.9 SQL调整中实际情况的研究
11.10 高级SQL运行方案分析
11.11 保存SQL调整的永久性改变
11.12 小结
第12章 利用Oracle并行特性进行调整
12.1 使用Oracle并行查询
12.1.1 并行查询的init.ora参数
12.1.2 设置优化并行度
12.1.3 使用并行查询提示
12.2 监视Oracle并行查询
12,2.1 利用STATSPACK监视Oracle并行查询
12.2.2 利用V$视图监视Oracle并行查询
12.2.3 并行查询和分布式对象
12.2.4 查找Oracle并行查询候选数据表
12.3 使用并行DML
12.3.1 启用并行DML
12.3.2 Oracle表重组工作的并行化
12.3.3 并行的索引重建
12.4 小结
第13章 Oracle并行服务器环境的调整
13.1 Oracle并行服务器系统结构的介绍
13.2 OPS数据分区
13.3 集成分布式锁管理器
13.4 针对OPS的Oracle数据表设置
13.5 调整OPS环境
13.6 监视OPS的STATSPACK表
13.6.1 stats$rowcache_summary表
13.6.2 stats$sgaxs表
13.6.3 stats$sysstat表
13.7 扩展STATSPACK以获取OPS信息
13.8 查询Oracle并行服务器的v$视图
13.9 小结
第三部分 利用STATSPACK
进行数据库报告
第14章 利用STATSPACK监视Oracle
14.1 报警程序概述
14.2 定制为DBA提供的异常警告报告
14.2.1 STSTSPACK警告日报
14.2.2 服务器警告日报
14.2.3 Oracle问题的实时检测
14.2.4 对象增长周报
14.2.5 跟踪报警报告
14.2.6 Web服务器警告报告
14.2.7 缓冲繁忙等待警告
14.3 STATSPACK相互作用报告
14.4 安排和定制Oracle报警报告
14.5 小结
第15章 利用STATSPACK进行趋势分析
15.1 利用MS-Excel绘制STATSPACK数据的图形
15.1.1 利用电子表格图表向导绘制STATSPACK数据图形
15.1.2 步骤1:定制STATSPACK报告
15.1.3 步骤2:在SQL*Plus中运行报告
15.1.4 步骤3:高亮选择并复制结果
15.1.5 步骤4:打开MS-Excel并粘贴数据
15.1.6 步骤5:将数据划分出数据列
15.1.7 步骤6:数据分栏
15.1.8 步骤7:启动图表向导
15.1.9 步骤8:选择线条图
15.1.10 步骤9:完成图表向导并查看图表
15.1.11 步骤10:添加趋势线
15.2 用于预测的STATSPACK报告
15.2.1 用于趋势分析的基本STATSPACK度量
15.2.2 用于数据库服务器趋势分析的STATSPACK扩展
15.2.3 检查服务器以小时为单位的趋势
15.2.4 绘制一周中各天服务器统计数据的图表
15.3 STATSPACK数据基于Web的图形绘制
15.3.1 RRDtool
15.3.2 其他基于Web的制图工具
15.4 小结
附  录
附录A STATSPACK脚本

教学资源推荐
作者: [美] 查鲁·C. 阿加沃尔(Charu C. Aggarwal) 著
作者: 丁兆云 周鋆 杜振国 著
作者: [英]托马斯 M. 康诺利(Thomas M. Connolly) 卡洛琳 E. 贝格(Carolyn E. Begg)著
作者: Jeffrey D.Ullman, Jennifer Widom
参考读物推荐
作者: [美]维贾伊·库图(Vijay Kotu) 巴拉·德斯潘德(Bala Deshpande) 著
作者: [美]本杰明·罗森维格(Benjamin Rosenzweig),[加]艾琳娜·拉希莫夫(Elena Rakhimov) 著
作者: Scott Urman