注册
收集统计信息可以自动清理相关表的执行计划缓存
专栏/技术分享/ 文章详情 /

收集统计信息可以自动清理相关表的执行计划缓存

dm_forever 2025/03/07 272 0 0
摘要

使用DBMS_STATS系统包中GATHER_TABLE_STATS方法,指定NO_INVALIDATE参数,可以在收集完统计信息后自动清理相关表的执行计划缓存:

DBMS_STATS.GATHER_TABLE_STATS(
ownname => ‘MRS_SYS’, --模式名
tabname => ‘TRADE_PRO’, --表名
ESTIMATE_PERCENT => 100, --收集统计信息比例
cascade => TRUE, --收集索引统计信息
method_opt => ‘FOR COLUMNS tradeId SIZE AUTO’, --收集粒度
degree => 1, --并行度
NO_INVALIDATE => FALSE --移除相关执行计划
);

其中NO_INVALIDATE参数缺省为TRUE,原有的执行计划保持原状态,FALSE为移除原有的相关执行计划。
另外stat 100 on的方式收集统计信息暂时没办法自动清理执行计划缓存,只能在收集完后手动清理。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服