使用许多 SQL CONTAINS 命令而不是仅使用一个命令会降低性能吗?
Will I loose performance with many SQL CONTAINS command instead of only one?
我正在 SQL 服务器上执行一个带有全文搜索的命令,但我在构建这样的动态查询时遇到了问题:
CONTAINS (MyTable, '@param1 AND @param2 AND NOT @param3')
所以我找到了一个替代方法来制作一系列 CONTAINS 命令,如下所示:
CONTAINS (MyTable, @param1)
AND CONTAINS (MyTable, @param2)
AND NOT CONTAINS (MyTable, @param1)
我的问题是:使用许多 CONTAINS
命令而不是像第一个示例那样只执行一个 SQL 命令是否有问题?
我不是 SQL 服务器专家,但我认为 SQL 服务器应该足够聪明,以这种方式编译它,它会有最好的性能。
我们不是在谈论像 Subquery
和 Join
这样的逻辑变化,它们会以不同的方式编译。第二个示例中的逻辑与第一个示例中的逻辑完全相同。所以你可以做你的选择。
如果你想通过编译时间,你应该使用stored procedure
。您还可以获得一个 Query Execution Plan
来查看您是否需要在这部分查询中花费太多。
我正在 SQL 服务器上执行一个带有全文搜索的命令,但我在构建这样的动态查询时遇到了问题:
CONTAINS (MyTable, '@param1 AND @param2 AND NOT @param3')
所以我找到了一个替代方法来制作一系列 CONTAINS 命令,如下所示:
CONTAINS (MyTable, @param1)
AND CONTAINS (MyTable, @param2)
AND NOT CONTAINS (MyTable, @param1)
我的问题是:使用许多 CONTAINS
命令而不是像第一个示例那样只执行一个 SQL 命令是否有问题?
我不是 SQL 服务器专家,但我认为 SQL 服务器应该足够聪明,以这种方式编译它,它会有最好的性能。
我们不是在谈论像 Subquery
和 Join
这样的逻辑变化,它们会以不同的方式编译。第二个示例中的逻辑与第一个示例中的逻辑完全相同。所以你可以做你的选择。
如果你想通过编译时间,你应该使用stored procedure
。您还可以获得一个 Query Execution Plan
来查看您是否需要在这部分查询中花费太多。