- 浏览: 918494 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (445)
- 备忘 (0)
- java基础 (28)
- jsp (15)
- css (4)
- javascript (30)
- struts (7)
- servlet (2)
- struts2 (7)
- jdbc (16)
- hibernate (22)
- ibatis (0)
- jpa (1)
- spring (17)
- spring定时任务 (8)
- 整合开发 (12)
- JavaArticle (0)
- php (6)
- velocity (2)
- mysql (19)
- sqlserver (52)
- oracle (23)
- lucene (49)
- ajax (13)
- dwr (5)
- JFreeChart (1)
- service (14)
- tools (18)
- c#基础 (20)
- 程序安全 (0)
- 学习网站 (1)
- 社会需求 (2)
- flash (1)
- 流媒体 (1)
- java_code (1)
- htmlparser (1)
- 速动画教程 (5)
- 设计模式 (1)
- xml操作 (2)
- uml操作 (4)
- 测试 (1)
- linux (8)
- 版本控制 (4)
- 服务器 (12)
- 安全 (6)
- 美工 (2)
最新评论
-
Zhang_amao:
我想问一下, 你用的lucene版本和highligher的版 ...
使用Lucene的Highlighter实现文件摘要的自动提取 -
wangmengfanwangzhi:
博主,你的QQ是什么啊?有关于lucene的问题想要请教啊~~ ...
Lucene下载及测试 -
cutesunshineriver:
讲得很好,理解起来很顺,对个人学习的帮助性很大,谢谢博主。
velocity入门一 -
libin2722:
我这里有一个任务调度,在晚上3点时候会自动将数据库中某表的数据 ...
Lucene-2.2.0 源代码阅读学习(16) -
greatwqs:
java -cp $JVM_ARGS $classpath ...
java的cp命令
今天在修改search的建立索引的程序的时候,发现了这个错误
使用jdbc读取SQLServer2005的一个表全部记录,该表具有10W记录,结果发生以下错误:
- com.microsoft.sqlserver.jdbc.SQLServerException: 系统内存不足。请对大型 ResultSet 使用服务器端游标: Java heap space。ResultSet 大小:236,535,956。JVM 总内存大小:312,213,504。
- at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
- at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source)
- at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
- at com.microsoft.sqlserver.jdbc.SQLServerStatement$StatementExecutionRequest.executeStatement(Unknown Source)
- at com.microsoft.sqlserver.jdbc.CancelableRequest.execute(Unknown Source)
- at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(Unknown Source)
- at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(Unknown Source)
- com.microsoft.sqlserver.jdbc.SQLServerException: 系统内存不足。请对大型 ResultSet 使用服务器端游标: Java heap space。ResultSet 大小:236,535,956。JVM 总内存大小:312,213,504。
- at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
- at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source)
- at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
- at com.microsoft.sqlserver.jdbc.SQLServerStatement$StatementExecutionRequest.executeStatement(Unknown Source)
- at com.microsoft.sqlserver.jdbc.CancelableRequest.execute(Unknown Source)
- at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(Unknown Source)
- at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(Unknown Source)
com.microsoft.sqlserver.jdbc.SQLServerException: 系统内存不足。请对大型 ResultSet 使用服务器端游标: Java heap space。ResultSet 大小:236,535,956。JVM 总内存大小:312,213,504。 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerStatement$StatementExecutionRequest.executeStatement(Unknown Source) at com.microsoft.sqlserver.jdbc.CancelableRequest.execute(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(Unknown Source)
使用以下代码无效
- Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
- stmt.setFetchSize(100);
- Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
- stmt.setFetchSize(100);
Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); stmt.setFetchSize(100);
查文档得知与sqlserver jdbc驱动的select Method有关。selectMethod分为direct和cursor。当使用direct时,驱动会一次性载入所有结果集到jvm内存中,因此造成了out of memory;而使用cursor时,会在服务器端创建一个cursor,因此不会占据客户端的大量内存,办法有两种:
[list=1]
这种方式会影响整个应用程序,可能引起其他普通情况的读取性能下降。
- 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);
Statement stmt = con.createStatement(SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
这种方式会造成SQLServer的API侵入,但不失为一种更好的办法。
发表评论
-
数据权限
2012-10-30 12:47 10481 创建用户test 用户映射 映射到此登录名用 ... -
索引问题
2012-07-26 10:18 696//唯一行索引 create unique index 字段 ... -
SqlServer添加修改删除字段
2012-07-26 09:22 1071SqlServer(Transact-SQL): 添加 ... -
仅当使用了列的列表 并且 identity_insert 为 on 时 才能在表 中为标识列指定显式值。
2012-03-08 14:31 2243SET IDENTITY_INSERT products2 O ... -
sql server触发器
2010-10-28 11:21 1241最近在使用触发器实现数据同步,中间遇到两个问题问题一 大字段不 ... -
往Sqlserver插入数据报错:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
2010-04-19 11:19 2014在新闻表中有一个字段:Content Text类型其他方面都 ... -
sql server2005数据库备份恢复出错
2010-04-06 15:25 2546现象:备份成功,还原时提示--System.Data.SqlC ... -
创建链接服务器(oracle,sql server,access,excel)
2010-04-05 16:55 2897/////////////////////////////SQ ... -
SQL COUNT DISTINCT 函数
2010-03-23 16:40 1777SELECT COUNT(DISTINCT ... -
分解字符串-sql中执行带参数的函数
2010-03-12 16:22 1754set ANSI_NULLS ONset QUOTED_IDE ... -
过滤html
2010-01-19 17:33 945create function [dbo].f_FilterH ... -
使用正则表达
2010-01-19 17:31 959先创建自定义函数------- ... -
SQL中LEN ()与DATALENGTH ()
2010-01-04 16:42 1591LEN ( string_expression )参数:要计算 ... -
SQLServer2005新增序列功能的几个函数:ROW_NUMBER, RANK, DENSE_RANK, and NTILE
2009-12-07 15:43 10971 ROW_NUMBER SELECT Produ ... -
sqlserver数据库收缩
2009-11-03 21:26 1093有时候因为数据库日志文件过大,日志无须保存,清理空间 ... -
修改sqlserver密码
2009-10-09 09:06 1362验证的时候,选择按照Windows身份验证,就直接进去了……汗 ... -
获取SQL Server数据库元数据的方法
2009-10-02 14:06 1601数据简介元数据 (metadata) 最常见的定义为“有关数据 ... -
SQL数据导入导出大全
2009-09-13 17:57 1304******* 导出到excelEXEC master..xp ... -
insert into 后获得自动插入的id(select @@identity)
2009-06-23 17:11 2628当运行完插入语句后,执行select @@identity ... -
不同服务器数据库导入方法2
2009-05-11 10:16 1268这个是建连接的方法 还没有实践过 不同服务器数据库之间的数据 ...
相关推荐
SQL Server 虚拟内存不足是指在 SQL Server 启动过程中,服务器保留剩下的所有虚拟地址空间以供缓冲池使用,导致其他分配无法获取足够的虚拟内存。这种情况可能会导致服务器性能下降,影响数据库的稳定运行。 解决...
与 Microsoft Visual Studio 2005 集成之后,SQL Server Express 可以轻松的开发功能强大且安全的数据驱动应用程序,并允许快速部署这些应用程序。SQL Server Express 可以根据协议重新进行发布,并可作为客户端...
今天小编就为大家分享一篇完美解决因数据库一次查询数据量过大导致的内存溢出问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
邹建-中文版SQL Server2000开发与管理应用实例 一书的目录,可以对照一下 第 1 章 安装和配置SQL Server 1 1.1 SQL Server的版本和版本选择 1 1.2 安装SQL Server的常见问题 3 1.3 如何理解实例 5 ...
本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关...
结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行的信息查询,select。 ...
无论PL/SQL程序段的代码量有多大,其基本结构就是由这三部分组成。 如下所示为一段完整的PL/SQL块: /*声明部分,以declare开头*/ declare v_id integer;v_name varchar(20); cursor c_emp is select * from...
由于数据被分散到了多个服务器上,减少了每个服务器上的数据量,即使要进行大量数据的写入操作,处理起来也更加容易。同理,数据的读入操作当然也同样容易。 提升性能和增大规模 下面说一点题外话,如果想要使...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
所有的请求都是统一通过RESTAPI进行相应的资源与服务的请求,这样就能够保证系统提供的服务都是解耦的,极大的简化了系统,从而改善了系统的交互性和可重用性,同时也能够根据业务进行相应统一且透明的内存缓存 ...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...
也就是说,可以将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的类型可以是XML,二进制流,关系模型等 ORM:在持久化对象上...