java访问数据库返回大数据量的性能问题

请教高手,关于查询机制的问题数据库:oracle我现在这样执行rs=handle.executeQuery(strSql)一条语句这一语句strSql是一个简单的查询语句... 请教高手,关于查询机制的问题
数据库:oracle
我现在这样执行 rs=handle.executeQuery(strSql)一条语句
这一语句strSql是一个简单的查询语句,但会返回几百万条记录(500w以上)。
问题:
1.如果只是执行这条sql而不用while(rs.next())来取数据的话,是否会需要执行很多的时间,
是用while(rs.next())来遍历所有的记录需要更多的时间,还是执行那条sql(也就是handle.executeQuery(strSql);)花更多的时间?
2.如果我只执行executeQuery(strSql);而不遍历它的结果集会不会耗web服务器上的内存?
3.这个问题其实和问题2差不多,如果我用while(rs.next())来遍历这个结果集,但我不把整个结果集保存在中间变量中(一般是数组中),而是取一条记录,保存一条记录到文件中,这种情况会不会很耗web服务器的内存?
哪位朋友知道的请指点一下,不胜感激!
展开
 我来答
hackersun12345
2008-11-14 · TA获得超过107个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:108万
展开全部
首先回答1、2的问题:
> executeQuery(strSql);主要是消耗DB服务器上的内存
> while(rs.next)是消耗WEB服务器上的内存
对于500W条数据,不论DB服务器还是WEB服务器,都会消耗很多内存.
3、“取一条记录,保存一条记录到文件中”:这样做会在一定程度上会节约很多内存(在500W条数据时会很明显),但是在取操作上可能会麻烦点,增加了复杂度,在实际运用中要看项目的具体取舍。
福州东方锐智
2025-03-26 广告
Java深度解决方案涉及多个方面。在企业应用开发中,可利用Java的跨平台性、高性能构建稳定系统。针对并发问题,可通过Java内存模型(JMM)及volatile关键字、synchronized同步块等确保线程安全。同时,借助Java的新特... 点击进入详情页
本回答由福州东方锐智提供
litianyang1313
2008-11-14
知道答主
回答量:48
采纳率:0%
帮助的人:36.8万
展开全部
我不知道,但是我认为用while(rs.next())来取数据比较适合读大量的数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式