Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 为什么对更少行的全文查询比对更多行的同一查询慢?_Sql Server_Full Text Search_Contains_Database Performance - Fatal编程技术网

Sql server 为什么对更少行的全文查询比对更多行的同一查询慢?

Sql server 为什么对更少行的全文查询比对更多行的同一查询慢?,sql-server,full-text-search,contains,database-performance,Sql Server,Full Text Search,Contains,Database Performance,此查询需要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'

此查询需要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
选择前50行编号()(按aDate DESC排序)作为文章中的行、辅助、标题、作者、aDate、TopStory、SiteSectionID、PrintSection、aSummary、small\u image、aBody

其中aLive=-1和full_story=-1,aDate>='9/3/2012',aDate='9/3/2002',aDate检查执行Plant典型的优化器问题。基数估计错误。如果运行第一个查询,然后运行第二个查询,然后再次运行第一个查询,它是否仍在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/2002' AND aDate <= '10/3/2012' AND (Contains((aAuthor,aBody,aHeadline,aSubhead,aSummary), '"kodak"')) 
ORDER BY aDate DESC