达梦数据库--统计信息收集.md

生产环境--问题

现象:
项目反馈有一张报表,当查询条件选了两个组织条件后,报表查询极其慢,系统转圈几分钟才能查询出数据,当查询条件再添加一个组织的时候,查询结果2s就能出来,

思路:
1.第一反应就是,排查sql是不是很慢,确实对比了两次查询的sql,发现耗时差距很大,但是很不理解的是,两个组织(查询数据相对少)很慢,查询三个组织时(数据相对多),查询却比较快;
2.也进行了尝试sql优化,排查了是否索引失效的可能性,但是都没有很好的效果;
3.找了一个对数据库厉害的同事分析,执行计划explain后分析, 发现其中一张表统计信息收集不正常,由于环境数据主从部署模式,对主库进行手动统计信息收集后,再次在主库执行之前的sql查询,发现执行效率提升很多基本是秒级出结果;

--查看改表的统计信息
call dbms_stats.table_stats_show('SYSDBA','FA_CARD')

--手动对该表进行统计信息收集
begin
DBMS_STATS.GATHER_TABLE_STATS(owner,'FA_CARD',null,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');
end;

关于统计信息的描述这篇文章挺详细

posted @ 2022-07-26 17:36  菜鸡变小鸟  阅读(292)  评论(0编辑  收藏  举报