以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Java/Eclipse 』  (http://bbs.xml.org.cn/list.asp?boardid=41)
----  [原创]SQLServer2005获取大数据集时内存不足FineReport报表软件的解决办法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=85420)


--  作者:finekuku
--  发布时间:6/22/2010 9:52:00 PM

--  [原创]SQLServer2005获取大数据集时内存不足FineReport报表软件的解决办法
SQLServer2005获取大数据集时内存不足FineReport[URL=http://www.finereport.com/cn/functions.html]报表软件[/URL]的解决办法

一. 问题描述:
   使用  SQL Server  jdbc读取SQLServer2005中的大数据量表时,如数据量达到20万时,发生如下类似错误:
按此在新窗口浏览图片

二. 原因:
   发生该情况与sqlserver jdbc驱动的select Method有关。selectMethod分为direct和cursor。当使用direct时,驱动会一次性载入所有结果集到jvm内存中,因此造成了out of memory;而使用cursor时,会在服务器端创建一个cursor,因此不会占据客户端的大量内存。
  注意:此问题只存在于MS SQLSERVER,其它关系型数据库无此问题

三. 解决办法:
    修改SQLServer2005 jdbc的URL:
jdbc:sqlserver://192.168.100.118:1433;databaseName=test;selectMethod=cursor
如下图:
按此在新窗口浏览图片
但这种方式会影响整个应用程序,可能引起其他普通情况的读取性能下降。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms