以下查询是否限制SQL Select

时间:2012-03-30 09:19:16

标签: sql select

我有一个事件日志数据库。在查找特定的EventID时,我需要限制SQL搜索的大小。这是出于性能目的。

以下查询是否限制SQL查询?

SELECT EventID FROM
    (SELECT TOP 100000 EventID,EventName FROM Events ORDER BY EventTime DESC) T
WHERE EventName = 'Whatever'

而不是做以下

SELECT EventID FROM Events WHERE EventName = 'Whatever'

由于

2 个答案:

答案 0 :(得分:4)

查询1将按事件时间查找前100000个事件,然后按EventName ='Whatever'过滤这些记录 - 结果将是< = 100.000个事件。

查询2将找到EventName ='Whatever'的所有事件

我只能猜测你正在尝试实现以下目标:

SELECT TOP 100000 EventID 
FROM Events 
WHERE EventName = 'Whatever'
ORDER BY EventTime DESC) T

答案 1 :(得分:2)

最好的一个只返回最近的(按事件时间排序)100,000条记录。如果您想要所有记录的EventID且超过100,000,则结果将不包括所有记录。这比选择它们更快。但