此查询(存储过程的一部分)将执行很多:

SELECT TOP (@numRecords)  BlogPost.postId,BlogPost.creationDate,
        BlogPost.header,BlogPost.markedupContentAbstract
     FROM dbo.BlogPost ORDER BY BlogPost.creationDate DESC

我应该在BlogPost表的'creationDate'字段中添加索引吗?
我是否应该查看按顺序排列BlogPost记录的 View ,然后从中选择SELECT TOP?

详细信息:使用SQL Server 2008。

最佳答案

除非您将ORDER BY添加到该 View 中,否则您无法使用TOP创建 View 。

您可以在creationDate上创建索引,并覆盖在SELECT列表中使用的所有其他列:

CREATE INDEX ix_blogpost_creationdate__other ON BlogPost (creationDate) INCLUDE (postId, header, markedupContentAbstract)

关于sql - 使用ORDER BY执行SELECT TOP查询-我应该使用索引还是 'sorted view'来提高性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2177433/

10-09 18:37