我正在使用CONTAINS关键字来搜索SQL-Server全文目录。 我查询的表包含(包括其他列)全文索引的文本列和表示行添加日期(并具有正常索引)的“added_date”列。减少从全文查询返回的结果数
该表包含大约7M行。全文目录上的特定查询可能返回〜1M行。我希望使用“added_date”列来减少查询返回的行数。
问题是,当我添加“added_date”条件时,我在执行计划中看到数据库将查询表两次:一次用于全文目录(在执行计划中称为“远程扫描”), ,并为日期条件一次。这迫使数据库连接来自查询的两个部分的结果,因此没有实现性能改进。
有没有办法强制SQL Server全文查询日期条件应用后剩下的行?
编辑:查询看起来像
SELECT reason, added_date FROM reasons_table WHERE CONTAINS(reason, 'a_reason') AND added_date > getdate()-5
请写信给您使用的查询和索引。 – 2010-11-14 15:52:50
根据这个:http://technet.microsoft.com/en-us/library/cc917695.aspx 我想要实现的是不可能的: 因为MSFTESQL服务在数据库引擎之外运行,所以SQL Server 2005不能将SQL查询的谓词扩展到全文搜索。因此,即使您的查询可能具有显着减少查询返回的最终行数的附加条件,MSFTESQL服务仍会返回目标搜索的所有匹配键。 – Moshe 2010-11-14 17:17:31