私はMicrosoftSQLServer 2008を使用しており、次のストアドプロシージャがあります。
ALTER PROCEDURE [dbo].[getMessagesByDates]
(@orderdateFirst varchar(50),
@orderdateLast varchar(50))
AS
BEGIN
SET NOCOUNT ON
SELECT TOP 100 [RecordID]
,[MessageID]
,[ProcessName]
,[ProcessInstanceID]
,[Arrival]
,[MessageDateTime]
,[RecvFileName]
,[ArchivePath]
,[SubjectID]
,[SrcMessageID]
,[SourceSystem]
,[SourceLocation]
,[MsgKey1]
,[MsgKey2]
,[MsgKey3]
FROM [Messages].[dbo].[MessagesLog]
WHERE
[Arrival] BETWEEN CONVERT(datetime, @orderdateFirst)
AND CONVERT(datetime, @orderdateLast)
ORDER BY
[Arrival] DESC
END
[到着](日時タイプ)は、[MessagesLog]テーブルのクラスター化された一意のインデックスです。[RecordID](bigintタイプ)は、クラスター化インデックスの2番目のインデックスキー列です。
上記の手順のパフォーマンスをどのように改善できますか?私は何千もの行に取り組んでおり、それは多くの時間がかかります。