社区
Web 开发
帖子详情
读.dat文件,写入数据库的问题.
lvjx125
2009-12-25 10:46:34
现在在做读取*.dat文件里的数据,并把数据插入到数据库中.问题是现在每导入8万条左右就出问题.
所以想把这个文件的记录分开导入.比如一次导5万条,但是不知道该怎么写.
我导5万后想断开一下再重新导,但是是要从5万零1开始.大家帮个忙吧.多谢了!
...全文
467
19
打赏
收藏
微信扫一扫
点击复制链接
分享
举报
写回复
19 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lvjx125
2010-01-05
问题没有解决,但是要谢谢大家的支持。
打赏
举报
回复
赞
lvjx125
2009-12-29
我才不到20W的数据,导入到10几W的时候就内存溢出了。郁闷啊
打赏
举报
回复
赞
crazylaa
2009-12-29
代码方面?你把文件整个load到内存了呗。。。
打赏
举报
回复
赞
lvjx125
2009-12-29
[Quote=引用 16 楼 crazylaa 的回复:]
引用 14 楼 lvjx125 的回复:
我才不到20W的数据,导入到10几W的时候就内存溢出了。郁闷啊
噢,那就把JVM内存调大点吧。不过这是治标不治本噢。
[/Quote]
就是啊。能不能帮我分析一下都什么情况会出现这种问题。(代码方面)
打赏
举报
回复
赞
crazylaa
2009-12-29
[Quote=引用 14 楼 lvjx125 的回复:]
我才不到20W的数据,导入到10几W的时候就内存溢出了。郁闷啊
[/Quote]
噢,那就把JVM内存调大点吧。不过这是治标不治本噢。
打赏
举报
回复
赞
lvjx125
2009-12-29
JVMST109: Insufficient space in Javaheap to satisfy allocation request
JVMST109: Insufficient space in Javaheap to satisfy allocation request
JVMDG217: Dump Handler is Processing OutOfMemory - Please Wait.
JVMDG315: JVM Requesting Heap dump file
..................................................JVMDG318: Heap dump file written to D:\WebSphere\AppServer\bin\heapdump.20091228.203708.1684.phd
JVMDG303: JVM Requesting Java core file
JVMDG304: Java core file written to D:\WebSphere\AppServer\bin\javacore.20091228.203726.1684.txt
JVMDG274: Dump Handler has Processed OutOfMemory.
JVMST109: Insufficient space in Javaheap to satisfy allocation request
JVMDG217: Dump Handler is Processing OutOfMemory - Please Wait.
JVMDG315: JVM Requesting Heap dump file
打赏
举报
回复
赞
crazylaa
2009-12-28
[Quote=引用 7 楼 lvjx125 的回复:]
求一段能把文件,分成多个的代码。每5万做成一个新文件
[/Quote]
用
Scanner src = new Scanner(new FileReader("Test.txt"));
然后for循环调用src.nextLine(),移动到指定行数。貌似没有直接移动到指定行的方法。
以前我readbyte也是这么做的。while循环,读过的不再处理,直接skip到指定byte位。
不知道现在1.6有没有这个方法。
打赏
举报
回复
赞
兔子党-大胡子
2009-12-28
[Quote=引用 4 楼 crazylaa 的回复:]
文件总共估计多大?什么数据库?
一般大中型数据库都有导入工具的,如果不存在特殊数据处理,建议还是用数据库工具吧。
如果用程序
.dat文件不知道你是readLine(String)还是read byte的方式。前者的话,直接记录行数,后者的话,记录当前已读完的字节总数。
插入时,采用PreparedStatement的executeBatch,大约1000至10000条提交一次。提交完成后记录当前已提交的上述已读行数or字节数到文件(写内存怕突然程序异常死掉)。
我做过2KW数据量的读字节文件导入,以上方法没问题。
[/Quote]
.~
打赏
举报
回复
赞
crazylaa
2009-12-28
[Quote=引用 10 楼 lvjx125 的回复:]
四、不健壮代码的特征及解决办法
1、尽早释放无用对象的引用。好的办法是使用临时变量的时候,让引用变量在退出活动域后,自动设置为null,暗示垃圾收集器来收集该 对象,防止发生内存泄露。对于仍然有指针指向的实例,jvm就不会回收该资源,因为垃圾回收会将值为null的对象作为垃圾,提高GC回收机制效率;
2、我们的程序里不可避免大量使用字符串处理,避免使用String,应大量使用StringBuffer,每一个String对象都得独立占用内存一块区域;例如
3、尽量少用静态变量,因为静态变量是全局的,GC不会回收的;
4、避免集中创建对象尤其是大对象,JVM会突然需要大量内存,这时必然会触发GC优化系统内存环境;显示的声明数组空间,而且申请数量还极大。
5、尽量运用对象池技术以提高系统性能;生命周期长的对象拥有生命周期短的对象时容易引发内存泄漏,例如大集合对象拥有大数据量的业务对象的时候,可以考虑分块进行处理,然后解决一块释放一块的策略。
6、不要在经常调用的方法中创建对象,尤其是忌讳在循环中创建对象。可以适当的使用hashtable,vector 创建一组对象容器,然后从容器中去取那些对象,而不用每次new之后又丢弃
7、一般都是发生在开启大型文件或跟数据库一次拿了太多的数据,造成 Out Of Memory Error 的状况,这时就大概要计算一下数据量的最大值是多少,并且设定所需最小及最大的内存空间值。
[/Quote]
嗯嗯,不错,总结得很好啊。
打赏
举报
回复
赞
lvjx125
2009-12-28
四、不健壮代码的特征及解决办法
1、尽早释放无用对象的引用。好的办法是使用临时变量的时候,让引用变量在退出活动域后,自动设置为null,暗示垃圾收集器来收集该 对象,防止发生内存泄露。对于仍然有指针指向的实例,jvm就不会回收该资源,因为垃圾回收会将值为null的对象作为垃圾,提高GC回收机制效率;
2、我们的程序里不可避免大量使用字符串处理,避免使用String,应大量使用StringBuffer,每一个String对象都得独立占用内存一块区域;例如
3、尽量少用静态变量,因为静态变量是全局的,GC不会回收的;
4、避免集中创建对象尤其是大对象,JVM会突然需要大量内存,这时必然会触发GC优化系统内存环境;显示的声明数组空间,而且申请数量还极大。
5、尽量运用对象池技术以提高系统性能;生命周期长的对象拥有生命周期短的对象时容易引发内存泄漏,例如大集合对象拥有大数据量的业务对象的时候,可以考虑分块进行处理,然后解决一块释放一块的策略。
6、不要在经常调用的方法中创建对象,尤其是忌讳在循环中创建对象。可以适当的使用hashtable,vector 创建一组对象容器,然后从容器中去取那些对象,而不用每次new之后又丢弃
7、一般都是发生在开启大型文件或跟数据库一次拿了太多的数据,造成 Out Of Memory Error 的状况,这时就大概要计算一下数据量的最大值是多少,并且设定所需最小及最大的内存空间值。
打赏
举报
回复
赞
JavaAlpha
2009-12-26
可以每次读取一行,如果数据是按行写入的。
while(i<50000)
设计一个静态变量把i。
或设计一个文件标记。
下次从标记加 1 开始读取。
打赏
举报
回复
赞
lvjx125
2009-12-26
DB2数据库,方文件大小在3MB左右吧,大概20W条以内.
readLing(String) 的方式.
采用PreparedStatement的executeBatch,大约1000至10000条提交一次。提交完成后记录当前已提交的上述已读行数or字节数到文件(写内存怕突然程序异常死掉)。 能给写的点代码吗?新手,拜托了!谢谢大家了。
打赏
举报
回复
赞
java_running
2009-12-26
用分页的思想去处理吧
打赏
举报
回复
赞
jabeginner
2009-12-26
更大的数据都可以导。可能文件或者程序有点问题吧
实在不行,就按你的方法来,不过加些改进。就是导完一个删除一个,导完5w再重新开始,这样就不用担心文件起点问题。
打赏
举报
回复
赞
crazylaa
2009-12-26
文件总共估计多大?什么数据库?
一般大中型数据库都有导入工具的,如果不存在特殊数据处理,建议还是用数据库工具吧。
如果用程序
.dat文件不知道你是readLine(String)还是read byte的方式。前者的话,直接记录行数,后者的话,记录当前已读完的字节总数。
插入时,采用PreparedStatement的executeBatch,大约1000至10000条提交一次。提交完成后记录当前已提交的上述已读行数or字节数到文件(写内存怕突然程序异常死掉)。
我做过2KW数据量的读字节文件导入,以上方法没问题。
打赏
举报
回复
赞
lvjx125
2009-12-26
求一段能把文件,分成多个的代码。每5万做成一个新文件
打赏
举报
回复
赞
laker_914
2009-12-25
楼上的方法可以,
打赏
举报
回复
赞
sean1203
2009-12-25
for(int i=1;i《=总行数/50000;i++){
跳到指定行,然后进行下面操作
for(int j=(i-1)*50000+1;j <i*50000;j++){
}
}
指针跳到50000*(--i)
剩余行数=总行数-50000*(i)
继续执行
-------------------
第二种方法貌似效率不高
还是第一种好
如果用第二种的话,可以用多线程来操作各自50000条数据
打赏
举报
回复
赞
sean1203
2009-12-25
应该没问题把
我100万的数据50M的文件都度过
你可以用批量读取然后插入
-------------------------
先获得总行数
然后分段
你5万一读的话
然后用for循环
for(int i=1;i《总行数/50000;i++){
跳到指定行,然后进行下面操作
for(int j=(i-1)*50000+1;j<i*50000;j++){
}
}
再执行剩余的
上面写的有点乱
基本这个意思。。。
打赏
举报
回复
赞
相关推荐
mysql导入
dat
文件
_.
dat
导入
数据库
参考文献:SQL Server BCP使用小结bcp Utility某社区600万用户数据导入MYSQL、MSSQL、Oracle
数据库
方法SELECT INTO 和 INSERT INTO SELECT 两种表复制语句1.bcp命令参数解析bcp命令有许多参数,下面给出bcp命令......
将.
dat
文件
导入
数据库
*最近在搞文本分类,就是把一批文章分成[军事]、[娱乐]、[政治]等等。 但是这个先需要一些样本进行训练,感觉文本分类和"...特别是看到
文件
后缀是.
dat
,当场是懵逼的。 **以前用过sqlLite,...
mysql grastate.
dat
_MySQL Galera Cluster grastate.
dat
文件
详解
定位最近状态的节点当我们关闭一个节点时,其seqno会
写入
grastate.
dat
文件
中,这时后续的seqno该节点将无法接收到注意
数据库
开启状态或者异常关闭时seqno值为-1当我们将所有节点关闭,准备重启时我们需要知道哪个...
c语言结构体
写入
dat
文件
中,.
dat
在C中的结构化
文件
处理(手册?)
假设你的数据项由一个固定大小的一个C结构基本Typedef的是这样的描述:typedef ...使用fopen(FileName, "wb")创建一个空
文件
用于写My
Dat
aItem的目的(如果在这个调用之前有这个名字的
文件
,它将被覆盖并且它的所...
java生成.
dat
文件
并
写入
数据
/** * @param args */ public static void main(String s[]) { try { String url = "F:\\gsm\\"; String FileName = "info.
dat
"; File file = new Fil...
mysql grastate.
dat
_Galera Cluster grastate.
dat
文件
详解
定位最近状态的节点当我们关闭一个节点时,其seqno会
写入
grastate.
dat
文件
中,这时后续的seqno该节点将无法接收到注意
数据库
开启状态或者异常关闭时seqno值为-1当我们将所有节点关闭,准备重启时我们需要知道哪个...
mysql导入
dat
文件
_后缀名为
dat
的
文件
肿么导入到sql
数据库
把
数据库
的备份
文件
放到服务器的任意目录下先,然后按下面的步骤做。如何从备份设备还原备份(企业管理器)从备份设备还原备份展开服务器组,然后展开服务器。展开"
数据库
"
文件
夹,右击
数据库
,指向"所有任务"子菜单,...
python处理
dat
数据_主流数据
文件
类型(.
dat
/.txt/.json/.csv)导入到python
手写很累,复制的同学请点赞犒劳下在下哦 ^_^一、对于.CSV类型的数据它们的数据导入都很简单且看下面一顿操作:我平时一般是
读
取整个
文件
,直接这样就可以了:1 importpandas as pd2
dat
a = pd.read_csv('test.csv',...
mysql grastate.
dat
_X. MySQL Galera Cluster全解析 Part 10 grastate.
dat
文件
详解
定位最近状态的节点 当我们关闭一个节点时,其seqno会
写入
grastate.
dat
文件
中,这时后续的seqno该节点将无法接收到 注意
数据库
开启状态或者异常关闭时seqno值为-1 当我们将所有节点关闭,准备重启时我们需要知道...
python处理ECG二进制
文件
(.
dat
文件
)和.db
文件
python处理ECG二进制
文件
(.
dat
文件
)和.db
文件
最近拿到了一批ECG原数据
文件
(包括.
dat
和.db
文件
),需要自己解析,记录一下解析结果。 1、.
dat
文件
是病人的心电数据,以二进制形式
读
取和解析。 数据
文件
的说明: ...
vb.net
读
取结构化
文件
.
dat
到
数据库
'
写入
数据到sql
数据库
’ cmd = New SqlCommand("insert_
dat
a", Conn) cmd.CommandType = CommandType.StoredProcedure cmd = New SqlCommand("insert_
dat
a", Conn) '- -------存储过程名称 cmd....
python输出
dat
格式_输出
dat
文件
C++
文件
操作初体验【摘要】学习是可以基于需求的,其必要性超了另外一种观点:按课本的顺序学。本文介绍了在C++中使用
文件
的最基本的方法,并试图通过给出的练习,使C++初学者能够对实际项目中输入输出中使用更广泛...
blk*.
dat
- 比特币数据
文件
格式及
读
取方法
比特币节点(Bitcoin Core)的~/.bitcoin/blocks/目录中的blk.
dat
文件
中包含了节点接收到的原始区块数据,这些数据
文件
构成了比特币区块链的基础,同时也是区块链数据分析获取比特币区块和交易数据的最高效的途径。...
如何将后缀为
dat
的数据
文件
插入
数据库
$con = @mysql_connect("localhost","root","") or die('error'); mysql_query("set names 'gbk'"); // //这就是指定
数据库
字符集,一般放在连接
数据库
后(解决
数据库
乱码) ...$dreamdb = file("miyu.
dat
")
QQWry.
dat
导入Mysql显IP程序
转:QQWry.
dat
导入Mysql显IP程序 一、去www.CZ88.net下载最新的纯真IP
数据库
!然后用自带的程序解压出TXT来。 二、把解压出来的TXT放去站点目录(随便你自己站点下的目录,如我的是/var/www/),因为我用的是UTF...
QT5.9
dat
文件
数据存储与
读
取
最近工作需要将Can报文中部分数据提取出来,并存到
dat
文件
(因为
dat
文件
体积小),当需要数据分析的时候再从
dat
文件
中提取出来,考虑到
dat
只能存二进制数据,使用QBytearray数据格式进行存储
读
取 你好! 这是你第一...
python数据
读
写 panda(to_csv和read_csv)【
读
取
dat
文件
】【
写入
dat
文件
】【非csv
文件
并且有多列数据时】
python数据
读
写 panda(to_csv和read_csv)【
读
取
dat
文件
】【
写入
dat
文件
】
java将mysql数据
写入
到txt_java如何从
数据库
读
取数据并
写入
txt
文件
?
展开全部写Java程序时经常碰到要
读
如txt或
写入
txt
文件
的情况,但是由于要定义好多变量,经常记不住,每e69da5e6ba9062616964757a686964616f31333365643562次都要查,特此整理一下,简单易用,方便好懂![java]...
计算机软件-商业源码-水木清华_Delphi精华.zip
计算机软件-商业源码-水木清华_Delphi精华.zip
电商公司组织架构.pdf
电商公司组织架构.pdf电商公司组织架构.pdf电商公司组织架构.pdf电商公司组织架构.pdf电商公司组织架构.pdf电商公司组织架构.pdf电商公司组织架构.pdf电商公司组织架构.pdf
发帖
Web 开发
加入
微信扫一扫
点击复制链接
8.0w+
社区成员
34.1w+
社区内容
Java Web 开发
申请成为版主
帖子事件
创建了帖子
2009-12-25 10:46
社区公告
暂无公告