本书介绍与 Oracle 数据库性能相关的方方面面,涵盖了 Oracle 的体系架构,其背后的运行机制包括事务、锁与闩、多版本并发,各种 Oracle 高级特性如分区、并行执行、直接路径操作,以及大数据导入 / 导出性能优化,并用具体的例子来解释每个特性,它是如何工作的、其限制是什么。
本书用通俗易懂的方式介绍如何理解并掌握 Oracle SQL 执行计划,如何高效地掌握 Oracle SQL 性能分析与优化,这是摆在众多开发人员面前的两座大山。
本书不仅是从 Oracle 数据库与 SQL 优化本身的角度探讨高性能架构设计,更重要的是从整个应用层、综合中间件角度考虑各特性是否适合采用 Oracle 实现,如何在 Java 及 JDBC、 MyBatis 中优化。为此多个章节专门探讨 Oracle 不擅长的特性,以及如何在 Java 和中间件中更好地实现它们。
本书适合具有一定 Oracle 数据库经验的开发人员和数据库管理员阅读。
张君华,金融证券企业级系统架构师,曾负责多省商品清算所架构设计,新一代基金登记过户系统架构设计,拥有丰富的一线金融系统架构设计和性能优化实战经验。主要研究方向包括中台建设、微服务、云原生架构、Oracle&MySQL&PostgreSQL、分布式并行清算、MPP等。
第 1 章? 实现高性能系统的基础?1
1.1 何为高性能2
1.2 为什么仍需要高性能设计 4
1.3 直到系统跑不下去了才去重构 5
1.4 保持高性能需要持续维护 6
1.5 系统性能低下的原因 7
1.6 影响系统性能的合理因素13
1.7 基准性能测试15
1.8 高性能系统设计原则17
第 2 章? 规划性能友好的架构23
2.1 典型系统架构 24
2.2 分布式架构的挑战28
2.3 何为友好的架构设计 30
2.4 尽早确定具体技术栈和接口规范 36
2.5 确定可用的特性和软件版本38
2.6 开放思路43
2.7 普通商用服务器的当前现状46
2.8 虚拟化和云主机的影响 56
2.9 限制性能友好技术架构的原因 56
2.10 按照规范执行后,性能和扩展性还是不理想 58
2.11 多租户应用的挑战59
第 3 章? 理解 Oracle 运行机制61
3.1 基于磁盘数据库的弱项 62
3.2 花 100 万元买来当摆设65
3.3 选择标准版还是企业版.66
3.4 Oracle 体系架构概览 68
3.5 Oracle 事务79
3.6 多版本并发控制90
3.7 Redo 日志93
3.8 Undo 日志107
第 4 章? 高效 Oracle 设计114
4.1 设计良好的 Oracle 表 115
4.2 除了常规表外还有哪些选择126
4.3 深入理解 Oracle 索引 131
4.4 深入理解分区151
4.5 深入理解 Oracle 并行执行161
4.6 直接路径操作 170
4.7 深入理解 Oracle 内存列式存储174
4.8 熟悉分析函数180
4.9 不建议使用 Oracle 实现的场景182
第 5 章? 高并发和锁186
5.1 各种类型的高并发187
5.2 影响并发性的因素189
5.3 锁 - 共享资源访问控制机制194
5.4 Oracle 中的锁197
5.5 Java 中的并发访问控制210
5.6 分布式锁的实现 238
5.7 选择正确的锁实现方式244
第 6 章? 应用层高性能设计247
6.1 领域模型、数据库模型和 Java 类248
6.2 把掌握和维护中间件重视起来252
6.3 充分利用各级缓存253
6.4 JDBC、 OCI 优化257
6.5 最小化网络交互263
6.6 分页查询优化273
6.7 统一模式功能使用 AOP277
6.8 通知型功能使用消息队列284
6.9 日志优化 285
6.10 根据上下文自适应优化 286
6.11 核心逻辑避免通用代码生成.290
6.12 该用 PL/SQL 时不要故意避开292
第 7 章? Oracle 实例与系统优化295
7.1 Oracle 实例优化概述 296
7.2 内存优化297
7.3 存储优化303
7.4 初始化参数优化310
7.5 其他 Oracle 实例优化322
7.6 高可用 / 可恢复性相关性能影响328
7.7 Linux 优化 .333
第 8 章? 系统性能分析与诊断338
8.1 整体性能监控与分析 339
8.2 Linux 性能分析343
8.3 Java 性能分析348
8.4 Oracle 实例性能分析355
8.5 Oracle 典型等待事件分析370
第 9 章? 精通执行计划分析411
9.1 SQL 内部执行过程 412
9.2 SQL 性能分析的关键.414
9.3 Oracle 性能分析工具 415
9.4 高效掌握执行计划421
9.5 Oracle 执行计划精解 427
9.6 其他执行计划相关要点450
第 10 章? Oracle?SQL 性能分析与优化458
10.1 优化器459
10.2 统计信息476
10.3 直方图和绑定变量窥视498
10.4 深入理解 Oracle 优化器提示504
10.5 典型性能优化案例531
第 11 章? 大数据导入 / 导出优化544
11.1 常见的大数据处理场景介绍545
11.2 大数据导入 / 导出方案 547
11.3 其他优化578