是无效的vs isnull(@ param,'%')之谜

时间:2014-01-14 17:06:30

标签: sql sql-server-2008

我有一个带有名为@MatterNumber的参数的存储过程,其默认值为null。在where子句中有以下行:

and (m.Name like @MatterName or @MatterName is null)

当针对某些数据测试proc时,执行需要30秒以上。如果我将上面的行替换为下面的行,它几乎会立即执行。两条线之间有什么区别?为什么?

and m.Name like isnull(@MatterName, '%')

0 个答案:

没有答案