より効率的にする必要があるクエリがあります。
効率の下限がどこにあるかを確認するためにセクションに分割しています。現在、ネストされた Select ステートメントがいくつかあります。これらはパフォーマンスの問題ですか?
そのうちの 1 つの例を次に示します。
SELECT AgreementID,
DueDate,
UpdatedAmountDue AS AmountDue,
COALESCE((SELECT SUM(UpdatedAmountDue)
FROM RepaymentBreakdown AS B
WHERE CONVERT(datetime, CONVERT(varchar, DueDate, 103), 103) <=
CONVERT(datetime, CONVERT(varchar, R.DueDate, 103), 103)
AND B.AgreementID = R.AgreementID),0) AS DueTD,
RN=ROW_NUMBER() OVER (Partition BY R.AgreementID ORDER BY DueDate)
FROM RepaymentBreakdown AS R
DueTD のデータを取得するためのよりクリーンで効率的な方法はありますか?
基本的に、返済スケジュール結果の各行について、取得したいのは次のとおりです。
AgreementID,
DueDate,
AmountDue,
AmountDueToDate (DueTD)
RowNumber.
クエリを実行しているテーブルは次のように構成されています。
AgreementID (int),
DueDate (datetime),
AmountDue (decimal(9,2)),
UpdatedAmountDue (decimal(9,2))*
※ UpdatedAmountDueは常に変動数値、AmountDueは常に固定で参考値となります。