0

此查询需要 21 秒:

SELECT Top 50 ROW_NUMBER() OVER (ORDER BY aDate DESC) AS Row, aID, aHeadline, aAuthor, aDate, TopStory, SiteSectionID, PrintSection, aSummary, small_image, aBody FROM articles 
WHERE aLive = -1 AND full_story = -1 AND aDate >= '9/3/2012' AND aDate <= '10/3/2012' AND (Contains((aAuthor,aBody,aHeadline,aSubhead,aSummary), '"kodak"')) 
ORDER BY aDate DESC

此查询需要 1 秒:

SELECT Top 50 ROW_NUMBER() OVER (ORDER BY aDate DESC) AS Row, aID, aHeadline, aAuthor, aDate, TopStory, SiteSectionID, PrintSection, aSummary, small_image, aBody FROM articles 
WHERE aLive = -1 AND full_story = -1 AND aDate >= '9/3/2002' AND aDate <= '10/3/2012' AND (Contains((aAuthor,aBody,aHeadline,aSubhead,aSummary), '"kodak"')) 
ORDER BY aDate DESC

唯一不同的是日期范围。如果没有查询的包含部分,它们分别返回 255 和 39,106 行。

对我来说,对 39K 行的全文查询比对 255 行的查询要快,这没有任何意义。

没有包含的第二个查询需要将近 2 分钟。这让我更加困惑。

其他注意事项:

  • aDate 是具有非唯一索引的日期时间字段
  • aLive 是具有非唯一索引的 int 字段
  • full_story 是一个具有非唯一索引的 int 字段
4

0 回答 0