暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 关于并发统计信息收集

原创 Asher.HU 2021-02-04
1697

Oracle数据库可以同时收集多个表或分区上的统计信息。

 注意: 并发 , 不是并行

            并发:是同时对多个对象操作

            并行 :是对同一个对象,多个进程操作

 


默认情况下,分区表的每个分区都是按顺序收集的。

收集模式并行统计启用,该数据库可以同时收集优化为一个模式多个表或多个分区或子分区表中的统计数据。通过使数据库充分使用多个处理器,并发可以减少收集统计信息所需的总时间。

注意:

并发统计信息收集模式不依赖于并行查询处理,但可以使用它。

 

13.3.7.1.1 DBMS_STATS  如何同时收集统计信息

Oracle数据库采用多种工具和技术来同时创建和管理多个统计信息收集作业。

该数据库使用以下内容:

  • Oracle Scheduler
  • Oracle数据库高级队列(AQ)
  • Oracle数据库资源管理器(资源管理器)

通过使用设置CONCURRENT首选项来启用并发统计信息收集DBMS_STATS.SET_GLOBAL_PREF

数据库运行尽可能多的并发作业。作业计划程序决定要同时执行的作业数和要排队的作业数。随着正在运行的作业完成,调度程序将出队并运行更多作业,直到数据库收集了所有表,分区和子分区的统计信息。作业的最大数量受JOB_QUEUE_PROCESSES初始化参数和可用系统资源的限制。

在大多数情况下,DBMS_STATS过程为每个表分区或子分区创建一个单独的作业。但是,如果分区或子分区为空或很小,则数据库可以将对象与其他小对象自动批处理到单个作业中,以减少作业维护的开销。

下图说明了在不同级别上作业的创建,其中表3是一个分区表,而其他表是未分区的。作业3充当表3的协调器作业,并为该表中的每个分区创建一个作业,并为表3的全局统计信息创建一个单独的作业。如果启用,则在分区作业完成后,数据库将从分区级统计信息中获取全局统计信息。

图13-1并发统计信息收集作业

也可以看看:


13.3.7.1.2并发统计信息收集和资源管理

DBMS_STATS程序包未显式管理并发统计信息收集作业使用的资源,这些资源是用户启动的统计信息收集调用的一部分。

因此,数据库可以在并发统计信息收集期间完全使用系统资源。为了解决这种情况,请使用资源管理器来限制并发统计信息收集作业所消耗的资源。必须启用资源管理器以同时收集统计信息。

系统提供的使用者组ORA$AUTOTASK注册了所有统计信息收集作业。您可以创建具有适当资源分配的资源计划,ORA$AUTOTASK以防止并发统计信息收集消耗所有可用资源。如果您缺乏自己的资源计划,并且选择不创建资源计划,则可以考虑使用系统提供的激活资源管理器DEFAULT_PLAN

注意:

ORA$AUTOTASK消费群与在维护窗口自动运行维护任务共享。因此,当激活并发以进行自动统计信息收集时,数据库将自动管理资源,而无需执行其他步骤。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论