繁体   English   中英

WHERE子句中恒定值的最佳实践?

[英]Best practice for constant value in the WHERE clause?

我有一个where子句,将两列与以下字符串进行比较。 此串联是否针对每一行运行? 该字符串(和串联)应该保留两次还是应该创建一个变量来保存结果并在WHERE子句中使用它?

CONCAT('%', @myVar, 'dr')

我在数据库中存在的测试表中检查了您的表达的执行计划。 该表有两个nvarchar(50)列,即firstnamefullname

在此处输入图片说明

我可以清楚地看到,即使对于我故意在where子句中使用的三个AND条件,SQL Server引擎在两个compute scalar步骤中也显示出0%的成本。 显而易见的事实是,无论您是为串联表达式创建一个单独的变量还是将其保留在where子句中的行内变量都不会产生任何影响。

创建一个变量来保存结果,并在WHERE子句中使用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM