此查询(存储过程的一部分)将执行很多:
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/