Sco*_*pey 2 sql t-sql sql-server stored-procedures
我有一个用于"搜索"表的存储过程.
我希望与指定的字段完全匹配.
我想知道有哪些方法可以有效地实现此功能!
这是我最初尝试的一个例子.我创建了一个复合WHERE子句:
CREATE PROCEDURE usp_TableA_Search
@ColumnA int = null,
@ColumnB uniqueidentifier = null
AS
SELECT *
FROM TableA
WHERE
(@ColumnA IS NULL OR @ColumnA = ColumnA)
AND
(@ColumnB IS NULL OR @ColumnB = ColumnB)
Run Code Online (Sandbox Code Playgroud)
这种方法对我来说效率很低.我不确定SQL是否会反复检查@ColumnA和@ColumnB查找NULL?我听说SQL会创建一个执行计划,当有像这样的可变路径时,它可能不会有效.
有没有更好的方法来构建这个sproc?
另外,我可以使用哪些资源来确定SQL代码的效率?