一个异常,请高手指点迷经 本帖最后由 huaxianpeng 于 2009-11-21 14:28:35 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ResultSet 大小:79,021,213。JVM 总内存大小:66,650,112。 sqlserver jdbc驱动的select Method有关。selectMethod分为direct和cursor。当使用direct时,驱动会一次性载入所有结果集到jvm内存中,因此造成了out of memory;而使用cursor时,会在服务器端创建一个cursor,因此不会占据客户端的大量内存,办法有两种: 修改SQLServer2005 jdbc的URL: jdbc.url=jdbc:sqlserver://127.0.0.1;instanceName=ProductDB;databaseName=product_index;selectMethod=cursor 这种方式会影响整个应用程序,可能引起其他普通情况的读取性能下降。 使用如下代码 Java代码 Statement stmt = con.createStatement(SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); Statement stmt = con.createStatement(SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);这种方式会造成SQLServer的API侵入,但不失为一种更好的办法。 up一楼!请教一下:可以解释一下什么是SQLServer的API侵入吗 checked 选不中的问题。在线等。 生成properties文件的问题 自己实现JVM ECLIPSE语法着色的问题 java内存溢出 String值的问题 struts2,如何在action中接受optiontransferselect标签中的值 HIbernate saveOrUpdate(obj)问题! 只知道一个节点的名称,不知道它是哪个节点的字节点,如何获的该节点的值? 高分求教!!! 关于java中路径中包含空格的问题 从数据库中获取数据如何分页显示
修改SQLServer2005 jdbc的URL: jdbc.url=jdbc:sqlserver://127.0.0.1;instanceName=ProductDB;databaseName=product_index;selectMethod=cursor
这种方式会影响整个应用程序,可能引起其他普通情况的读取性能下降。
使用如下代码 Java代码
Statement stmt = con.createStatement(SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); Statement stmt = con.createStatement(SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
这种方式会造成SQLServer的API侵入,但不失为一种更好的办法。