1、Oracle数据库性能优化的艺术1 综述:优化是一个系统工程011 综述:优化是一个系统工程1.1 性能问题是一个系统工程1.2 性能改进的工程方法LOGOM.94275.CN1 综述:优化是一个系统工程1.1 性能问题是一个系统工程1.1.1 考虑性能问题的不同阶段1.1.2 考虑性能问题的不同方面1.1.3 性能架构中的问题分类1 综述:优化是一个系统工程1.2 性能改进的工程方法1.2.1 不要希望一步到位!011.2.2 有时也能一步到位?021.2.3 性能改进工作流程031.2.4 建立性能分析流程图041.2.5 编程中应尽量避免的问题051.2.6 紧急事件性能处理062 设计
2、与优化:物理数据库结构设计022 设计与优化:物理数据库结构设计2.1 数据库的特定运行平台2.2 物理设计与性能的关系2.5 索引的初始设计2.4 物理表设计的关注点2.3 应用框架与性能特征2 设计与优化:物理数据库结构设计2.4 物理表设计的关注点2.4.1 从逻辑模型到物理模型012.4.2 物理数据库设计的范围022.4.3 规范化的设计032.4.4 反规范化设计042.4.5 另类反规范化052.4.6 是否反规范化062.5 索引的初始设计2 设计与优化:物理数据库结构设计2.5.1 索引对象的基本结构2.5.2 索引的可选择性指标2.5.3 索引的双面性特征2.5.6 临时表
3、的使用2.5.5 索引的初始确定2.5.4 索引的类型3 部署与优化:准备基本运行环境033 部署与优化:准备基本运行环境3.1 性能问题在表象上的欺骗性3.2 理解数据库需要的系统资源3.3 小型机数据库部署准备3.4 X86系统数据库部署准备3 部署与优化:准备基本运行环境3.2 理解数据库需要的系统资源3.2.1 I/O资源的使用3.2.2 内存资源的使用3.2.3 CPU资源的使用3.2.4 解读内存与CPU状态3 部署与优化:准备基本运行环境3.3 小型机数据库部署准备CBA3.3.1 AIX的部署准备3.3.2 HP-UX的部署准备3.3.3 Solaris的部署准备3 部署与优化
4、:准备基本运行环境3.4 X86系统数据库部署准备A3.4.1 Linux系统的部署准备3.4.2 Windows系统的部署准备B4 部署与优化:数据库的优化部署044 部署与优化:数据库的优化部署4.1 实例初始配置注意点4.2 数据库空间使用关注4.5 数据导入与索引维护4.4 创建表时的性能因素4.3 表空间的创建管理5 实例优化:配置高效运行环境055 实例优化:配置高效运行环境5.1 实例配置与缓存优化5.2 SQL与缓存的使用5.3 PGA内存分配原则5.4 Oracle虚拟化关注点5.1 实例配置与缓存优化5 实例优化:配置高效运行环境5.1.2 主机内存分配原则5.1.4 缓存
5、的命中率问题5.1.6 精细化缓存的配置5.1.1 启用自动内存管理5.1.3 使用缓存顾问工具5.1.5 缓存命中率分析LOGOM.94275.CN5 实例优化:配置高效运行环境5.2 SQL与缓存的使用5.2.1 缓存优化5.2.2 查看数据缓存内容5.2.4 重做日志缓存问题5.2.3 共享池的效率检查5 实例优化:配置高效运行环境5.4 Oracle虚拟化关注点5.4.1 I/O问题上的关注点5.4.3 CPU问题上的关注点5.4.4 故障恢复问题的解决5.4.2 内存问题上的关注点6 存储优化:配置高效存储环境066 存储优化:配置高效存储环境 6.1 I/O问题的表象与内涵6.2.
6、1 使用逻辑卷技术6.2.2 设定存储参数6.2 存储介质的基础配置6.3.1 Orion的安装6.3.2 Orion的使用6.3 存储I/O能力探究7 综合部署:Oracle可靠性设置077 综合部署:Oracle可靠性设置7.3 加密表数据037.1 数据库设置的综合考虑017.4 加密表空间047.2 RAC下的设置027 综合部署:Oracle可靠性设置7.1 数据库设置的综合考虑7.1.1 设置数据库的内存使用7.1.3 设置数据库I/O模式7.1.5 使用闪回恢复区归档7.1.2 数据库的进程使用设置7.1.4 设置数据库的归档模式7.1.6 设置冗余控制文件7.1 数据库设置的综
7、合考虑7 综合部署:Oracle可靠性设置7.1.8 设置联机重做日志文件7.1.10 设置数据块校验和检查7.1.12 表空间和段管理方式7.1.7 保留控制文件信息7.1.9 设置联机重做日志组数7.1.11 打开性能时间统计7 综合部署:Oracle可靠性设置7.1 数据库设置的综合考虑7.1.13 设定多临时表空间和组7.1.14 使用自动撤销管理7.1.15 设置空间错误延时7.1.16 设置数据库闪回7 综合部署:Oracle可靠性设置7.2 RAC下的设置7.2.1 注册远程监听器的实例7.2.2 设置内部互联网络8 对象优化:大表分区方式部署088 对象优化:大表分区方式部署8
8、.1 分区技术适用的范围8.2 分区技术的基本概念8.3 分区表的管理操作8.4 分区的技术实现8 对象优化:大表分区方式部署8.2 分区技术的基本概念8.2.1 分区表的结构8.2.4 索引分区LOGOM.94275.CN8 对象优化:大表分区方式部署8.3 分区表的管理操作8.3.1 面向分区的管理8.3.2 面向分区的操作8.3.3 面向分区的恢复8.4 分区的技术实现8 对象优化:大表分区方式部署8.4.1 基础分区的实现8.4.2 组合分区的扩展8.4.3 扩展分区技术8.4.6 分区键数据的改变8.4.5 查看数据存储位置8.4.4 分区表的数据压缩LOGOM.94275.CN8
9、对象优化:大表分区方式部署8.4 分区的技术实现18.4.7 分区方式选择问题28.4.8 使用分区顾问工具9 索引定义:索引设置与执行计划099 索引定义:索引设置与执行计划9.1 索引对象9.2 Oracle优化器9.3 索引的技术指标9.6 创建虚拟的索引9.5 避免索引不作为9.4 索引与SQL优化9 索引定义:索引设置与执行计划9.7 创建压缩的索引9.8 索引的使用监测9.9 对分区表建立索引9 索引定义:索引设置与执行计划9.2 Oracle优化器CBA9.2.1 优化器的选择9.2.2 优化器的设置9.2.3 数据扫描问题9 索引定义:索引设置与执行计划9.3 索引的技术指标9
10、.3.1 索引的选择性9.3.2 索引的簇化率9.3.3 索引二元高度9.3.4 直方图的使用9 索引定义:索引设置与执行计划9.5 避免索引不作为9.5.2 Null值的比对1329.5.1 非等式运算9.5.3 函数的调用9 索引定义:索引设置与执行计划9.8 索引的使用监测CBA9.8.1 创建不可视索引9.8.2 索引的可用状态9.8.3 监测索引的使用10 实例效率:识别数据库内部作为1010 实例效率:识别数据库内部作为10.1 研究数据库运行效率10.2 操作系统的使用方法10.3 调整计划探讨10 实例效率:识别数据库内部作为10.1 研究数据库运行效率10.1.1 定义和量化
11、性能10.1.2 统计分析的要素10.1.3 性能状态的统计10.1.4 其他相关统计10 实例效率:识别数据库内部作为10.2 操作系统的使用方法0110.2.1 性能监视的手段10.2.2 使用vmstat02030410.2.3 使用iostat10.2.4 使用sar11 优化践行:数据库层面的优化1111 优化践行:数据库层面的优化11.1 Oracle自动统计11.2 使用AWR11.3 使用ADDMLOGOM.94275.CN11 优化践行:数据库层面的优化11.1 Oracle自动统计A11.1.1 统计数据的解释11.1.2 汇总的统计数据11.2 使用AWR11 优化践行:
12、数据库层面的优化11.2.1 在OEM中访问AWR11.2.2 用API管理AWR快照11.2.3 使用度量基线11.2.4 AWR工作报告DCAB11.3 使用ADDM11 优化践行:数据库层面的优化111.3.1 ADDM内部结构211.3.2 ADDM使用示例311.3.3 ADDM环境设置411.3.4 ADDM手工获得12 优化践行:操作系统层面的优化1212 优化践行:操作系统层面的优化12.1 平台的性能相关性12.2 分配和调度内存资源12.3 设置系统进程资源12.4 系统I/O资源的使用12.5 关闭系统中无用的服务12.6 监控主机资源使用LOGOM.94275.CN12 优化践行:操作系统层面的优化12.2 分配和调度内存资源12.2.1 使用大的内存页面0112.2.2 设定内存替换阈值12.2.3 设定内存空闲阈值0312.2.4 对应设置应用内存12 优化践行:操作系统层面的优化12.4 系统I/O资源的使用CBA12.4.1 优化使用异步I/O12.4.2 优化文件系统挂载12.4.3 优化应用I/O模式LOGOM.94275.CN12 优化践行:操作系统层面的优化12.6 监控主机资源使用112.6.1 服务器性能监控212.6.2 分析系统的性能写在最后13写在最后感谢聆听2020