小编pla*_*eon的帖子

休眠查询运行缓慢

我目前面临着从 Java 程序启动的运行缓慢的 Hibernate 查询的问题。它在后端调用 Oracle 11g。

此查询在第一次运行时需要 40-90 秒。然而,在随后的执行中,查询会在很短的时间内返回(我什至没有看到数据库被命中,因此假设休眠正在缓存它)。

如果我将查询从企业管理器复制并粘贴到 SQL 客户端并直接运行相同的查询(甚至更改一些参数),查询将在几分之一秒内返回。

如果我查看 EM 中的性能调整选项卡,我会发现所花费的时间主要用于用户 I/O 等待 (97.5%) 和 CPU (2.5%)。这是否意味着我在休眠中使用的提取大小配置的值太小?

如果您可能需要任何其他信息来帮助我深入了解此问题,请告诉我。

======

附加信息:

我们确实在表上有一个索引,我可以看到它被用作查询执行的一部分,不幸的是它不是很可读,但我不确定如何包含它:

Id  Operation   Name    Rows
(Estim)     Cost    Time
Active(s)   Start
Active  Execs   Rows
(Actual)    Read
Reqs    Read
Bytes   Mem
(Max)   Activity
(%)     Activity Detail
(# samples)
0   SELECT STATEMENT                        1                       
1   . FILTER                        1                       
2   .. HASH JOIN RIGHT OUTER        2674    7223    1   +4  1   0           1M      
3   ... TABLE ACCESS FULL   TOTEM_EQ_EXPIRYCODES    475     4 …
Run Code Online (Sandbox Code Playgroud)

performance oracle oracle-11g

5
推荐指数
1
解决办法
7562
查看次数

标签 统计

oracle ×1

oracle-11g ×1

performance ×1