大家节日快乐
希望永远都象童年那样开心..顺便讨论个小问题
现在我做的TOMCAT5.019+JDK1.5+MSSQL的服务器
配置是P42.0 内存为256M
我在查询的时候报outmemory
要从19W条记录中查询的结果记录数目才8000条 就报这个错误了有没有什方法 根据系统的可用内存 来返回查询的记录呢...?
比如说:我查询的结果是1W条 但是我现在的内存只够5000条记录...可否先将这个够用的内存分配给这个5000条记录 剩下的5000在等待...呢如果有释放 就立即将内存给剩下的5000记录...呵呵 不知道大家平时遇到这种情况是如何处理的 增加物理内存... ?
请大家说说..
希望永远都象童年那样开心..顺便讨论个小问题
现在我做的TOMCAT5.019+JDK1.5+MSSQL的服务器
配置是P42.0 内存为256M
我在查询的时候报outmemory
要从19W条记录中查询的结果记录数目才8000条 就报这个错误了有没有什方法 根据系统的可用内存 来返回查询的记录呢...?
比如说:我查询的结果是1W条 但是我现在的内存只够5000条记录...可否先将这个够用的内存分配给这个5000条记录 剩下的5000在等待...呢如果有释放 就立即将内存给剩下的5000记录...呵呵 不知道大家平时遇到这种情况是如何处理的 增加物理内存... ?
请大家说说..
呵呵 256M的是不够 我现在只有这么多数据
如果我是几百W条 或者几百Y条数据 不能只靠增加内存来解决吧 TO :kingofworl(良辰美景虚度) :
多给tomcat 分配内存,另外前台语句限制记录数
怎么控制 能否说说
我是用这个分页的..
page.setTotalRows(dao.size(null));
if (page.getTotalRows() > 0) {
page.setCurrentPage(0);
do {
try {
List list = dao.pagination(page.getPageSize(), page
.getCurrentPage(), "", null);
Iterator iter = list.iterator();
while (iter.hasNext()) {
SwtZjjg bean = (SwtZjjg) iter.next();
rowUpdate(bean);
} } catch (Exception ex) {
ex.printStackTrace();
log.error(ex);
}
if (page.isHasNext())
page.next();
} while ((page.isHasNext())); // page.setCurrentPage(i); }这是我以前分页取出记录的做法,希望能给你点帮助,哈
强烈建议加条子,如果实在不行,那只好数据库端分页了,oracle有rownum可以做,mysql就不知道了~~
还可以用RowSet分页.
你们说呢
<%@ page contentType="text/html;charset=gb2312" errorPage=""%>
<%@ include file="../jstl.inc"%>
<%@ taglib uri="http://jpager.com/taglibs/page" prefix="page"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<html>
<head>
<title>团队查询</title>
<LINK href="../css/hs_body.css" type=text/css rel=stylesheet>
</head>
<body marginheight="0" marginwidth="0" leftMargin=0 topMargin=0>....
<!---以下为查询的代码-->
<sql:query var="query_tuandui" dataSource="${database}"
sql="select * from data " >
</sql:query>
<!----结束--->
<table valign="top" bgcolor="#018c55" width="100%">
<tr align="center" >
<td class="font1" nowrap><div align="left">显示查询结果</div></td>
<td class="font1" nowrap><div align="left">
单位:<c:out value="${branch_name}"/> </div></td>
<td class="font1" nowrap><div align="left">时间:<c:out value="${start_date}"/> </div></td>
</tr>
</table>
<DIV id="move_x" style="OVERFLOW-X: scroll; WIDTH: 100%; TOP: 0px">
<table align="center" width="100%" bgcolor="#008800" border="0" cellspacing="1" cellpadding="2" leftMargin=0 topMargin=0>
<tr width="100%" height="20" bgcolor="#cccccc" nowrap>
<td nowrap style=" LEFT: expression(document.getElementById('move_x').scrollLeft); POSITION: relative;border-bottom:0px;border-right:0px" >
<div align="center"><b>序号</b></div></td>
<td nowrap style=" LEFT: expression(document.getElementById('move_x').scrollLeft); POSITION: relative;border-bottom:0px;border-right:0px" >
<div align="center">机构</div> </td>
<td nowrap style=" LEFT: expression(document.getElementById('move_x').scrollLeft); POSITION: relative;border-bottom:0px;border-right:0px" >
<div align="center">机构2</div> </td>
</tr> <page:pager dz="23">
<c:forEach var="row" items="${query_tuandui.rows}" varStatus="status">
<page:item nr="${status.count}">
<tr bgcolor="#FFFFFF" class="cssModuleBody" height="20" width="100%" nowrap>
<td nowrap style=" LEFT: expression(document.getElementById('move_x').scrollLeft); POSITION: relative;border-bottom:0px;border-right:0px" >
<div align="center">${status.count}</div>
</td>
<td nowrap style=" LEFT: expression(document.getElementById('move_x').scrollLeft); POSITION: relative;border-bottom:0px;border-right:0px" >
<div align="center">${row.branch_no1}</div></td>
<td nowrap style=" LEFT: expression(document.getElementById('move_x').scrollLeft); POSITION: relative;border-bottom:0px;border-right:0px" >
<div align="center">${row.branch_no2}</div></td>
</tr>
</page:item>
</c:forEach>
</page:pager>
</table>
</DIV> <table bgcolor="#018c55" width="100%" align="center" leftMargin=0 topMargin=0>
<tr align="center" valign="top" class="font1" width="100%">
<td align="center" nowrap><page:bt/></td>
</tr>
</table>
</body>
</html>
你到了8000W呢 内存不能解决吧 呵呵 以上是我的代码的一部分
想想有什么解决的 就是<!---以下为查询的代码-->
<sql:query var="query_tuandui" dataSource="${database}"
sql="select * from data " >
</sql:query>
<!----结束--->
查询 然后后面通过jpager分页
不知道这样是否合理呢?