我在Sql Server 2008中玩了一点全文索引。我创建了索引,目录并填充了它。 我的表有近400,000条记录。我的全文索引被定义为一个varchar(Max)列(让我们现在称它为Text)。我正在执行以下查询:Sql Server 2008全文优化
select * from MyTable where contains(Text,'house')。
该查询在14秒内返回近20,000条记录。我认为这很慢。但是,当我执行这个查询:从MyTable的
SELECT COUNT(*),其中包含(文字, '房子')
它仅需1秒钟显示结果。
我一直在寻找,并且据我所见,这两个查询的执行计划是相同的。 为什么Sql Server花费太多时间来显示第一个查询结果?
我已经做了:
我买了一个SSD,并把两者MDF和LDF该磁盘上。但是,当我执行第一个查询时,我可以看到日志和tmp数据库正在我的硬盘(不在SSD中)创建。我的SSD是D:并且所有临时文件都在C:上创建。
这是否需要这么久,因为sql需要这些文件来填充企业管理器结果网格?有什么我可以做的优化数据库?我真的需要查询在不到2秒的时间内运行。
一切正在一台机器上完成,还是通过网络传输数据? – 2010-12-22 23:16:29
还有一个问题:那14秒钟的数字是完成将结果集返回给SSMS窗口所需的时间,还是开始显示值的时间? – 2010-12-22 23:18:00
完成将结果集返回给我的SSMS所需的时间 – 2010-12-22 23:41:15