建立全文索引后,使用Contains查询很快。搁置约几分钟;再次使用contains查询很慢,会超时,第2次则又快起来了。不久又如此。 sqlserver2005全文索引的缓存会被释放,如果才能保持?
初步解决方法是调整了全文索引服务的一个verify_signature属性,禁用。
SELECT fulltextserviceproperty('VerifySignature')
exec sp_fulltext_service verify_signature,0
----------------------------------------------------
在全文索引中排序,排序字段为索引列,但是经常排序速度很慢。
初步解决方法是:重新生成索引
ALTER INDEX ALL ON table REORGANIZE
ALTER FULLTEXT CATALOG 全文目录名称 REORGANIZE
参考:
使用 ALTER INDEX REORGANIZE 对基表的索引进行碎片整理。
使用 ALTER FULLTEXT CATALOG REORGANIZE 重新组织全文目录。切记要在进行性能测试之前执行此操作,因为它会引起该目录中全文索引的主合并。
仅选择较小的列作为全文键列。即使支持 900 字节的列,也不建议您使用这么大的键列来创建全文索引。
将多个 CONTAINS 合并为一个 CONTAIN。在 Microsoft SQL Server 中,您可以在 CONTAINS 查询中指定一个包含若干列的列表。
如果只需要全文键或排名的信息,请分别使用 CONTAINSTABLE 或 FREETEXTTABLE,而不要使用 CONTAINS 或 FREETEXT。
使用 FREETEXTTABLE 和 CONTAINSTABLE 语法的 TOP_N_BY_RANK 选项来限制结果数并提高性能。如果您不是对可能查询到的所有信息都感兴趣,可使用此选项。