SQLServer2005获取大数据集时内存不足FineReport报表软件的解决办法

2010/06/24 by FineReport——web报表技术领跑者 留言板 »

SQLServer2005获取大数据集时内存不足FineReport报表软件的解决办法

一. 问题描述:

       使用  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

如下图:

        但这种方式会影响整个应用程序,可能引起其他普通情况的读取性能下降。

Web报表主题相关文章:


Advertisement

留言板

以新浪微博帐号登录