我们刚将SQL Server 2005升级到SQL Server 2008 R2,发现一些性能问题。
下面的查询已经很慢了,但到了2008年,它就超时了。我们重新制作目录,以确保它是2008年新制作的。
declare@freetext varchar(255)='ten-t'
select Distinct ...
from
DOSSIER_VERSION
inner join
DOSSIER_VERSION_LOCALISED ...
where
CONTAINS(DOSSIER_VERSION.*,@FREETEXT)
or
CONTAINS(DOSSIER_VERSION_LOCALISED.*,@FREETEXT)
查询采取
分钟
如果启用了这两个条件。
如果你把下面的内容放在
包含(档案版本。*,@freetext)
它非常快。如果只是
包含(档案版本本地化。*,@freetext)
由于我们正在或正在处理结果,所以我希望此查询的运行时间小于总和,但如上所述,它需要几分钟/几次。
有人能告诉我这里发生了什么事吗?如果我使用联合(概念上与或相同),那么性能问题就不复存在了,但是我想知道我在这里遇到了什么问题,因为我想避免重写查询。
问候,汤姆