Oracle中的一些优化参数说明

Tags:

👉 本文共约2626个字,系统预计阅读时间或需10分钟。

自动维护任务Automatic Segment Advisor和Automatic SQL Tuning Advisor

Automatic Segment Advisor和Automatic SQL Tuning Advisor两个自动维护任务,是系统自带进行空间优化和SQL优化建议的自动任务,在系统维护窗口执行,会占用大量的CPU和I/O系统资源,并且可能影响应用程序的运行性能。

检查参数自动任务auto space advisor,sql tuning advisor的状态是否设置为ENABLED,默认值为ENABLED。

将auto space advisor和sql tuning advisor自动维护任务状态设置为DISABLED。

内置审计功能

系统内置的审计功能和统一审计功能的审计结果默认存放在SYSTEM、SYSAUX表空间。系统内置和审计功能和统一审计功能是一项非关键性功能,并且在维护不当时会产生大量的数据存在SYSTEM和SYSAUX表空间。

系统内置的审计功能和统一审计功能通常会影响到应用程序的性能,并且在应用程序会话分配、释放频繁的环境还可能会影响到数据库的可用性。对于高负载的系统不应该打开数据库内置的审计功能和统一审计功能。

出于管理需要和安全需求对数据库操作进行审计,应该交由完备的安全生产管理规范,堡磊机,旁路审计设备等的结合来完成。对于高负载的系统不应该由数据库自身来对数据库操作进行审计。建议关闭数据库的传统审计和统一审计,并禁用统一审计的所有策略。

游标相关设置参数

如果数据库的最大打开游标数设置不足,则会引起进程的事务或查询失败。如果会话可缓存的最大游标数设置过小,则可能会影响应用的性能。如果游标的version count过高,可能导致latch或者mutex等待,当游标的version count超过特定上限后,应当舍弃这个游标并重新解析。

修改:

RAC相关的内存参数

实例的SGA使用超过200G内存时需要对一些内存参数进行的调优,包括:用于发送消息的tickets资源、LMS进程的数量、内存分配粒度大小、延迟降级锁的时长。

修改:

RAC的DRM相关参数

DRM 动态Master调整特性已知的bug较多,且如果Remaster发生超时可能导致脑裂。此外,DRM还通常会引起额外的gc * request/busy等等待事件,严重影响集群环境下的应用性能。

通过以下语句修改参数:

RAC环境DLM统计信息收集相关参数

DLM统计信息收集和管理Slave负责收集和管理与全局排队服务(GES)和全局缓存服务(GCS)相关的统计信息。仅当启用DLM统计信息收集时,此Slave才存在。DLM统计信息收集启用后,可能导致SCM0进程的CPU占用率100%,并严重影响集群上运行的应用程序的性能。

建议将隐含参数_dlm_stats_collect的值设置为0禁用DLM统计信息收集,通过以下语句修改参数:

注意:禁用dlm_stats_collect(即设置为0)没有负面影响。

实时DML统计信息相关参数

Oracle Database 19c引入了实时统计信息,它扩展了在线统计信息的收集范围,包括了常规的DML语句。现在,可以在常规DML操作期间“即时”收集统计信息。通常,统计信息是由传统的自动统计信息收集作业收集的,该作业在数据库维护窗口内运行-只是一天一次。但是对于数据变化频繁的表,统计信息可能在DBMS_STATS作业执行之间过时,因此,实时统计的Oracle 19c新功能可以帮助优化器为此类数据变化频繁的表生成更优化的计划。批量加载操作将收集所有必要的统计信息(Oracle 19c之前的行为)-但是,实时统计信息仅收集必要的统计信息,因此不能取代传统的统计信息。

可以设置这个参数到 "FALSE" 来禁止实时统计信息的收集,通过以下语句修改参数:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

注意:禁用_optimizer_gather_stats_on_conventional_dml(即设置为FALSE)没有负面影响。对于统计信息易失表,应当在有代表性数据量和数据分布的时段收集统计后,锁定表和索引的统计信息,并制定统计信息易失表手工收集统计信息的策略。

表达式使用情况统计信息相关参数

12.2数据库中默认启用了 Expression statistics monitoring 功能。对于某些特定的应用程序,这可能会导致 SYSAUX 空间使用激增。

12.2为新优化器功能而引入了 Monitoring expression statistics 的操作,以便在SQL执行中收集表达式使用情况统计信息。

监视功能由参数“_column_tracking_level”控制。

默认情况下 Monitoring expression statistics 已启用,这有时会导致SYSAUX 空间使用激增。

监视功能由参数“_column_tracking_level”控制。将参数设置为17来禁止表达式使用情况统计信息的收集,通过以下语句修改参数:

要从表中清除数据请执行以下SQL:

加载期间在线收集索引统计信息相关参数

Oracle Database 19c引入了在加载期间在线收集索引统计信息功能,在全局分区索引维护活动期间,尽管禁用了异步全局索引维护功能,但此功能在执行过程 SYS.DBMS_STATS.POSTPROCESS_INDSTATS 时会导致库缓存锁定等待事件。此过程用于在线收集索引统计信息并更新字典。在线收集索引统计信息时会发生库缓存锁定。这是从 19c 开始引入的一个新特性,用于在加载期间在线收集索引统计信息。

可以设置这些参数设置为 "FALSE" 来禁止加载期间在线索引统计信息的收集,通过以下语句修改参数:

可能影响性能和可用性的Event

设置60025事件,解决JDBC连接池或长JDBC连接不断开临时表空间不释放问题,解决此问题的补丁默认安装,但是没用启用,需要设置60025 EVENT来启用。

参考:

How to Release Temporary LOB Segments without Closing the JDBC Connection (文档 ID 1384829.1)

How to Release the Temp LOB Space and Avoid Hitting ORA-1652 (文档 ID 802897.1)

28401事件用于关闭11g版本开始的数据库中用户持续输入错误密码时的延迟用户验证特性,避免用户持续输入错误密码时产生大量的row cache lock或library cache lock等待,严重时使数据库完全不能登录。

10949事件用于关闭11g版本开始的自动serial direct path read特性,避免出现过多的直接路径读,消耗过多的IO资源。

10503事件,设置绑定变量分级,最小分配长度为2000。避免绑定变量过多且长度不一,生成过多子游标

总结

1、需要根据自己的数据库环境自行斟酌修改

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部