从oracle数据库的一个表中一次要取出100万条数据,急需高手帮忙,麻烦说个原理或者给段示例代码出来
从oracle数据库的一个表中一次要取出100万条数据,主要是数据库里面的数据太多了,如果查询的跨度比较大,比如是半年。读出来的数据直接超过百万了,如果在C#中,一次读出这么多数据到数据集dataset中,然后再把数据集中的数据填充到listview中,在读取到dataset的时候(dataset.fill("mytable"))程序就直接死了。有什么好的方法可以解决这个问题吗,我在数据库表里面已经建立索引了,这样大的数据貌似没有什么作用。
------解决方案--------------------你读取100万数据,需要很大的内存或虚拟内存.所以造成你的程序死机.
你可以考虑读取100万的关键字,然后通过关键字去逐一获取数据.
------解决方案--------------------为什么要一次取出这么多数据。
可以只取出一个窗体或一个页面显示中需要的数据。
如果目的不是为了把数据显示出来,而就是把数据取出来进行处理,那也可以一部分一部分取啊
没必要一下子取出来,不行的。
------解决方案--------------------我之前写过类似的C#,我当时要导出的是图片数据,也是量比较大,我直接通过IO流来完成,不用数据集,直接用sqldatareader
循环读取出来
------解决方案--------------------做分页,体验好点做持续分页
------解决方案--------------------我现在做的是省公安局的联动系统,有时候别人要查一下几个月内发生了多少案件,可能一下就冒出几百万条。我们是这样做的,左边放查询条件,右边放一个listview显示查出来的案件及信息,下边的状态条显示一共查出了多少条数据出来。程序是cs的,觉得你说的一部分一部分取好像可以。还有没有什么类似的方法吗,谢谢大牛!
==========================================
你一下子显示几百万条吗?能看的过来吗?
显示统计的总数,多少条信息用分页;可进一步设置条件精确查询,缩小显示的范围。
------解决方案--------------------这不是很简单么,就告诉别人按照条件搜索到多少条,然后每次显示x条让他自己去点下一页,你一下子把几百万条数据提取出来,应用服务器肯定崩
------解决方案--------------------大批量数据肯定要分页的。显示一个页面也不实用,那么多得数据怎么看他需要的。或者你先只汇总显示按地区,时间段,多少条。他需要看具体的,就选择汇总的出来的其中一条或者多条数据进行明细查询,量大依然要分页。