Oracle 统计信息

本文介绍了Oracle数据库的自动统计信息收集机制,包括自动收集统计信息的作业GATHER_STATS_JOB及其工作原理,以及如何停用该作业。此外,还详细阐述了统计信息的应用,如DBMS_STATS包的过程,收集的内容,如表统计、列统计和索引统计,并提供了相关SQL查询示例。同时,讨论了统计信息的存储位置和直方图的创建方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 自动收集Statistic

  • Oracle 的Automatic Statistics Gathering 是通过Scheduler 来实现收集和维护的。
  • 自动收集统计信息的Job GATHER_STATS_JOB 收集数据库所有对象的2种统计信息:
    (1)Missing statistics(统计信息缺失)
    (2)Stale statistics(统计信息陈旧)
    默认情况下,job 会在每天晚上10到早上6点和周末全天开启。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级,再开始进行统计信息。
    Scheduler Job的 stop_on_window_close 属性控制GATHER_STATS_JOB 是否继续。该属性默认值为True. 如果该值设置为False,那么GATHER_STATS_JOB 会中断, 而没有收集完的对象将在下次启动时继续收集。
  • Gather_stats_job调用dbms_stats.gather_database_stats_job_proc过程来收集statistics的信息。
    该过程收集对象statistics的条件如下:
    (1)对象的统计信息之前没有收集过。
    (2)当对象有超过10%的rows 被修改,此时对象的统计信息也称为stale statistics。
  • 查询统计信息的schedule job
    SQL> select job_name, program_name,enabled,stop_on_window_close from dba_scheduler_jobs where job_name = ‘gather_stats_job’;
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值