oracle数据库在执行sql语句的时候,会根据统计信息计算怎样执行性能更优,当执行性能比自己想象的慢时,就有可能是统计信息不新导致,查看统计信息常用的方式有如下三种:
1 查看当前用户下的统计信息
select * from user_tab_statistics t where t.table_name=upper('l_dm_allot_detail');
2 查看dba用户下的统计信息
select * from dba_tab_statistics t where t.table_name=upper('l_dm_allot_detail');
3 如果上面两个都没有查到,通常会查到的,就可以用下面这个查询所有的统计信息
select * from all_tab_statistics t where t.table_name=upper('l_dm_allot_detail');
其中的LAST_ANALYZED字段就是最后收集统计信息的时间,不够新的话,可以请DBA重新收集一下~!~
---------------------
原文:https://blog.youkuaiyun.com/c2406070418/article/details/14230945
--更新数据库统计信息
BEGIN
dbms_stats.gather_table_stats(ownname => 'ownname',
tabname => 'tabname',
partname => '',
block_sample => FALSE,
granularity => 'ALL',
cascade => TRUE);
END;