新書推薦:
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
66.1
《
周易
》
售價:HK$
44.6
《
东南亚的传统与发展
》
售價:HK$
67.2
《
乾隆制造
》
售價:HK$
87.4
《
资治通鉴臣光曰辑存 资治通鉴目录(司马光全集)(全二册)
》
售價:HK$
304.4
《
明代社会变迁时期生活质量研究
》
售價:HK$
316.2
《
律令国家与隋唐文明
》
售價:HK$
76.7
《
现代吴语的研究(中华现代学术名著3)
》
售價:HK$
65.0
編輯推薦:
性能优化是每个DBA说不出的痛,也是难点。本书针对此现状,围绕性能调优这一主线,由浅入深地介绍了常见的Oracle数据库性能问题。每节分析一个具体的性能问题,并全部采用“问题描述”—“解决方案”—“工作原理”这种独特的介绍风格,针对性强,方便读者理解和查阅。同时,读者会发现作者从创建数据库伊始就未雨绸缪,在管理数据库的过程中更是时刻将改善数据库性能放在首位。
本书三位作者都是经验丰富的Oracle数据库管理员,并且合作撰写过其他几本广受好评的Oracle数据库管理图书,在数据库性能调优方面颇有心得。作者不吝将多年的实践经验和智慧感悟汇集成册,与读者分享。读完本书,读者在解决数据库性能问题时,就能做到有的放矢,思路开阔。
內容簡介:
三位经验丰富的顶级Oracle DBA联手为读者呈现这本Oracle数据库性能优化攻略。《Oracle Database 12c性能优化攻略》由表及里地深入分析了造成Oracle数据库性能缓慢的各种原因,然后给出标本兼治的性能调优方案。作者将多年的实践经验和个人智慧与读者分享,帮助读者诊治影响数据库性能的各种疑难杂症。
《Oracle Database 12c性能优化攻略》可帮助数据库管理员解决各种Oracle数据库性能问题。
關於作者:
Sam Alapati Oracle ACE,现为Cash America International公司的高级数据库架构师,并先后在ATT和Oracle等公司担任过数据库管理员。Oracle公司OCP考试官方教材编写者,拥有Oracle OCP 12c证书。Alapati很早就开始接触数据库,包括20世纪80年代中期的Ingres关系型数据库管理系统。他还精通Microsoft SQL Server、Sybase和IBM DB2数据库管理系统。
Darl Kuhn 现为Oracle公司的高级数据库管理员。他的著作涵盖若干IT领域,包括SQL、性能调优、Linux、备份与恢复、RMAN以及数据库管理。同时他还在雷吉斯大学讲授Oracle课程。Darl还是落基山Oracle用户组织的DBA志愿者。
Bill Padfield Oracle认证专家,就职于科罗拉多州丹佛市一家大型电信公司,担任首席数据库管理员,协助管理一个由超过100个数据库组成的大型数据仓库。他从1985年开始涉足IT领域,从事Oracle数据库管理工作也已有超过16年的时间。Bill也任教于雷吉斯大学,为研究生讲授数据库课程。
朱浩波 博士,毕业于天津大学,现就职于青岛海关。图灵资深翻译,已独立完成译作5本,150余万字。目前主要研究兴趣为云计算环境下的大数据应用。
目錄 :
目 录
第1章 优化表性能 1
攻略1-1 创建具有最优性能的数据库 2
攻略1-2 创建具有最优性能的表空间 6
攻略1-3 匹配表类型与业务需求 8
攻略1-4 选择有益于性能的表特性 9
攻略1-5 恰当选择数据类型 10
攻略1-6 在创建数据表时避免盘区分配延迟 15
攻略1-7 数据加载速度最大化 17
攻略1-8 高效移除表中数据 19
攻略1-9 显示自动段顾问建议 21
攻略1-10 手工生成段顾问建议 24
攻略1-11 自动发送段顾问输出电子邮件 27
攻略1-12 重建跨多个数据块的数据行 28
攻略1-13 检测行链接和行迁移 32
攻略1-14 区分行迁移和行链接 34
攻略1-15 积极预防行迁移行链接的产生 35
攻略1-16 检测表中未使用的空间 36
攻略1-17 追踪检测到的位于高水位线下的空间 37
攻略1-18 使用DBMS_SPACE来检测位于高水位线之下的空间 38
攻略1-19 释放未使用的表存储空间 40
攻略1-20 压缩数据以进行直接路径加载 41
攻略1-21 为所有DML操作压缩数据 44
攻略1-22 在列级压缩数据 45
第2章 选择和优化索引 47
攻略2-1 理解B树索引 49
攻略2-2 选择需要建立索引的列 54
攻略2-3 创建主键约束和索引 57
攻略2-4 确保唯一列值 59
攻略2-5 为外键列创建索引 61
攻略2-6 决定何时使用组合索引 65
攻略2-7 通过压缩减少索引大小 67
攻略2-8 实现基于函数的索引 68
攻略2-9 在虚拟列上创建索引 70
攻略2-10 在多个进程并行插入时限制索引争夺 71
攻略2-11 触发索引对优化器的可见性 72
攻略2-12 创建支持星型架构的位图索引 74
攻略2-13 创建位图连接索引 77
攻略2-14 创建索引组织表 78
攻略2-15 监控索引使用 79
攻略2-16 索引创建速度最大化 80
攻略2-17 回收未使用的索引空间 82
第3章 优化实例内存 85
攻略3-1 自动内存管理 85
攻略3-2 管理多个缓冲池 88
攻略3-3 设定内存最小值 90
攻略3-4 监控内存调整操作 91
攻略3-5 优化内存使用 93
攻略3-6 调优PGA内存分配 94
攻略3-7 配置服务器查询缓存 97
攻略3-8 管理服务器结果缓存 99
攻略3-9 缓存SQL查询结果 101
攻略3-10 缓存客户端结果集 105
攻略3-11 缓存PLSQL函数结果 107
攻略3-12 配置Oracle数据库智能闪存缓存 110
攻略3-13 调节重做日志缓冲区 112
攻略3-14 限制PGA内存分配 113
第4章 监控系统性能 115
攻略4-1 实现AWR 116
攻略4-2 修改统计信息时间间隔和保存期限 118
攻略4-3 手工生成AWR报表 119
攻略4-4 通过企业管理器生成一份AWR报告 122
攻略4-5 为一条SQL语句生成AWR报告 124
攻略4-6 为数据库创建统计基线 125
攻略4-7 通过企业管理器管理AWR基线 129
攻略4-8 管理AWR统计信息库 131
攻略4-9 自动创建AWR基线 133
攻略4-10 快速分析AWR输出 134
攻略4-11 手工获取活动会话信息 136
攻略4-12 从企业管理器中获取ASH信息 140
攻略4-13 从数据字典中获取ASH信息 142
第5章 最小化系统资源争夺 145
攻略5-1 理解响应时间 145
攻略5-2 确定引起最多等待的SQL语句 148
攻略5-3 分析等待事件 149
攻略5-4 理解等待事件的分类 150
攻略5-5 检查会话等待 151
攻略5-6 按类型检查等待事件 153
攻略5-7 解决缓冲区忙等待 155
攻略5-8 解决日志文件同步等待 157
攻略5-9 被另一个会话读取等待事件的最小化 158
攻略5-10 减少直接路径读取等待事件 160
攻略5-11 恢复写入器等待最小化 161
攻略5-12 找出谁持有阻塞锁 162
攻略5-13 确定被阻塞和引起阻塞的会话 164
攻略5-14 处理引起阻塞的锁 166
攻略5-15 确定被锁定的对象 167
攻略5-16 解决enq:TM锁资源争夺 168
攻略5-17 确定最近被锁住的会话 170
攻略5-18 分析数据库中最近的等待事件 173
攻略5-19 确定由于锁定所花费的等待时间 174
攻略5-20 锁存器争夺的最小化 176
第6章 分析操作系统性能 180
攻略6-1 检测磁盘空间问题 182
攻略6-2 确定系统瓶颈 185
攻略6-3 确定消耗服务器资源最多的进程 187
攻略6-4 检测CPU瓶颈 189
攻略6-5 确定CPU和内存瓶颈 190
攻略6-6 确定IO瓶颈 191
攻略6-7 检测网络密集型进程 194
攻略6-8 将一个资源密集型进程映射到一个数据库进程 196
攻略6-9 终止一个资源密集型进程 198
第7章 检修数据库 201
攻略7-1 确定最优的撤销保留时间 201
攻略7-2 找出是什么消耗了最多的撤销空间 206
攻略7-3 解决ORA-01555错误 207
攻略7-4 监控临时表空间使用率 209
攻略7-5 确定是谁在使用临时表空间 210
攻略7-6 解决“无法扩展临时数据段”错误 212
攻略7-7 解决打开游标错误 213
攻略7-8 解决被挂起的数据库问题 215
攻略7-9 激活自动诊断库命令解释器 219
攻略7-10 从ADRCI中来查看报警日志 223
攻略7-11 使用ADRCI查看事件 225
攻略7-12 将事件打包发给Oracle技术支持团队 227
攻略7-13 运行一次数据库健康检查 228
攻略7-14 创建SQL测试用例 230
攻略7-15 生成一份AWR报告 233
攻略7-16 比较两个阶段的数据库性能 235
攻略7-17 分析一份AWR报告 237
第8章 创建高效的SQL 241
攻略8-1 获取一张表中的所有数据行 242
攻略8-2 获取一张表中的部分数据行 243
攻略8-3 通过相对应的行来连接表 245
攻略8-4 在没有相对应数据行的情况下连接表 248
攻略8-5 构造简单的子查询 251
攻略8-6 构建相关子查询 254
攻略8-7 比较两个表找出缺失的数据行 256
攻略8-8 比较两张表找出匹配的数据行 258
攻略8-9 将相似SELECT语句的结果集合并 259
攻略8-10 查找一定范围内的值 261
攻略8-11 处理空值 264
攻略8-12 搜索部分列值 267
攻略8-13 重用共享池中的SQL语句 270
攻略8-14 避免偶然的全表扫描 275
攻略8-15 创建高效的临时视图 276
攻略8-16 避免使用NOT子句 279
攻略8-17 控制事务大小 281
第9章 SQL手工调优 284
攻略9-1 显示查询的执行计划 285
攻略9-2 定制执行计划输出 287
攻略9-3 图形化显示执行计划 290
攻略9-4 解读一份执行计划 291
攻略9-5 监控运行时间较长的SQL语句 294
攻略9-6 确定当前正在执行的耗占资源的SQL语句 295
攻略9-7 查看当前正在运行的SQL语句的统计信息 296
攻略9-8 监控一个SQL执行计划的处理过程 299
攻略9-9 确定过去执行的SQL语句中最耗占资源的语句 302
攻略9-10 比较系统修改后的SQL性能 304
第10章 追踪SQL执行 309
攻略10-1 环境准备 309
攻略10-2 追踪一个特定的SQL语句 311
攻略10-3 在你所拥有的会话中启用追踪 313
攻略10-4 找到追踪文件 314
攻略10-5 检查原始SQL追踪文件 315
攻略10-6 分析Oracle追踪文件 316
攻略10-7 使用TKPROF设置追踪文件的格式 317
攻略10-8 分析TKPROF输出 318
攻略10-9 使用Oracle追踪分析器分析追踪文件 321
攻略10-10 追踪一个并行查询 324
攻略10-11 追踪特定的并行查询进程 325
攻略10-12 在RAC系统中追踪并行查询 326
攻略10-13 合并多个追踪文件 327
攻略10-14 找出正确的会话来进行追踪 328
攻略10-15 追踪一个SQL会话 329
攻略10-16 通过进程ID来追踪会话 330
攻略10-17 追踪多个会话 331
攻略10-18 追踪一个实例或数据库 332
攻略10-19 为会话生成事件10046追踪 333
攻略10-20 为实例生成事件10046追踪 335
攻略10-21 在一个正在运行的会话上设置追踪 336
攻略10-22 登录之后启用会话追踪 337
攻略10-23 追踪优化器的执行路径 337
攻略10-24 生成Oracle错误自动追踪 340
攻略10-25 追踪后台进程 341
攻略10-26 启用Oracle监听器追踪 342