Oracleデータベースからデータを選択しているSQL Server Reporting Servicesを使用してレポートを作成しています。レポートは機能していますが、生成には長い時間がかかります(〜75秒)。SSRSレポートによるOracleデータベースのパフォーマンスの問題
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秒かかります。私の懸念は、レポートを完成させるためにさらに多くのクエリを追加する必要があるということです。この基本バージョンのレポートを生成するのに時間がかかりすぎると、完成したレポートが機能しなくなります。レポートの掲載結果を改善するにはどうすればよいですか?何か案は?
ご協力いただきありがとうございます。
+1まずこの解決策を考えてみましょう。シンプルで、どのようにクエリを設計しなければならないのですか?パフォーマンスの問題がまだ残っている場合は、他のシステムの問題(インデックスなど)を調べて、ビューやストアドプロシージャを作成してください。 – northpole
+1テーブルにstart_timeとend_timeのインデックスが既にある場合、where句を 'where start_time> =:Begin_Dateとfinish time