ora-20005

该博客介绍了如何使用DBMS_STATS包来管理Oracle数据库中的表统计信息,包括收集、解锁、锁定统计信息以及调整收集参数。通过示例展示了GATHER_TABLE_STATS过程的不同用法,强调了统计信息对查询优化的重要性,并讨论了不同方法选项和估计比例对性能的影响。

问题

在这里插入图片描述

解决方案

exec dbms_stats.gather_table_stats('SYS','TEST');
select owner,table_name,stattype_locked from dba_tab_statistics a where a.stattype_locked in ('ALL','DATA','CACHE') and table_name='TEST';

exec dbms_stats.unlock_table_stats(ownname => 'SYS',tabname => 'TEST');

exec dbms_stats.gather_table_stats('SYS','TEST');
exec dbms_stats.lock_table_stats(ownname => 'SYS',tabname => 'TEST');

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

BEGIN
  DBMS_STATS.GATHER_TABLE_STATS(ownname          => 'BISTAT',
                                tabname          => 'MID_CB_NEWPOLICY_DIM_CAR',
                                estimate_percent => 30,                             -----------1-5G  50%  大于5G 30%)
                                method_opt       => 'for all columns size repeat|auto|1|skewonly',  ---size后面是生成直方图的时候选择的bucket个数 ---1表示对所有列不收集直方图 --auto 10g以后的默认选项 --repeat:收集当前已经有直方图的列 --skewonly 只在数据不均匀分布的列上收集直方图。
                                no_invalidate    => FALSE,          ----false表示将统计量对象相关的所有cursor全部失效,默认为auto
                                degree           => 4,
                                                        granularity      => 'ALL',          -----目前已知用于收集分区表统计信息
                                cascade          => TRUE);          ----收集索引的信息,默认为false
END;
/
select owner,object_name ,object_type from dba_objects where object_name like 'TEST';
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值