使用许多SQL CONTAINS命令而不是只有一个命令,我会失去性能吗?

时间:2015-03-06 15:59:25

标签: sql-server-2012 contains

我在SQL Server上实现了一个带全文搜索的命令,我在构建动态查询方面遇到了问题:

CONTAINS (MyTable, '@param1 AND @param2 AND NOT @param3')

所以我找到了另一种方法来制作一系列CONTAINS命令,如下所示:

CONTAINS (MyTable, @param1) 
AND CONTAINS (MyTable, @param2) 
AND NOT CONTAINS (MyTable, @param1)

我的问题是:执行带有许多CONTAINS命令的SQL命令是否有问题,而不是像第一个例子那样只执行一个?

1 个答案:

答案 0 :(得分:1)

我不是SQL Server专家,但我认为SQL Server应该足够聪明,可以编译它,它会有最好的性能。

我们不是在谈论像Subquery vs Join这样以不同方式编译的逻辑更改。第二个示例中的逻辑与第一个示例中的逻辑完全相同。所以你可以选择其他方式。

如果要传递编译时间,则应使用stored procedure。您还可以获取Query Execution Plan以查看在此部分查询中是否需要花费很多费用。