我在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命令是否有问题,而不是像第一个例子那样只执行一个?
答案 0 :(得分:1)
我不是SQL Server专家,但我认为SQL Server应该足够聪明,可以编译它,它会有最好的性能。
我们不是在谈论像Subquery
vs Join
这样以不同方式编译的逻辑更改。第二个示例中的逻辑与第一个示例中的逻辑完全相同。所以你可以选择其他方式。
如果要传递编译时间,则应使用stored procedure
。您还可以获取Query Execution Plan
以查看在此部分查询中是否需要花费很多费用。