下部にOrderBy句がない00:00:00秒の実行時間を報告する左結合SQLクエリ(2012)があります。「OrderBy」を追加すると、クエリに00:00:24秒かかります。
これは正常ですか?
ここでかなり基本的な概念が欠落していることは明らかですが、クエリが実行されてから結果がソートされると想定していました。どうやらそうではないようですが、誰かが私を正しい方向に向けることができますか?
その他の情報:私が結合している2つのテーブルには、それぞれ約35,000行と22,000行があります。日付範囲を選択していますが、2つの文字列で左結合が発生しています。結果セットは300〜400の結果です。文字列を比較すると大きなペナルティがあることを私は知っています、そしてそれはここでの問題の一部だと思います。
SQLは次のとおりです。
DECLARE @mystartdate as datetime
SET @mystartdate = CAST(CAST((GETDATE() - 0) AS date) as nvarchar) + ' 06:00:00'
DECLARE @myenddate as datetime
SET @myenddate = CAST(CAST((GETDATE() + 1) AS date) as nvarchar) + ' 05:59:59'
SELECT SUBSTRING(CAST([Event_Time] AS nvarchar),0,9) AS mytime
,[CombinedDateTime]
,[MediaFileName]
,[Duration]
,[High_Definition]
FROM [dbo.schedules]
LEFT JOIN dbo.subtitles
ON REPLACE(SUBSTRING(dbo.subtitles.sub_filename, 1, LEN(dbo.subtitles.sub_filename) -4), '-', '') = REPLACE(dbo.schedules.MediaFileName,'/','')
WHERE [CombinedDateTime] >= @mystartdate AND [CombinedDateTime] <= @myenddate
Order by CombinedDateTime
ありがとう