冰火
考虑老鸟问题的菜鸟

背景:

昨天在博客园浏览别人的文章《C# 不要自动四舍五入!》(地址:http://www.cnblogs.com/eweb/archive/2012/05/18/2507468.html)时,发现了自己之前的文章《C#,double和decimal数据类型以截断的方式保留指定的小数位数》(地址:http://www.cnblogs.com/return8023/archive/2012/05/17/2507084.html)一个Bug:没有考虑到负数的情况,导致负数在截断保留指定的小数位数时结果非预期。

解决方案:

本来昨天已经在我的那篇文章中做了修改,并且在文章的底部,做了勘误说明。后来仔细想了想,确认了最终的解决方案:在原文章里面把错误的地方改过来(最坏的情况是删除文章,如果文章的出发点就是错的的话),保证之后的读者看到的是勘误过后的文章,然后把错误有关的细节汇总到正在写的这篇《勘误和免责声明》里。

声明:

开博客的初衷是分享自己的开发经验。

因本人精力及能力有限,不保证内容100%的正确性,通过使用本博客内容随之而来的风险与本博客及其作者无关。当使用本博客时,代表您已接受了以上条款。

本博客内容,如无特殊声明,欢迎转载,转载请注明出处;如果您的文章有引用到本博客的内容,也请以超链接的形式,标明原始出处,谢谢O(∩_∩)O~

勘误列表:

1.

文章标题:C#,double和decimal数据类型以截断的方式保留指定的小数位数

发表日期:2012-05-17

勘误日期:2012-05-20

错误描述:没有考虑到负数的情况,导致在计算负数时结果非预期。

2.

文章标题:C#拼接SQL语句,SQL Server 2005+,多行多列大数据量情况下,使用ROW_NUMBER实现的高效分页排序

发表日期:2012-05-20

勘误日期:2012-05-27

错误描述:

原文:性能优化的一点儿建议:如果字段的值是计算出来的,如:总价=单价*数量,而此时需要总价大于多少的记录,还得拿总价递增或者递减排序,如果不要临时表,数据量大的时候,就等着买新电脑吧!你问我为什么要买新电脑,哦,因为你会把现在的电脑砸掉!O(∩_∩)O~

修改后:性能优化的一点儿建议:如果字段的值是统计出来的,通常是在视图中,且结果集很大,且需要对结果集分页排序,可以使用临时表规避不稳定的查询效率(关于不稳定的查询效率,会在之后的文章中示例);

说明:原文中描述的不够准确,计算列确实会影响查询的效率,但是单纯的“总价=单价*数量”这样的计算(不含SUM,COUNT等统计函数),对于效率的影响是很小的,因为计算所涉及的记录很少,最多也就表达式中每个字段取自不同的记录;而统计函数不同,每次计算几乎涉及所有的结果集(可能不包括值为NULL的);统计的时候让电脑专心点儿,这样才能事半功很多倍

posted on 2012-05-20 14:27  剑过不留痕  阅读(891)  评论(0编辑  收藏  举报