您好,我正在使用CONTAINSTABLE对表中的一列进行搜索。问题出在性能上。这是我的问题:
SELECT count(*)
FROM dbo.Document d
INNER JOIN dbo.DocuemntVehicleXRef vx ON (vx.DocuemntID = d.DocumentID)
INNER JOIN CONTAINSTABLE (Document , QueryContent , @searchterm ) ftt ON ( d.DocumentID = ftt.[Key] )
WHERE vx.VehicleId = @vehicleId所以为了提高性能(因为文档表很大)。我需要做CONTAINSTABLE函数,而不是遍历所有的dbo.Docuemnt表,只遍历绑定到VehicleId的文档(因为其余的搜索是不必要的)有没有解决办法或方法来做到这一点?谢谢
发布于 2012-12-05 13:16:02
一种方法是创建多个索引视图,每个视图返回文档的一个子集。每个视图都有自己的ft索引,您可以管理查询逻辑,以便仅从相关视图中进行选择。如果您的表很容易拆分成常用的块,例如分层的类别结构,那么这种方法效果很好。
另一种方法是通过附加唯一键来“清理”索引文本。例如,"VEHICLEID001“,那么除了其他关键字之外,您还可以搜索"VEHICLEID001”。微软不赞成这种做法,认为这是一种反实践,但确实奏效了。
https://stackoverflow.com/questions/13386046
复制相似问题