2012-04-06 95 views
0

我的查询大约需要3-5秒才能运行。当我运行报告时,需要25-30分钟的几列简单总结!这是一个组左报告。我试着玩弄查询,并试图在查询中处理分组,但没有运气。任何想法可能会造成这种情况?Oracle Report永久占用,但查询运行速度很快

+0

该报告是否进行了大量额外的计算,总和等?如果可能的话,尝试在数据库中进行所有计算。此外,如果这是作为并发请求在电子商务套件中,请在并发程序中打开SQL跟踪并查看日志文件。 – Wolf 2012-04-06 18:54:45

回答

0

查询是否在存储过程中执行?如果是,则尝试执行SQL而不通过SQL存储过程传递变量。

如果执行时间有差异,请尝试一些优化,例如删除参数嗅探(在存储过程中创建包含通过存储过程传递的变量值副本的本地变量)。如果查询需要优化,这些可以给你一个指示。

+0

查询正在直接从报告运行。我没有创建存储过程的权限......这是另一个问题 – RageQwit 2012-04-06 15:28:51

+0

您可以做的是使用MS SQL的SQL事件探查器分析查询,或者在oracle上使用dbms_profiler。您可以查看正在使用哪些资源以及查询的哪些部分。这样你可以注意到任何特定的部分是否需要优化。 如果您没有权限在您的用户帐户上更改过程等,则需要将其移至DBA。 – Mez 2012-04-07 15:51:13

0

根据我的经验,有时候返回大量数据的查询会像Toad或SQL Developer这样的工具运行得很快,但是当您尝试获取所有行时,则会达到查询的实际总体性能。

因此,也许你的查询返回了很多行,所有这一切都花在做所有的I/O。

相关问题