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

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

如何更改自动统计信息收集任务

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;
posted @   YashanDB  阅读(6)  评论(0编辑  收藏  举报
编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
点击右上角即可分享
微信分享提示