Java軟件報(bào)表軟件技術(shù)博客

          java報(bào)表軟件技術(shù)匯總 java報(bào)表軟件制作 報(bào)表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理
           

          SQLServer2005獲取大數(shù)據(jù)集時(shí)內(nèi)存不足FineReport報(bào)表軟件的解決辦法

          . 問題描述:

             使用  SQL Server  jdbc讀取SQLServer2005中的大數(shù)據(jù)量表時(shí),如數(shù)據(jù)量達(dá)到20萬時(shí),發(fā)生如下類似錯(cuò)誤:


          . 原因:

             發(fā)生該情況與sqlserver jdbc驅(qū)動(dòng)的select Method有關(guān)。selectMethod分為directcursor。當(dāng)使用direct時(shí),驅(qū)動(dòng)會(huì)一次性載入所有結(jié)果集到jvm內(nèi)存中,因此造成了out of memory;而使用cursor時(shí),會(huì)在服務(wù)器端創(chuàng)建一個(gè)cursor,因此不會(huì)占據(jù)客戶端的大量?jī)?nèi)存。

            注意:此問題只存在于MS SQLSERVER,其它關(guān)系型數(shù)據(jù)庫無此問題

          . 解決辦法:

              修改SQLServer2005 jdbcURL:

          jdbc:sqlserver://192.168.100.118:1433;databaseName=test;selectMethod=cursor

          如下圖:

           
          這種方式會(huì)影響整個(gè)應(yīng)用程序可能引起其他普通情況的讀取性能下降。



          主站蜘蛛池模板: 永宁县| 耒阳市| 定安县| 昭苏县| 宁强县| 饶阳县| 常熟市| 长泰县| 石林| 平定县| 蕉岭县| 永德县| 浦江县| 潍坊市| 湘潭县| 福清市| 日照市| 都昌县| 金山区| 库车县| 靖州| 禄丰县| 旺苍县| 淄博市| 开鲁县| 历史| 岳池县| 青冈县| 大埔县| 桃园县| 电白县| 繁峙县| 沙坪坝区| 新绛县| 岳阳县| 中宁县| 沽源县| 鄂伦春自治旗| 太和县| 会同县| 四川省|