我有一个左连接SQL查询(2012)报告00:00:00第二个执行时间没有底部的Order By子句。添加“Order By”使查询花费00:00:24秒!SQL Server左加入订单BY
这是正常的吗?
这很清楚,我在这里错过了一些相当基本的概念,但我会假定查询被执行,然后结果排序。显然情况并非如此,请任何人都能指出我的方向?
有点其他信息:我加入的两张表分别有大约35,000行和22,000行。我选择了一个日期范围,左连接发生在两个字符串上。结果集在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
感谢
你能发布SQL吗? – 2013-03-13 19:33:56
“这是正常的吗?”这真的取决于。你的'ORDER BY'子句是什么?涉及的数据类型是什么?是否有索引支持您的查询?很明显,它与数据量无关,而与您所需排序引入的排序操作无关。没有更多细节,我们无法对此发表评论! – 2013-03-13 19:34:19
嗨,大家好,我已经添加了SQL,谢谢 – pugu 2013-03-13 20:17:13