
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服务器的内存?
哪位朋友知道的请指点一下,不胜感激! 展开
数据库: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服务器的内存?
哪位朋友知道的请指点一下,不胜感激! 展开
2个回答
展开全部
首先回答1、2的问题:
> executeQuery(strSql);主要是消耗DB服务器上的内存
> while(rs.next)是消耗WEB服务器上的内存
对于500W条数据,不论DB服务器还是WEB服务器,都会消耗很多内存.
3、“取一条记录,保存一条记录到文件中”:这样做会在一定程度上会节约很多内存(在500W条数据时会很明显),但是在取操作上可能会麻烦点,增加了复杂度,在实际运用中要看项目的具体取舍。
> executeQuery(strSql);主要是消耗DB服务器上的内存
> while(rs.next)是消耗WEB服务器上的内存
对于500W条数据,不论DB服务器还是WEB服务器,都会消耗很多内存.
3、“取一条记录,保存一条记录到文件中”:这样做会在一定程度上会节约很多内存(在500W条数据时会很明显),但是在取操作上可能会麻烦点,增加了复杂度,在实际运用中要看项目的具体取舍。

2025-03-26 广告
Java深度解决方案涉及多个方面。在企业应用开发中,可利用Java的跨平台性、高性能构建稳定系统。针对并发问题,可通过Java内存模型(JMM)及volatile关键字、synchronized同步块等确保线程安全。同时,借助Java的新特...
点击进入详情页
本回答由福州东方锐智提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询