我习惯于使用一个stringbuilder来建立一个Sql语句来执行,因为这样可以让我在代码中保持格式化和可读的语句。然而,它可以产生一种效率低下的语句大量额外空白:在执行它们之前,我应该从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是问题的一个例子,甚至可能不正确。
在我将它传递给一个要执行的命令对象之前,我应该从这里除去空白吗?或者命令会自己做,或者这只是一个不值得考虑的微观优化?
我不认为有可衡量的差异。 – 2012-03-15 15:47:20
@juergend - 这取决于很多因素。每秒如果你的服务器被100次查询命中,该怎么办?我敢打赌它变得可衡量。 * [是的,这确实发生在实时环境中。不,我怀疑它适用于这里;)] * – MatBailie 2012-03-15 15:54:09
*咳嗽*存储过程*咳嗽* – onedaywhen 2012-03-15 16:16:13