暂无图片
分享
慶雲
2019-04-01
创建新表,查询突然变慢。

比如有一张表A。

现在每天日终的业务情况是:

1. 将表A重命名为A_BAk

2. 创建新表A,添加索引,插入数据(大概30万条)

3. 在新表A执行select语句(大概执行10几万次)


正常情况下上述步骤大概两三分钟就执行完成了,

但是偶尔会出现第3步执行了两三个小时还没完成一半的情况,三个月内出现了两次,

两次都是执行下述语句解决:

analyze table A compute statistics;

然后过一两分钟第3步就完成了。


请问,出现这种情况(查询突然变慢)的具体原因是什么?应该怎样避免。


我们目前的解决办法是把“analyze table A compute statistics”语句添加到代码里,即插入数据完成后,执行analyze table语句。


收藏
分享
4条回答
默认
最新
lastwinner

1/检查select语句的执行计划,从而找出原因

2/使用dbms_stats包来收集

从你描述情况来看,大概率是缺失统计信息所致

暂无图片 评论
暂无图片 有用 0
慶雲

是什么原因导致的统计信息缺失?

或者什么情况下会导致的统计信息缺失。

暂无图片 评论
暂无图片 有用 0
lastwinner

你 确认问题就是  统计信息缺失  了吗?

常规原因是还没来得及收集,或者关闭了自动统计信息收集

暂无图片 评论
暂无图片 有用 0
章芋文
问题已关闭: 问题已经过期
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏