优化活动
- 性能规划:建立环境的过程,包括硬件、软件、操作系统、网络基础结构等等。
- 实例优化:对 Oracle 数据库参数和操作系统参数进行实际调整,从而使Oracle 数据库获得更好的性能
- SQL 优化涉及到使应用程序提交有效的SQL。
性能规划
- 投资选项
- 系统体系结构
- 可伸缩性
- 应用程序设计原理
- 工作量测试、建模和实施
- 部署新的应用程序
实例优化
- 概述
- 有定义合理的目标。
- 将内存分配至数据库结构
- 考虑数据库中各部分的 I/O 要求
- 优化操作系统以获得最佳数据库性能
- 性能优化方法
- 在优化实例之前检查 OS 统计信息以及一般的计算机运行状况,以确保问题出现在数据库中。
- 从上至下进行优化。从优化设计开始,然后优化应用程序,再优化实例。
- 优化那些潜在好处最大的方面。
-
- 确定最长的等待时间
- 确定最大的服务次数
- 达到目标时停止优化
- 收集统计信息:描述有关数据库和数据库中对象的详细信息的数据集
- 类型
- 系统统计信息:为查询优化程序描述系统的硬件特征,使用 DBMS_STATS.GATHER_SYSTEM_STATS 过程
- 优化程序统计信息:GATHER_STATS_JOB
- 统计信息收集方法
- 使用 GATHER_STATS_JOB 自动收集
- 使用 DBMS_STATS 程序包手动收集
- 通过设置数据库初始化参数进行收集
- OPTIMIZER_DYNAMIC_SAMPLING 参数控制优化程序执行的动态采样的级别。
- STATISTICS_LEVEL 参数控制数据库中所有主要统计信息的收集或指导,并设置数据库的统计信息收集级别。
-
- BASIC(不建议):必须将TIMED_STATISTICS 设置为TRUE,以启用计时统计信息的收集
- TYPICAL和ALL:会自动收集数据库的计时系统统计信息
- TIMED_STATISTICS 参数还可以指示 Oracle 服务器搜集事件的等待时间。
- TIMED_OS_STATISTICS 参数指定时间间隔(秒),当客户机向服务器发送请求时或请求完成时,Oracle 将按照该时间间隔收集操作系统统计信息
- 通过从另一个数据库导入统计信息进行收集
- Oracle 等待事件
- 等待事件集合提供了由于各种原因而不得不等待或必须等待的会话或进程的有关信息
- V$EVENT_NAME 视图中列出了这些事件
- 类别
-
- 管理
- 应用程序
- 簇
- 提交
- 并发
- 配置
- 空闲
- 网络
- 其他
- 调度程序
- 系统 I/O 和用户 I/O
- 系统统计信息
- 等待事件统计信息:v$event_name
- 系统范围的统计信息:v$statname
- SGA 全局统计信息:v$sgastat
- 显示与会话有关的统计信息
- 查询 V$SESSION 可以显示每个已登录用户的当前会话信息
- 查询V$SESSION 或 V$SESSION_WAIT 来确定活动会话所等待的资源或事件
- V$SESSTAT视图中显示用户会话统计信息。
- V$SESSION_EVENT视图列出了会话等待事件的信息
- V$SESSTAT 视图和V$SYSSTAT 视图显示统计信息的累积值
- 显示与服务有关的统计信息
- V$SERVICE_EVENT:以每个事件为基础的每个服务的聚集等待计数和等待时间
- V$SERVICE_WAIT_CLASS:以等待类别为基础的每个服务的聚集等待计数和等待时间
- 故障排除和优化视图
- 字典视图
- DBMS_STATS 将填充视图中有关下列内容的列
- 区和块中的表数据存储:
- DBA_TABLES
- - DBA_TAB_COLUMNS
- 区和块中的簇数据存储
- DBA_CLUSTERS
- 区和块中的索引数据存储以及索引有效性
- DBA_INDEXES
- 非索引列和索引列的数据分布
- DBA_TAB_HISTOGRAMS
- 这些统计信息是静态的,直到再次执行 DBMS_STATS中的相应过程。
SGA 附加
- 诊断挂起或速度异常慢的数据库
- 直接访问 SGA 以监视性能
- V$SESSION
- V$SESSION_WAIT
- V$SYSTEM_EVENT
- V$SYSSTAT
- 使用 Enterprise Manager 进行挂起分析
AWR
- 概述
- 自动工作量资料档案库 (AWR) 是 SYS 拥有的永久性系统性能统计信息的集合。
- AWR 驻留在 SYSAUX 表空间中。
- 快照是在特定时间捕获并存储在 AWR 中的一组性能统计信息。快照用于计算统计信息的更改率
- 每个快照都用一个快照序列号 (snap_id) 进行标识,该序列号在 AWR 中是唯一的。
- 默认情况下,快照每 60 分钟生成一次。通过更改快照INTERVAL 参数可以调整此频率。
- AWR 快照基线
-
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE ( -
start_snap_id IN NUMBER ,
end_snap_id IN NUMBER ,
baseline_name IN VARCHAR2);
指导框架
- 概览
- 自动数据库诊断监视器 (ADDM):执行自上而下的实例分析,确定问题和潜在的原因,并提供修复问题的建议案。
- SQL 优化指导:提供优化SQL 语句的建议
- SQL 访问指导:处理方案问题并确定最佳数据访问路径
- PGA 指导:提供工作区域的详细统计信息,并根据工作量特征提供有关最佳使用程序全局区 (PGA) 内存的建议案
- SGA 指导:根据系统全局区(SGA) 中各个组件的访问模式,负责优化和建议 SGA 的大小。
- 段指导:监视对象空间问题并分析增长趋势。
- 还原指导:建议参数值和用于支持指定时间的闪回操作所需的额外空间量。
- 典型的指导优化会话
- 创建指导任务
- 调整适当的任务参数
- 执行分析。
- 检查结果。
- 手动调用 ADDM
- 相关链接-->指导中心-->ADDM-->选择起始时间和结束时间--->运行ADDM
- 使用 SQL 优化指导
- 概述
- 分析来源
- 顶级 SQL:分析当前活动的顶级 SQL 语句
- SQL 优化集:分析用户提供的一套 SQL 语句
- 快照:分析快照
- 基线:分析基线
- SQL 访问指导
- 概览
- 工作量说明
- SQL 语句
- SQL 优化集
- SQL 高速缓存内容
- 统计信息
- 方案名称
- 典型的 SQL 访问指导会话
- 相关链接-->指导中心-->SQL访问指导会话-->默认或从任务或模板继承选项
- 工作量来源
- 当前和最近的 SQL 活动:使用高速缓存中的当前SQL 作为工作量
- 从SQL 资料档案库中导入工作量:可以指定将先前创建的SQL 优化集作为工作量来源
- 用户定义的工作量;从表或视图中导入 SQL:可以接收不一定能够在当前数据库中运行的工作量的建议案。
- 从以下方案和表中创建假想工作量:提供允许指导搜索维表并生成工作量的方案
- 建议选项
- 类型
- 索引视图
- 实体化视图
- 仅评估:指导不生成新的建议,而是就现有结构的使用提出意见
- 指导模式
- 综合模式:搜索候选的大型池,以便得到最高质量的建议案
- 限制模式:指导执行速度很快,但是会限制候选建议案
- 高级选项
- 复查建议
异步 COMMIT
- 概览
- 默认 COMMIT 行为是一直等待,直到将重做操作保存在重做日志文件中。
- 可以将默认行为更改为“not wait(不等待)
- 异步 COMMIT 对于较高的事务处理吞吐量是非常有用
- 事务处理可能会丢失
-
- 计算机崩溃
- 重做日志文件出现文件 I/O 问题
- 使用
- 可能的组合
- IMMEDIATE、WAIT(这是默认值)
- IMMEDIATE、NOWAIT
- BATCH、WAIT
- BATCH、NOWAIT
- IMMEDIATE 选项确保事务处理提交的重做可立即通过LGWR 进程写出;即,启动 I/O 操作。
- BATCH 选项表示重做已缓冲但没有启动I/O 操作。但是,仍允许 LGWR 在其控制的时间内将重做写入到磁盘。
- WAIT 选项确保在将与提交对应的重做保存到联机重做日志中前,提交不会返回。
- 使用NOWAIT选项时,提交返回时不需要等待将提交重做写入到联机重做日志。
- 系统层或会话层的示例
- ALTER SYSTEM SET COMMIT_WRITE = IMMEDIATE, WAIT
- ALTER SESSION SET COMMIT_WRITE = IMMEDIATE, NOWAIT
- COMMIT 语句示例
- COMMIT WRITE BATCH WAIT
- COMMIT WRITE BATCH NOWAIT