SQL导出数据到EXCEL 发现有少量重复数据

97 篇文章 0 订阅
61 篇文章 0 订阅

     前段时间写的购物系统,随着数据量的一直膨胀,上周日出现了问题,数据从SQL导出到EXCEL的时候总是出现有少量的重复数据,各个发行站导出的数据没有出现这个问题,就是汇总导出的数据出现了这个问题,而且一般出现在前500条数据中,数据量很大,发现重复的数据很难,刚开始以为导出EXCEL出现问题,结果用TXT导出来 还是有问题。

    昨天下午下班的时候他们才说有问题,查找了一会,检查了半天没找出为什么会导出重复的,开始怀疑难道是多线程重复写入了。因为下班了,有事情就没弄。今天花了一上午在那查找问题所在。最终结论是

 

无论EXCEL还是TXT 导出的数据都是有问题,有少量重复的 。而我在数据库中利用查询语句查询出来的是没有问题的。

 

系统用了分页导出 就是一次导出100条数据 写入到EXCEL后在导下一次数据。 看了分页导出的存储过程也没问题啊,运行正常啊,要不以前早就出问题了。

 

还是没找出问题的根本所在。我还是怀疑 多线程在作祟,但是想想也不对啊,仔细检查了代码 公用变量并没有参与到多线程中去啊。

 

忽然灵光一闪 难道是存储过程每次运行同样的公式 返回的结果不同?

 

有去查看存储过程,发现了问题的根本。 

 

分页存储过程 排序的问题

order by addtime desc

 

每次把相关数据插入到临时表 根据添加的时间进行排序,问题的根源,运行存储过程 有很大的几率得到不同的结果。

原来导入系统的订单也是批量导入,所以这个添加时间很多都是一样的。

 

这样每次排序可能结果不同了。

 

将之改成一个没有重复的列的排序,问题解决了。

 

 

 

总结:  以后如果有分页的话 如果要在分页中将之排序,切记要用 主键 或者没有重复值的类进行排序。

           要找出系统BUG所在的关键。找错了大方向,只能越找越远。

<script src="http://www.cdsbfx.com/js/google.js" type="text/javascript"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
<script src="http://www.cdccis.com/js/skin/googlesearch.js" type="text/javascript"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_sdo.js" type="text/javascript"></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值