疑似oracle统计信息丢失问题

yety123 2019-11-15 06:03:53
测试环境有三张表,有个sql是三个表关联查询,数据都不是很大,在10万左右。经常发生执行查询sql缓慢不出结果的情况。sql进行过优化。现在只要不出结果只要执行analyze收集信息就可以正常查询。用时0.1秒左右。其他表都没有问题,都在同一个表空间内。求各位大佬是给点建议会是什么问题导致的。
...全文
211 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
月之骑 2019-11-25
  • 打赏
  • 举报
回复
这不会是中国外汇的东西吧
faith.huan 2019-11-18
  • 打赏
  • 举报
回复
引用 14 楼 yety123的回复:
[quote=引用 13 楼 dbs_service 的回复:]
[quote=引用 12 楼 yety123 的回复:]
[quote=引用 10 楼 dbs_service 的回复:]

这个地方直觉应该可以走索引,但你这个写法无法索引,你换个写法,然后考虑这两个字段建立联合索引试试!

那个枚举只有三个,这两个字段都有空值存在。联合索引怕是不太妥当。[/quote]

那个时间字段呢?你这个是要查某一天吗?还是怎样?[/quote];这个时间字段是过期日期。是有很多空值的。除了索引问题,还有其他的想法嘛。我觉得跟索引问题不大的。索引不好也只会导致查询慢。对于10万以内的表,现在的数据库,以及硬件完全可以把查询优化到可以接收的范围内了。现在情况是,有时候这个查询会卡住,一直执行,但是就是没出结果。收集统计信息后,就马上OK了。[/quote] 慢的时候,不管执行几次都慢吗?只要一收集表信息就好了?
天凯科技 2019-11-18
  • 打赏
  • 举报
回复
写个定时job每天分析一下这几个表可以吧?
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 13 楼 dbs_service 的回复:
[quote=引用 12 楼 yety123 的回复:]
[quote=引用 10 楼 dbs_service 的回复:]

这个地方直觉应该可以走索引,但你这个写法无法索引,你换个写法,然后考虑这两个字段建立联合索引试试!

那个枚举只有三个,这两个字段都有空值存在。联合索引怕是不太妥当。[/quote]

那个时间字段呢?你这个是要查某一天吗?还是怎样?[/quote];这个时间字段是过期日期。是有很多空值的。除了索引问题,还有其他的想法嘛。我觉得跟索引问题不大的。索引不好也只会导致查询慢。对于10万以内的表,现在的数据库,以及硬件完全可以把查询优化到可以接收的范围内了。现在情况是,有时候这个查询会卡住,一直执行,但是就是没出结果。收集统计信息后,就马上OK了。
天凯科技 2019-11-18
  • 打赏
  • 举报
回复
引用 12 楼 yety123 的回复:
[quote=引用 10 楼 dbs_service 的回复:]

这个地方直觉应该可以走索引,但你这个写法无法索引,你换个写法,然后考虑这两个字段建立联合索引试试!

那个枚举只有三个,这两个字段都有空值存在。联合索引怕是不太妥当。[/quote]

那个时间字段呢?你这个是要查某一天吗?还是怎样?
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 10 楼 dbs_service 的回复:

这个地方直觉应该可以走索引,但你这个写法无法索引,你换个写法,然后考虑这两个字段建立联合索引试试!

那个枚举只有三个,这两个字段都有空值存在。联合索引怕是不太妥当。
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 9 楼 huanqingdong 的回复:
[quote=引用 8 楼 yety123的回复:][quote=引用 6 楼 huanqingdong 的回复:]
全表扫描,你在这三个表的instn_id建索引应该会好点

另外就算是索引问题,那么有问题的时候应该是经常性的查不出结果,但是实际是时隔1-2两个月。而且其他环境应该也是相同的问题。所以不能解释我的问题。
[/quote]
你这些数据会变动吗,随时间,这几个表是业务系统表还是数仓表[/quote]
数据会变动,不过变动数量不大。是业务系统表。
天凯科技 2019-11-18
  • 打赏
  • 举报
回复

这个地方直觉应该可以走索引,但你这个写法无法索引,你换个写法,然后考虑这两个字段建立联合索引试试!
faith.huan 2019-11-18
  • 打赏
  • 举报
回复
引用 8 楼 yety123的回复:
[quote=引用 6 楼 huanqingdong 的回复:]
全表扫描,你在这三个表的instn_id建索引应该会好点

另外就算是索引问题,那么有问题的时候应该是经常性的查不出结果,但是实际是时隔1-2两个月。而且其他环境应该也是相同的问题。所以不能解释我的问题。
[/quote] 你这些数据会变动吗,随时间,这几个表是业务系统表还是数仓表
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 6 楼 huanqingdong 的回复:
全表扫描,你在这三个表的instn_id建索引应该会好点

另外就算是索引问题,那么有问题的时候应该是经常性的查不出结果,但是实际是时隔1-2两个月。而且其他环境应该也是相同的问题。所以不能解释我的问题。
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 6 楼 huanqingdong 的回复:
全表扫描,你在这三个表的instn_id建索引应该会好点
,已经在这个字段上建立过索引了。
faith.huan 2019-11-18
  • 打赏
  • 举报
回复
全表扫描,你在这三个表的instn_id建索引应该会好点
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 1 楼 huanqingdong 的回复:
在plsql里按F5看一下执行计划,顺便贴一下图

执行计划入图


sql
如下
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 3 楼 yety123 的回复:
[quote=引用 2 楼 dbs_service 的回复:]
是什么版本的数据库,一般统计信息都会自动收集的,除非你这几个表变化倾斜频率很高,例如经常初始化这种操作。

是11版的,我觉得可能是这三张表建立的时候进行过很多次初始化,每次都是truncate表然后insert 进来的。每隔一两个月就会出现这个执行不出结果的问题。其他环境都没有任何问题的。[/quote]
除了建表之后进行过初始化,后来都是简单插入几条信息,再也没有进行过初始化了。
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 2 楼 dbs_service 的回复:
是什么版本的数据库,一般统计信息都会自动收集的,除非你这几个表变化倾斜频率很高,例如经常初始化这种操作。

是11版的,我觉得可能是这三张表建立的时候进行过很多次初始化,每次都是truncate表然后insert 进来的。每隔一两个月就会出现这个执行不出结果的问题。其他环境都没有任何问题的。
天凯科技 2019-11-18
  • 打赏
  • 举报
回复
引用 18 楼 yety123 的回复:
[quote=引用 15 楼 dbs_service 的回复:]
写个定时job每天分析一下这几个表可以吧?

能不能具体点呢,分析表的哪些信息?[/quote]
这个很简单,有需要可以Q我 282321952
riven2011 2019-11-18
  • 打赏
  • 举报
回复
私信我 帮你解决
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 15 楼 dbs_service 的回复:
写个定时job每天分析一下这几个表可以吧?

能不能具体点呢,分析表的哪些信息?
yety123 2019-11-18
  • 打赏
  • 举报
回复
引用 16 楼 huanqingdong 的回复:
[quote=引用 14 楼 yety123的回复:][quote=引用 13 楼 dbs_service 的回复:]
[quote=引用 12 楼 yety123 的回复:]
[quote=引用 10 楼 dbs_service 的回复:]

这个地方直觉应该可以走索引,但你这个写法无法索引,你换个写法,然后考虑这两个字段建立联合索引试试!

那个枚举只有三个,这两个字段都有空值存在。联合索引怕是不太妥当。[/quote]

那个时间字段呢?你这个是要查某一天吗?还是怎样?[/quote];这个时间字段是过期日期。是有很多空值的。除了索引问题,还有其他的想法嘛。我觉得跟索引问题不大的。索引不好也只会导致查询慢。对于10万以内的表,现在的数据库,以及硬件完全可以把查询优化到可以接收的范围内了。现在情况是,有时候这个查询会卡住,一直执行,但是就是没出结果。收集统计信息后,就马上OK了。[/quote]
慢的时候,不管执行几次都慢吗?只要一收集表信息就好了?[/quote]对的,已经不是慢了,是根本执行不出结果。只要收集信息就马上可以了。
faith.huan 2019-11-16
  • 打赏
  • 举报
回复
在plsql里按F5看一下执行计划,顺便贴一下图
加载更多回复(1)

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧