具体描述
作者简介
目录信息
贺辞
序
引言
译者序
第1章 安装
1.1README文件
1.2硬件和软件需求
1.3磁盘空间
1.4NLS的研究
1.4.1设置NLSLANG
1.4.2初始化参数文件中NLS项
1.4.3地区信息文件
1.5特权(O/S级)
1.6特权(在数据库中)
1.6.1在SYS模式中浏览对象
1.6.2SYSOPER和SYSDBA特权
1.7SHAR ED _POOL_SIZE 陷阱
1.8安装日志文件
1.9文件结构
1.10数据库创建问题
1.10.1最大化数据文件参数
1.10.2重演日志
1.10.3日志历史
1.10.4重演日志组成员
1.10.5表空间配置
1.10.6初始化参数文件大小
1.10.7Orac leReport
1.10.8控制文件
1.10.9脚本
1.10.10初始化参数文件中的非缺省项
1.11产品完整性检查
1.11.1Oracle8Server报告
1.11.2PL/SQL的正确运行方式
1.11.3数据库触发器、存储过程、函
数和软件包
1.11.4由Net8支持的数据库连接
1.11.5重新连接服务器的问题
1.11.6其他附加文件
1.11.7 第三方产品
1.12本章小结
1.13 Oracle7.X说明
第2章 内存/CPU
2.1WindowsNT性能监视器
2.2后台进程
2.3跟踪文件和实例警报文件
2.4 系统全局区(SGA)
2.5分页与对换
2.6存储器需求
2.6.1第一步:未包括SGA的需求
2.6.2 第二步:估计SGA存储器需求
2.7存储器需求多大?
2.8共享池
2.8.1库高速缓存
2.8.2字典高速缓存
2.9数据库缓冲区高速缓存
2.10重演日志缓冲区高速缓存
2.11 多线程服务器
2.11.1启动MTS
2.11.2改变初始化参数文件
2.12排序区域大小(SORT_AREA_
SIZE)
2.13重视CPU
2.13.1SMP
2.13.2MPP
2.14 Oracle8的并行查询
2.15CPU的繁忙程度
2.15.1估计CPU的繁忙程度
2.15.2从例子中得出的结论
2.15.3 CPU 太小
2.16 使CPU功能最大化
2.17 会话控制
2.17.1限制访问
2.17.2删除不需要的会话
2.17.3利用profile
2.18 本章小结
2.19Oracle7.x说明
第3章 输入/输出
3.1访问SYS的DBA和V$视图
3.2在链中的慢连接
3.3表和索引段
3.4索引组织表
3.4.1为什么使用索引组织表
3.4.2建立索引组织表
3.4.3从索引组织表获益的应用程序
3.4.4DML和DDL的区别
3.5表和索引的分离
3.6表和索引的磁盘分区
3.7行迁移和行链接
3.8转返段
3.9减少碎片
3.10 临时段
3.11重演日志
3.12磁盘控制器
3.13 热点
3.13.1数据文件热点
3.13.2对象热点
3.13.3报告审计信息
3.13.4关闭审计
3.14 确定合适的表和索引大小
3.14.1用公式来定义大小
3.14.2利用现存数据段确定大小
3.15真正利用的空间
3.15.1在初始化加载后表中所用的空
间
3.15.2在表存在的任何时间内所用的
空间
3.15.3索引中所用空间
3.16空间分配和I/O的各种调整
3.16.1 回收未使用的空间
3.16.2利用分区来进行划分
3.16.3安排pctfree对表或索引进行分
区
3.16.4 pctused和自由表
3.16.5 修改SQL .BSQ
3.17本章小结
3.18Oracle7.x说明
第4章 分区
4.1分区与调整过程
4.2可用的分区类型
4.2.1范围分区
4.2.2分区视图
4.2.3处理分区视图上的查询
4.3表的分区
4.3.1决定如何分区
4.3.2将数据放人正确的分区
4.3.3数据放入分区对象
4.3.4分区对象的表空间
4.3.5处理分区及其表空间
4.4 分区索引
4.4.1全局索引
4.4.2局部索引
4.5分区对象的公共操作
4.5.1统计收集
4.5.2 基于分区的卸出和装人
4.5.3 转换分区视图到分区表
4.5.4分区维护和全局索引
4.6本章小结
4.7Oracle7.x说明
第5章 并行性
5.1并行查询处理
5.2并行查询外观
5.3并行执行
5.3.1PARALLEL提示
5.3.2PARAL LEL _INDEX 提示
5.3.3NOPARALLEL提示
5.3.4APPEND和NOAPPEND提示
5.4并行SQL语句
5.4.1并行度是什么
5.4.2操作的并行度
5.5SQL语句的并行形式
5.6创建表
5.6.1影响并行处理的Orac1e8物理
设计
5.6 .2Insert ,Updates和Deletes
5.7 并行索引
5.8并行加载
5.8.1分解传统加载
5.8.2不同对象的并行加载
5.8.3并行加载到相同对象
5.9并行操作的限制
5.10并行的性能
5.11本章小结
5.12Oracle7.x说明
第6章 数据库的其他有关问题
6.1初始化参数(INIT.0RA)文件
6.1.1数据库范围参数
6.1.2独立用户/进程参数
6.2 utlbstat和ut1estat
6.2.1utlbstat简介
6.2.2 utlestat简介
6.3 utlestat/utlbstat例子
6.3.1选择正确的时间片
6.3.2检测初始参数文件
6.3.3在适当的时候切换到ultbstat
6.3.4在时间周期末运行utlestat
6.3.5输出结果说明
6.4其他调整设想
6.4.1PCTFREE
6.4.2调整重演日志
6.5本章小结
6.6Oracle7.X说明
第7章 显示终止
7.1扩充字符集的数据处理
7.1.1WindowsNT
7.1.2UNIX
7.1.3检查重音符号
7.2客户机/服务器的驱动器赋值
7.3索引文件的变化
7.4数据库及操作系统的限制
7.5操作系统的限制
7.5.1操作系统的最大打开文件数
7.5.2操作系统初始化文件
7.6Oracle8数据类型的限制
7.7Oracle的限制
7.7.1DB FILES
7.7.2ENQUE UE RES OUR CES
7.8重建数据库
7.9自由空间争用
7.10失控规模
7.11索引中的自由空间
7.12事务空间
7.13档案日志目标区已满
7.14上锁
7.15ANSIC编译器
7.16不要怕阅读使用指南
7.17数据库的使用权限
7.18磁盘空间和内存
7.19截除(truncate),而不要删除
(drop)
7.20 碰到困难如何寻求帮助
7.20.1正确估计形势
7.20.2联系遍布世界各国的售后服
务商
7.20.3西蒙说
7.20.4使用个人的Oracle关系网
7.20.5使用Internet或其他的信息
网
7.20.6这里没有魔弹
7.21 本章小结
7.22 Oracle7.x说明
第8章 应用程序调整
8.1Oracle企业管理器
8.2共享SQL区
8.2.1查看共享池
8.2.2调整共享池
8.2.3手工管理共享池
8.3SQL语句处理
8.4使用通用代码
8.4.1描述的完整性
8.4.2数据库触发器
8.4.3过程和软件包
8.4.4执行模式
8.5基于开销的优化(CBO)
8.5.1搜集统计数字
8.5.2开发一个统计搜集方案
8.5.3统计数字的存储
8.5.4使用提示
8.5.5优化方式
8.6解释方案
8.7设置自动跟踪
8.7.1允许用户使用自动跟踪
8.7.2自动跟踪方式
8.8提示和解释方案工具箱
8.9tkprof 和SQL跟踪
8.10SQL跟踪黑洞
8.11索引列
8.12锁
8.13 本章小结
8.14Oracle7.x说明
第9章 性能包
9.1性能包的组成
9.1.1Oracle跟踪
9.1 2 Oracle专家
9.1.3性能管理器
9.1.4锁管理器
9.1.5表空间管理器
9.1.6Oracle顶层会话
9.2性能包和调整过程
9.2.1文件I/O率细目
9.2.2系统I/O率
9.2.3内存库高速缓存细目
9.2.4内存排序命中率
9.2.5转返无等待命中率
9.2.6概览
9.3定制图表
9.3.1设备I/O
9.3.2设备表空间
9.4使用建议
9.4.1局部与远程数据存放
9.4.2性能干扰
9.4.3重用与用户定义图表
9.5本章小结
9.6Oracle7.x说明
第10章 综合论述
10.1Oracle连接管理器
10.1.1允许多重通讯
10.1.2外加的安全层
10.1.3多协议支持
10.1.4配置Oracle连接管理器
10.2 时间
10.3PL/SQL中的调整
10.3.1在转返段中指明事务
10.3.2会话控制
10.4验证数据库文件的完整性
10.5WorldWideWeb上的资源
10.6备用数据库设施
10.6.1创建备用数据库
10.6.2调理备用数据库
10.6.3两个站点间的名字差异
10.6.4激活备用数据库
10.6.5产品及备用参数的同步
10.7调整数据库备份
10.7.1调整卸出和装人
10.7.2调整在线备份
10.8调整数据库恢复
10.9扩展ROWID
10.10 对付DBA错误的方法
10.10.1后台进程跟踪文件
10.10.2数据库自由空间
10.10.3用户临时段
10.10.4 失控进程
10.10.5双任务研究
10.112000年日期掩码
10.12事务控制功能
10.13有效的资源管理
10.13.1提交语句的频率
10.13.2利用PL/SQL的光标管理
10.14簇(Clusters)
10.14.1索引簇
10.14.2杂凑簇
10.15PL/SQL文件I/O
10.15.1文件句柄说明
10.15.2打开文件
10.15.3写文件
10.158154关闭文件
10.15.5把各段放到一起
10.16本章小结
10.17Oracle7.x说明
第11章 脚本和技巧
11.1备份数据库的技巧
11.2主备份阶段
11.3空间管理技巧
11.3.1区域监视
11.3.2连续空间的监视
11.3.3监视表空间的自由空间
11.4用户信息
11.5访问所有V$和DBA_字典视图
11.6设置共享池大小
11.7使用SGA中的数据库块缓冲区
11.8创建实例控制文件
11.9重命名某个表中的表列
11.10利用SQL写SQL
11.11重建存储对象
11.11.1重建软件包的代码
11.11.2重建过程和函数的代码
11.11.3编译全模式
11.12本章小结
11.13Oracle7.x说明
附录A 本书中使用过的表
附录B 对象管理
B.1访问一个Oracle8数据库
B.2SQL程序设计器
B.2.1数据库浏览器
B.2.2脚本生成器
B.3帮助调整进程
B.4联系地址
附录C 在NT上创建第二个数据库
· · · · · · (收起)
读后感
用户评价
这本书简直是数据库管理员的救星!我最近接手了一个超大型项目,数据量一天比一天惊人,查询速度慢得让人发指,用户投诉都要淹没我了。试用了很多市面上的优化工具和资料,总感觉抓不住重点,或者信息过于陈旧。直到我翻开这本《Oracle 8优化技术》,它简直是为我们这些在生产环境挣扎的人量身定做的。书中的讲解不是那种空泛的理论说教,而是直击痛点,比如如何通过深入分析AWR报告,快速定位到那个隐藏极深的慢SQL,并且提供了详尽的索引重建、分区策略调整的具体操作步骤和注意事项。特别是关于锁等待和死锁分析那几章,我按照书里的指导,成功梳理了一个困扰团队两周的并发问题,那感觉就像是找到了武功秘籍,瞬间打通了任督二脉。作者对Oracle 8i时代的一些经典优化技巧的描述,虽然时代久远,但其底层逻辑和思维方式在后续版本中依然有很强的指导意义,它教会我的不是“做什么”,而是“为什么这么做”。读完后,我感觉自己对性能调优的信心和深度都有了质的飞跃,对于任何一个面对海量数据挑战的DBA来说,这本书都是一本值得珍藏的案头宝典。
我必须承认,这是一本需要静下心来啃读的硬核技术书籍,它绝对不是那种可以让你在通勤路上快速浏览两页就觉得自己有所收获的“快餐读物”。它的语言风格非常严谨、专业,几乎每一句话都承载着具体的技术信息,对于初入数据库领域的新人来说,可能门槛稍高,甚至会感到晦涩难懂。但是,如果你已经具备了基本的SQL和数据库管理基础,这本书会像一座灯塔,照亮你前行中最迷茫的领域——性能调优的深水区。书中对**I/O子系统和内存管理**的论述尤其精彩,它不仅仅停留在配置参数的层面上,更深入到操作系统如何与Oracle交互,以及如何通过调整操作系统参数来最大化数据库吞吐量。我记得有一次系统I/O等待率居高不下,我尝试了所有Oracle内部参数调整都无效,后来参考书中关于磁盘调度算法和操作系统缓存机制的描述,调整了底层Linux配置,问题迎刃而解。这种跨界知识的整合和应用,是其他纯粹的数据库手册所不具备的深度。
这本书的编排结构显示出作者对知识体系构建的深思熟虑。它不像某些技术书籍那样将所有内容堆砌在一起,而是采用了“宏观诊断—中观分析—微观调整”的清晰路径。一开始从整体的系统瓶颈排查入手,让你建立起全局视野,知道在哪里花费最多的精力是值得的;随后深入到SQL层面,讲解了查询重写和连接顺序的精妙之处;最后才回到参数调整这个相对“低级”但又必不可少的环节。这种由表及里、层层递进的讲解方式,极大地降低了学习曲线的陡峭程度。特别是书中对**回滚段(Rollback Segments)和事务管理**的详尽阐述,在今天这个普遍使用自动撤销管理(Automatic Undo Management)的时代,反而成为了宝贵的知识财富,它帮助我理解了当前默认机制背后是如何权衡一致性和性能的。总而言之,它提供的不是一个过时的工具指南,而是一套穿越技术版本迭代的“优化内功心法”。
说实话,一开始我对这个书名有点犹豫,毕竟现在都用上19c甚至更高版本了,十二年前的书籍是不是有点“考古”的意味?但当我真正翻阅下去后,我发现自己完全错了。这本书的价值在于它构建了一个极其坚实和完备的“优化思维框架”。它没有过多纠缠于最新版本中那些眼花缭乱的新特性,而是将优化的核心——**成本基础优化器(CBO)的工作原理**——讲得透彻且富有洞察力。作者对于数据块读取、执行计划的解析逻辑的描述,那种层次分明的逻辑推导,让我终于明白了为什么有时候简单的`WHERE`子句调整能带来天壤之别的性能提升。它不是简单地告诉你“用Hint”,而是告诉你“在什么情况下,CBO会做出错误的选择,以及我们如何引导它回到正确的路径”。这本书的案例虽然可能基于较早的系统环境,但它提供的诊断思路和排错流程,是永恒不变的。我尤其欣赏其中关于统计信息收集和维护策略的章节,它让我重新审视了我们日常维护脚本的有效性,并发现了一些被我们忽略的性能陷阱。对于希望从“调优操作员”升级为“性能架构师”的工程师来说,这无疑是块垫脚石。
读完此书,我最大的感受是它成功地将“艺术”和“科学”结合在了性能优化的实践中。很多优化书籍侧重于提供一套固定的“配方”,告诉你CPU高了就增加PGA,I/O满了就更换存储。而《Oracle 8优化技术》则更像是在教你如何“观察”和“诊断”一个复杂的生命体。它花了大量的篇幅来讲解**执行计划的读取顺序、代价模型估算的偏差来源**,这些都是非常底层、非常“内幕”的知识。作者的叙述充满了经验主义的智慧,比如如何通过观察SQL执行时的物理读写次数,来反推索引选择性是否合理,这种直觉的培养远比死记硬背参数值重要得多。对于我们这些常年和遗留系统打交道的人来说,经常需要面对没有源码可查、只有执行计划的“黑盒”进行优化,这本书提供的这套系统性的诊断工具箱,简直是太及时雨了。它让我明白,优化不是一味地追求“零等待”,而是要在业务需求和系统资源之间找到那个微妙的平衡点。