Oracle Database 11g性能优化攻略

出版时间:2013-4  出版社:人民邮电出版社  作者:[美] Sam R. Alapati,[美] Darl Kuhn,[美] Bill Padfield  译者:朱浩波  
Tag标签:无  

内容概要

《Oracle Database 11g性能优化攻略》由三位经验丰富的顶级OracleDBA再次联手,为读者呈现这本Oracle数据库性能优化攻略。《Oracle Database 11g性能优化攻略》由表及里地深入分析了造成Oracle数据库性能缓慢的各种原因,然后给出标本兼治的性能调优方案。作者将多年的实践经验和个人智慧与读者分享,帮助读者诊治影响数据库性能的各种疑难杂症。

作者简介

Sam R. Alapati    Oracle ACE,经验丰富的Oracle数据库管理员(Oracle Database11g OCP)。目前就职于得克萨斯州沃思堡的现金美国国际公司(Cash America International),担任高级数据库架构师和经理。撰写过多本数据库管理方面的图书,包括《Oracle Database 11g数据库管理艺术》、《Oracle Database 11g性能优化攻略》等。Darl Kuhn拥有美国科罗拉多州立大学研究生学位,Oracle公司高级数据库管理员。负责数据库管理的各个方面,从设计、开发到产品支持。同时,他还在美国科罗拉多的雷吉斯大学讲授高级数据库课程。Darl还是洛矶山Oracle用户组的DBA志愿者。Bill PadfieldOracle认证专家,具有近30年的IT行业从业将于,以及14年以上的Oracle数据库管理经验。目前他在科罗拉多州丹佛市的一家大型电信公司担任首席数据库管理员,协助控制和管理由75个数据库组成的大型数据仓库环境。同时,Bill也任教于雷吉斯大学,给研究生讲授数据库课程。

书籍目录

第1章 优化表性能 1 攻略1—1 创建具有最优性能的数据库 1 攻略1—2 创建具有最优性能的表空间 4 攻略1—3 匹配表类型与业务需求 6 攻略1—4 选择有益于性能的表特性 8 攻略1—5 在创建数据表时避免盘区分配延迟 9 攻略1—6 数据加载速度最大化 11 攻略1—7 高效移除表中数据 13 攻略1—8 显示自动段顾问建议 15 攻略1—9 手工生成段顾问建议 18 攻略1—10 自动发送段顾问输出电子邮件 22 攻略1—11 重建跨多个数据块的数据行 23 攻略1—12 释放未使用的表存储空间 26 攻略1—13 压缩数据以进行直接路径加载 27 攻略1—14 为所有DML操作压缩数据 30 攻略1—15 在列级压缩数据 31 攻略1—16 监控表使用率 33 第2章 选择和优化索引 35 攻略2—1 理解B树索引 36 攻略2—2 选择需要建立索引的列 41 攻略2—3 创建主键索引 44 攻略2—4 创建唯一索引 45 攻略2—5 为外键列创建索引 48 攻略2—6 何时使用组合索引 49 攻略2—7 通过压缩减少索引大小 51 攻略2—8 实现基于函数的索引 52 攻略2—9 在虚拟列上创建索引 54 攻略2—10 平衡索引的I/O 56 攻略2—11 新增一个索引而不影响已有的应用 57 攻略2—12 创建支持星型架构的位图索引 58 攻略2—13 创建位图连接索引 59 攻略2—14 创建索引组织表 60 攻略2—15 监控索引使用 62 攻略2—16 索引创建速度最大化 63 攻略2—17 回收未使用的索引空间 64 第3章 优化实例内存 68 攻略3—1 自动内存管理 68 攻略3—2 管理多个缓冲池 71 攻略3—3 设定内存最小值 73 攻略3—4 监控内存调整操作 74 攻略3—5 优化内存使用 75 攻略3—6 调优PGA内存分配 77 攻略3—7 配置服务器查询缓存 79 攻略3—8 管理服务器结果缓存 81 攻略3—9 缓存SQL查询结果 83 攻略3—10 缓存客户端结果集 86 攻略3—11 缓存PL/SQL函数结果 88 攻略3—12 配置Oracle数据库智能闪存缓存 91 攻略3—13 调节重做日志缓冲区 93 第4章 监控系统性能 95 攻略4—1 实现AWR 95 攻略4—2 修改统计信息时间间隔和保存期限 97 攻略4—3 手工生成AWR报表 99 攻略4—4 通过企业管理器生成一份AWR报告 101 攻略4—5 为一条SQL语句生成AWR报告 102 攻略4—6 为数据库创建统计基线 103 攻略4—7 通过企业管理器管理AWR基线 106 攻略4—8 管理AWR统计信息库 109 攻略4—9 自动创建AWR基线 110 攻略4—10 快速分析AWR输出 112 攻略4—11 手工获取活动会话信息 113 攻略4—12 从企业管理器中获取ASH信息 117 攻略4—13 从数据字典中获取ASH信息 119 第5章 最小化系统资源争夺 123 攻略5—1 理解响应时间 123 攻略5—2 确定引起最多等待的SQL语句 126 攻略5—3 分析等待事件 126 攻略5—4 理解等待事件的分类 128 攻略5—5 检查会话等待 128 攻略5—6 按类型检查等待事件 130 攻略5—7 解决缓冲区忙等待 132 攻略5—8 解决日志文件同步等待 134 攻略5—9 被另一个会话读取等待事件的最小化 135 攻略5—10 减少直接路径读取等待事件 136 攻略5—11 恢复写入器等待最小化 137 攻略5—12 找出谁持有阻塞锁 138 攻略5—13 确定被阻塞和引起阻塞的会话 140 攻略5—14 处理引起阻塞的锁 141 攻略5—15 确定被锁定的对象 142 攻略5—16 解决enq:TM锁资源争夺 143 攻略5—17 确定最近被锁住的会话 145 攻略5—18 分析数据库中最近的等待事件 147 攻略5—19 确定由于锁定所花费的等待时间 149 攻略5—20 锁存器争夺的最小化 151 攻略5—21 通过Oracle企业管理器来管理锁 154 攻略5—22 通过Oracle企业管理器分析等待 155 第6章 分析操作系统性能 157 攻略6—1 检测磁盘空间问题 159 攻略6—2 确定系统瓶颈 161 攻略6—3 确定系统瓶颈(Solaris) 163 攻略6—4 确定消耗服务器资源最多的进程(top) 164 攻略6—5 确定CPU和内存瓶颈 166 攻略6—6 确定I/O瓶颈 167 攻略6—7 识别网络密集型进程 170 攻略6—8 检修数据库网络连接性 171 攻略6—9 将一个资源密集型进程映射到一个数据库进程 172 攻略6—10 终止一个资源密集型进程 175 第7章 检修数据库 177 攻略7—1 确定最优的撤销保留时间 177 攻略7—2 找出是什么消耗了最多的撤销空间 181 攻略7—3 解决ORA—01555错误 182 攻略7—4 监控临时表空间使用率 184 攻略7—5 确定是谁在使用临时表空间 185 攻略7—6 解决“无法扩展临时数据段”错误 186 攻略7—7 解决打开游标错误 188 攻略7—8 解决被挂起的数据库问题 190 攻略7—9 激活自动诊断库命令解释器 194 攻略7—10 从ADRCI中来查看报警日志 198 攻略7—11 使用ADRCI查看事件 200 攻略7—12 将事件打包发给Oracle技术支持团队 202 攻略7—13 运行一次数据库健康检查 203 攻略7—14 创建SQL测试用例 205 攻略7—15 生成一份AWR报告 208 攻略7—16 比较两个阶段的数据库性能 210 攻略7—17 分析一份AWR报告 212 第8章 创建高效的SQL 216 攻略8—1 获取一张表中的所有数据行 216 攻略8—2 获取一张表中的部分数据行 218 攻略8—3 通过相对应的行来连接表 220 攻略8—4 在没有相对应数据行的情况下连接表 222 攻略8—5 构造简单的子查询 224 攻略8—6 构建相关子查询 228 攻略8—7 比较两个表找出缺失的数据行 230 攻略8—8 比较两张表找出匹配的数据行 231 攻略8—9 将相似SELECT语句的结果集合并 232 攻略8—10 查找一定范围内的值 234 攻略8—11 处理空值 237 攻略8—12 搜索部分列值 240 攻略8—13 重用共享池中的SQL语句 243 攻略8—14 避免偶然的全表扫描 246 攻略8—15 创建高效的临时视图 248 攻略8—16 避免使用NOT子句 250 攻略8—17 控制事务大小 252 第9章 SQL手工调优 255 攻略9—1 显示查询的执行计划 256 攻略9—2 定制执行计划输出 258 攻略9—3 图形化显示执行计划 261 攻略9—4 解读一份执行计划 262 攻略9—5 监控运行时间较长的SQL语句 264 攻略9—6 确定当前正在执行的耗占资源的SQL语句 265 攻略9—7 查看当前正在运行的SQL语句的统计信息 266 攻略9—8 监控一个SQL执行计划的处理过程 269 攻略9—9 确定过去执行的SQL语句中最耗占资源的语句 271 攻略9—10 比较系统修改后的SQL性能 273 第10章 追踪SQL执行 278 攻略10—1 环境准备 278 攻略10—2 追踪一个特定的SQL语句 280 攻略10—3 在你所拥有的会话中启用追踪 282 攻略10—4 找到追踪文件 283 攻略10—5 检查原始SQL追踪文件 284 攻略10—6 分析Oracle追踪文件 285 攻略10—7 使用TKPROF设置追踪文件的格式 286 攻略10—8 分析TKPROF输出 287 攻略10—9 使用Oracle追踪分析器分析追踪文件 290 攻略10—10 追踪一个并行查询 293 攻略10—11 追踪特定的并行查询进程 294 攻略10—12 在RAC系统中追踪并行查询 295 攻略10—13 合并多个追踪文件 296 攻略10—14 找出正确的会话来进行追踪 297 攻略10—15 追踪一个SQL会话 297 攻略10—16 通过进程ID来追踪会话 299 攻略10—17 追踪多个会话 300 攻略10—18 追踪一个实例或数据库 301 攻略10—19 为会话生成事件10046追踪 302 攻略10—20 为实例生成事件10046追踪 304 攻略10—21 在一个正在运行的会话上设置追踪 304 攻略10—22 登录之后启用会话追踪 305 攻略10—23 追踪优化器的执行路径 306 攻略10—24 生成Oracle错误自动追踪 309 攻略10—25 追踪后台进程 310 攻略10—26 启用Oracle监听器追踪 311 攻略10—27 为数据卫士设置归档追踪 312 第11章 SQL自动调优 314 攻略11—1 显示自动SQL调优工作详细信息 316 攻略11—2 显示SQL自动调优建议 318 攻略11—3 生成SQL脚本来实现自动调优建议 322 攻略11—4 修改SQL自动调优特性 323 攻略11—5 禁用和启用SQL自动调优 325 攻略11—6 修改维护窗口属性 326 攻略11—7 创建SQL调优集对象 327 攻略11—8 查看AWR中的资源密集型SQL语句 328 攻略11—9 查看内存中的资源密集型SQL语句 330 攻略11—10 用AWR中高资源消耗的SQL来填充优化集 332 攻略11—11 用内存中高资源消耗的SQL来填充调优集 333 攻略11—12 将内存中所有SQL语句填充到SQL调优集 334 攻略11—13 显示SQL调优集的内容 335 攻略11—14 有选择地从SQL调优集中删除语句 337 攻略11—15 传输SQL调优集 338 攻略11—16 创建调优任务 340 攻略11—17 手工运行SQL调优顾问 342 攻略11—18 从数据库自动诊断监视器中获得SQL调优建议 345 第12章 执行计划优化与一致性 348 攻略12—1 创建并接受SQL概要 351 攻略12—2 自动接受SQL概要文件 354 攻略12—3 显示SQL概要文件信息 356 攻略12—4 禁用SQL概要文件 358 攻略12—5 删除SQL概要文件 360 攻略12—6 移动SQL概要文件 361 攻略12—7 自动增加计划基线 363 攻略12—8 为一条SQL语句创建计划基线 365 攻略12—9 为包含在SQL调优集中的SQL语句创建计划基线 366 攻略12—10 修改计划基线 368 攻略12—11 确认是否存在计划基线 370 攻略12—12 显示计划基线执行计划 371 攻略12—13 在计划基线中加入一个新的计划(扩展) 372 攻略12—14 禁用计划基线 375 攻略12—15 移除计划基线信息 376 攻略12—16 迁移计划基线 377 第13章 优化器配置 380 攻略13—1 选择优化器目标 380 攻略13—2 启用统计信息自动收集 381 攻略13—3 为统计信息收集设置首选参数 383 攻略13—4 手工生成统计信息 388 攻略13—5 锁定统计信息 389 攻略13—6 处理统计信息的缺失 390 攻略13—7 导出统计信息 392 攻略13—8 还原以前版本的统计信息 393 攻略13—9 收集系统统计信息 394 攻略13—10 验证新的统计信息 397 攻略13—11 强制优化器使用某个索引 399 攻略13—12 启用查询优化器特性 400 攻略13—13 阻止数据库创建柱状图 402 攻略13—14 不使用绑定变量提高性能 403 攻略13—15 理解自适应游标共享 406 攻略13—16 在表达式上创建统计信息 411 攻略13—17 为相关列创建统计信息 412 攻略13—18 自动创建列组 413 攻略13—19 维护分区表统计信息 415 攻略13—20 为大表并行收集统计信息 416 第14章 实现查询提示 419 攻略14—1 编写一个提示 419 攻略14—2 改变访问路径 420 攻略14—3 改变连接顺序 424 攻略14—4 改变连接方法 425 攻略14—5 改变优化器版本 428 攻略14—6 在快速响应和整体优化之间进行选择 428 攻略14—7 进行直接路径插入 430 攻略14—8 在视图中加入提示 432 攻略14—9 缓存查询结果 434 攻略14—10 将分布式查询引导到一个特定的数据库 437 攻略14—11 收集查询执行的扩展统计信息 441 攻略14—12 启用查询改写 442 攻略14—13 提升星型架构查询的性能 444 第15章 并行执行SQL 447 攻略15—1 为特定查询启用并行 447 攻略15—2 在创建对象时启用并行 451 攻略15—3 为已经存在的对象启用并行 452 攻略15—4 实现并行DML 453 攻略15—5 并行创建表 456 攻略15—6 并行创建索引 458 攻略15—7 并行重建索引 459 攻略15—8 并行移动分区 460 攻略15—9 并行拆分分区 461 攻略15—10 启用自动并行度 462 攻略15—11 检查并行解释计划 463 攻略15—12 监控并行操作 466 攻略15—13 找出并行进程中的瓶颈 468 攻略15—14 获取并行会话的详细信息 469 索引 471

章节摘录

版权页:   插图:   另一种在数据库中进行并行DML事务的方法就是使用DBMS—PARALLEL—EXECUTE PL/SQL包。尽管设置起来更复杂,但使用这个包运行并行事务具有一些很重要的优点。 总的事务被划分为多个块,每一个都有自己的提交点(commit point)。 事务可重新开始。 只会对相关行进行锁定。 减少了撤销(undo)的使用。 可以对如何划分工作进行更多的控制。可以有几种方法来划分工作: 按照列; 按照ROWID; 按照SQL语句。 显而易见,使用DBMS PARALLEL EXECUTE包的好处在于,对于大事务如何来运行有更多的控制权,并且增加了功能,更合理地使用了数据库资源。使用这个包最主要的缺点在于设置、安装和运行更复杂——但处理大数据量时很值得使用。 并行DML的限制条件 使用并行DML有大量的限制条件,即使是处理大数据,也需要理解这些限制。并行DML不能在下面这些环境中使用。 插入单独的数据行(使用VALUES子句)不能并行运行。 在一个事务中只能对一张表进行一次修改。 不能在具有触发器的表上运行。 具有某些特定约束的表可能不适合。 对于具有大对象(LOB)表中的列,并行DML功能会有限制。 对于临时表,并行DML功能会有限制。 分布式事务不能使用并行。 并行度 当提交了一个并行DML操作来执行,Oracle就会基于一系列的优先原则来确定对所提交的语句应该使用什么DOP值。理解这些原则很重要,这样才能为事务使用想要的DOP。 对于DML事务,Oracle使用下面的优先规则来确定DOP。 (1)检查在INSERT、UPDATE、MERGE或DELETE语句中是否指定了提示。 (2)检查是否有任何会话级的指令。 (3)检查目标对象上的对象级并行设置。 (4)选择语句(仅限于INSERT语句)的查询部分所使用的表或任何相关索引中,所指定的最大并行度。

编辑推荐

由三位经验丰富的顶级Oracle DBA联手打造。由表及里地深入分析Oracle数据库性能问题,给出标本兼治的性能调优方案。数据库性能疑难杂症各个击破。

图书封面

图书标签Tags

评论、评分、阅读与下载


    Oracle Database 11g性能优化攻略 PDF格式下载


用户评论 (总计7条)

 
 

  •   书还没时间看.大体看了一下目录.内容还是可以的.至于内容的深浅要看了才知道.给个满星吧.多少应该可以学点东西.
  •   本书从性能优化角度介绍了Oracle优化的方方面面,从现象、原因到解决的方法和脚本都提供了,对使用oracle的程序员和DBA都是非常有帮助的
  •   内容丰富,实例简洁。每个攻略都明确解决方案和工作原理,很适合有一定工作经验的童鞋。
  •   关于oracle调优的非常详尽的一本书,强烈推荐
  •   1.这书内容不错,我很喜欢,2.送的非常快,周日拍,周一就到货3.书质量也不错,很新
  •   挺不错的,纯正版,就是封皮有好几处挤压的划痕
  •   此书没有比较好的案例,只是一些概念性的东西,这些百度里面都有,什么地方不明白还没网上来的方便呢。只有有了好点的案例驱动才能更理解这些概念性的东西吧,不然买书都没什么意义了
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7