次のコードを使用して目的の行を選択していますが、問題がこの部分に問題があることを他の表のDocumentNumber
列のselectでパフォーマンスが低い--->( 'IN - ' + @ItemStatus + '#' + chequeserial)連結のパフォーマンスが低い
SELECT
Banking.ReceivedCheque.Date, Banking.ReceivedCheque.StatusDate,
Banking.ReceivedCheque.DueDate, Banking.ReceivedCheque.ChequeSerial,
Banking.ReceivedCheque.BankName Banking.ReceivedCheque.CompanyInfoFK,
Banking.ReceivedCheque.FinancialPeriodFK,
Banking.ReceivedCheque.CreditGFK, Banking.ReceivedCheque.CreditID,
ReceivedFromAccount = dbo.getname(CreditID, CreditGFK, FinancialPeriodFK),
DefBankAccount = dbo.getname(DefaultBankID, '4', FinancialPeriodFK),
Banking.ReceivedCheque.StatusFK,
Banking.ChequeStatus.Title,
(SELECT MAX(DocumentFK)
FROM Accounting.DocumentDetail
WHERE ItemFK = ('IN-' + @ItemStatus + '#' + chequeserial)
AND financialPeriodFK = @FinancialPeriodFK) AS DocumentNumber
FROM
Banking.ReceivedCheque
INNER JOIN
Banking.ChequeStatus ON Banking.ReceivedCheque.StatusFK = Banking.ChequeStatus.ChequeStatusID
WHERE
ReceivedCheque.FinancialPeriodFK = @FinancialPeriodFK
AND Banking.ReceivedCheque.StatusFK = @StatusFK
パフォーマンスを向上させる他の解決方法がある場合は、教えてください。
私はこの質問がhttp://codereview.stackexchange.com/にあると信じています – Alex
xmlと利用可能なインデックスとして実行プランを追加します –
どのRDBMSがこれですか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –