1

私が望むものを得るこれら2つの方法のパフォーマンスをテストする方法がわかりません。

select * 
from table 
where column like '%'+left(getdate(),11)+"%

select * 
from table 
where
              DATEPART (DD, column) = DATEPART (DD, GETDATE())  
      AND     DATEPART (MM, column) = DATEPART (MM, GETDATE())  
      AND     DATEPART (YY, column) = DATEPART (YY, GETDATE())
4

1 に答える 1

1

通常、SQLでは、ステートメントを何度も実行し、各ステートメントの実行時間を計算するだけでループできます。これを数回実行して、結果を確認して比較します。

declare @startTime datetime
declare @endTime datetime
declare @execution BIGINT

SET @execution = 0

set @startTime = GETDATE()
while (@execution < 1000000)
begin    
    --TestSyntax goes here


    SET @execution = @execution + 1

end
set @endTime = GETDATE()

SELECT DATEDIFF(ms, @endTime, @startTime) AS 'TimeToExecute'

また、文字列の比較は通常、すべての言語で遅くなります。

于 2012-10-09T02:07:25.043 に答える