You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c:AUTO STATS作业超时,如何忽略指定表?

Oracle 19c自动统计信息作业超时:忽略特定表的多种方案

当自动统计信息作业处理特定表出现超时,可以让作业忽略这些表,且锁定表统计信息并非唯一解决方案,以下是几种可行方案:

1. 设置表的自动统计信息目标为OFF

通过DBMS_STATS包修改表属性,直接让自动作业跳过该表:

EXEC DBMS_STATS.SET_TABLE_PREFS('你的模式名', '目标表名', 'AUTO_STATISTICS_TARGET', 'OFF');

这种方式仅阻止自动作业收集该表的统计信息,你仍可手动执行DBMS_STATS.GATHER_TABLE_STATS更新统计信息,适合需要手动控制更新时机的场景。

2. 锁定表统计信息

这是常用方案之一,锁定后自动作业会直接跳过该表:

EXEC DBMS_STATS.LOCK_TABLE_STATS('你的模式名', '目标表名');

注意:锁定后手动收集统计信息也会被阻止,需先解锁才能更新:

EXEC DBMS_STATS.UNLOCK_TABLE_STATS('你的模式名', '目标表名');

该方案适合数据几乎无变化、无需频繁更新统计信息的表。

3. 调整表的统计信息收集参数

若仍希望自动作业处理该表,但要避免超时,可调整收集时的采样比例或选项以减少耗时:

  • 设置更低的采样比例:
EXEC DBMS_STATS.SET_TABLE_PREFS('你的模式名', '目标表名', 'ESTIMATE_PERCENT', '5'); -- 使用5%的采样率
  • 简化列统计信息收集:
EXEC DBMS_STATS.SET_TABLE_PREFS('你的模式名', '目标表名', 'METHOD_OPT', 'FOR ALL COLUMNS SIZE 1');

这种方式既保留自动收集能力,又通过优化参数降低收集时间,适合数据变化频繁但无需高精度统计信息的场景。

方案选择建议

  • 若表数据稳定、无需更新统计信息:选择锁定表统计信息
  • 若需手动控制统计信息更新、不想让自动作业干扰:选择设置AUTO_STATISTICS_TARGET为OFF
  • 若仍需自动收集、但要解决超时问题:选择调整收集参数

内容的提问来源于stack exchange,提问作者Tomic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 20:33:11