在执行SQL语句之前,我是否应该修剪它们的空白
本文关键字:修剪 空白 是否 SQL 执行 语句 | 更新日期: 2023-09-27 18:27:50
我习惯于使用字符串生成器来构建要执行的Sql语句,因为这使我可以在代码中保持语句的格式和可读性。然而,它可能会产生一个有大量额外空白的低效语句:
sb.AppendLine (@"SELECT DISTINCT *");
sb.AppendLine (@" FROM ( SELECT col1");
sb.AppendLine (@" , col2");
sb.AppendLine (@" , col3 ");
sb.AppendLine (@" , col4");
sb.AppendLine (@" FROM (SELECT *");
sb.AppendLine (@" FROM TABLE )";
sb.AppendLine (@" WHERE col5= col1 ");
sb.AppendLine (@" AND col6 = col2 ");
sb.AppendLine (@" GROUP BY col1");
sb.AppendLine (@" , col2");
sb.AppendLine (@" ORDER BY col3");
这个sql就是这个问题的一个例子,甚至可能不正确。
在将空白传递给要执行的命令对象之前,我应该去掉它吗?还是命令会自己这样做,或者这只是一个不值得思考的微观优化?
这就是我在代码中声明SQL查询的方式:
string query = @"
select columns
from table
where condition = 1
";
以下是专业人士:
- 可读性更好,没有杂乱
- 我可以很容易地将SQL块复制到SQL客户端工具中
- 版本控制diff工具将很容易地只向我显示查询中发生了什么变化
到目前为止没有缺点:)
更新
哦,是的,我认为担心额外的空白是过度优化。
正如您已经说过的,我认为您过度优化了。你说的可能是100字节。你的结果集可能会比这个大。