首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle select * from all_sequences太慢

Oracle select * from all_sequences太慢
EN

Stack Overflow用户
提问于 2020-04-04 00:51:01
回答 1查看 449关注 0票数 2

我的项目使用Hibernate,我想增加启动时间(目前是1.5分钟),所以我检查了启动时发生了什么。在SessionFactory初始化期间,发出的查询之一是:

代码语言:javascript
复制
select * from all_sequences;

这几乎需要一分钟的时间!来自Oracle SQL Developer的相同查询所需的时间也差不多。返回的记录总数为102条。

还有其他查询运行正常(一位数毫秒响应时间)

为什么它这么慢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-04 07:30:56

收集数据字典和固定对象的优化器统计信息:

代码语言:javascript
复制
begin
    dbms_stats.gather_dictionary_stats;
    dbms_stats.gather_fixed_objects_stats;
end;
/

Oracle需要良好的对象统计信息,以便建立良好的执行计划。有许多机制可以收集自定义对象的统计信息,但有时我们也需要收集系统对象的统计信息。(尽管我很惊讶这是开箱即用的。通常,这些问题只有在极端的变化之后才会发生,比如创建一百万个新序列。)

如果收集优化器统计信息没有帮助,请尝试使用以下步骤生成执行计划,并在问题中发布结果。

代码语言:javascript
复制
--Run the query:
select /*+ gather_plan_statistics */ * from all_sequences;

--Find the SQL_ID:
select * from gv$sql where sql_text like '%gather_plan_statistics%';

--Generate the execution plan, with estimated and actual results.
select *
from table(dbms_xplan.display_cursor(sql_id => '9wgbmhhrf0bwr', format=>'ALLSTATS LAST'));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61016702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档