我将 Stack Overflow 数据转储导入到 SQL Server 2008 中。一些查询,尤其是对 Posts 表的查询,需要一分多钟才能返回。
示例查询:
SELECT
Id, PostTypeId, AcceptedAnswerId, CreationDate,
Score, ViewCount, Body, OwnerUserId, OwnerDisplayName,
LastEditorUserId, LastEditDate, LastActivityDate, Title,
Tags, AnswerCount, CommentCount, FavoriteCount, ClosedDate, ParentId
FROM dbo.Posts
查询返回 881665 行,只需不到 2 分钟即可完成。我确实为这个表和其他表设置了索引。我能做些什么来加快这件事吗?
最佳答案
因为您没有 WHERE
子句,所以您正在执行表扫描,它会读取整个表。这总是相对较慢;索引根本无济于事。
要加快查询速度,请少选 :) 尝试放入 WHERE
子句,这样您就只对特定标签或特定日期期间的问题感兴趣。然后您可以在这些列上放置索引以加快查询速度。
关于在 Stack Overflow 数据转储上运行查询时,SQL Server 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1353499/