【发布时间】:2012-02-24 19:02:43
【问题描述】:
我正在使用从 Oracle 数据库中选择数据的 SQL Server Reporting Services 创建报告。该报告正在运行,但需要很长时间才能生成(约 75 秒)。我的报告中有以下非常简单的查询:
SELECT
(SELECT COUNT(*)
FROM CALL
WHERE trunc(start_time) >= :Begin_Date
AND trunc(finish_time) <= :End_Date) AS total_calls,
(SELECT COUNT(*)
FROM CALL
WHERE DISCONNECT = 'T'
AND trunc(start_time) >= :Begin_Date
AND trunc(finish_time) <= :End_Date) AS transfered_calls,
(SELECT COUNT(*)
FROM CALL
WHERE DISCONNECT = 'H'
AND trunc(start_time) >= :Begin_Date
AND trunc(finish_time) <= :End_Date) AS hangups
FROM DUAL
现在我可以使用 SQLPlus* 在 Oracle 中执行这个查询(当然要填写日期),它会在大约 8 秒内执行。当我尝试在 SSRS 报告中执行相同的查询时,生成需要 75 秒。我担心的是我需要添加更多查询来完成报告,如果生成这个基本版本的报告需要很长时间,那么完成的报告将无法工作。如何提高报表的性能?有什么想法吗?
提前感谢您的帮助。
【问题讨论】: