ITPub博客

首页 > 数据库 > 国内数据库 > 【YashanDB 知识库】如何更改自动统计信息收集任务

【YashanDB 知识库】如何更改自动统计信息收集任务

原创 国内数据库 作者:崖山数据库系统YashanDB 时间:2025-01-20 18:28:05 0 删除 编辑

本文内容来自 YashanDB 官网,原文内容请见  https://www.yashandb.com/newsinfo/7106887.html?templateId=171...

YashanDB 内置了定时任务 GATHER_STATS_JOB,默认每日凌晨 2:00 开始收集全库的统计信息,包括统计信息缺失或者统计信息已经失效的对象的收集。

在某些场景可能出现收集过程花费时间较长现象,可通过调整收集参数,加快收集过程。

1、删除系统默认收集任务

EXEC DBMS_SCHEDULER.DROP_JOB('GATHER_STATS_JOB');

2、重新创建统计信息收集任务

EXEC DBMS_SCHEDULER.CREATE_JOB(
     'GATHER_STATS_JOB',
     'PLSQL_BLOCK',
     'begin DBMS_STATS.GATHER_DATABASE_STATS(''GATHER AUTO'', 0.1, 1, ''FOR ALL COLUMNS SIZE AUTO'', ''GLOBAL'', TRUE, TRUE); end;',
     0,
  cast(TRUNC(SYSDATE+1) + 2/24 as timestamp),
     'SYSDATE + 1',
     NULL,
     'DEFAULT_JOB_CLASS',
     TRUE,
     FALSE,
     'automatic optimizer statistics collection'
);

主要更改 GATHER_DATABASE_STATS 的第 2、3、5 个参数,分别表示:采样率、并行度、分区表收集策略 (默认 ALL - 收集表和分区,GLOBAL - 只收集表,在分区表数据量巨大且分区数多的情况下影响收集任务完成时间

并行度是单个收集任务内部的并行度,非表之间的并行度,因此全库收集是串行的)

3、手工运行任务

EXEC DBMS_SCHEDULER.RUN_JOB('GATHER_STATS_JOB');

4、查看表统计信息收集时间

SELECT last_analyzed, owner, table_name FROM dba_tab_statistics ORDER BY 1 desc;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3069636/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639964