
如果是oracle,用pl/sql写。
这两种语法都可以写一些逻辑语句,跟一些高级语言差不多,随便搜一下就有介绍了。自己学学,不多讲了。
用JDBC也可以,不过稍微麻烦点。用上面的方法可以直接在DBMS的客户端运行,简单直接。
--------------------------------------------
上面我说的,好像不太适合你这个问题。确实用JDBC(Java语言)或ODBC(C++)写代码能实现:循环读文件里面的每条数据,生成相应的sql语句,然后调用API写入数据库。
还有一个方法就是,用txt或excel保存数据,然后用sql server2000的企业管理器导入txt或excel文档,你按着向导试试看。
导入时把生成索引给关掉,应该能快一点.不要一边导入一边建立索引.
8G数据,应该也不那么慢了.
把sql语句文件读取出一部分看看,建表语句中,应当有建立索引的部分,删掉它!
只做建表和插入数据两件事.
还有,看看数据库有没有外键?
尽量在插入数据过程中去掉外键关联.
等数据插入完成之后再加索引和外键,应该能提高很多读写性能.
截取一部分数据,例如100Mb.
插入一下试试,可以预先对整体时间有一个预期.
还有,真的要弄台好点的电脑,或者去借一台,等把数据导入完成之后,把msyql的库文件直接复制出来放自己机器上跑就好.
emm..
再追加点信息,要先搞明白,sql原文件里,到底都执行了哪几类 *** 作?
可能需要你用c之类写点小工具,或者别的什么语言,分块读取并处理文件.
8G..
嗯,还好.
现在内存都够大,否则你都没法直接用软件打开了.
只有8G也可以直接用软件打开看.
停掉索引真的可以大幅度加快插入数据的速度.
建议试一试!
在一些数据量比较大,而且 *** 作数据库频繁的。此时需要将数据表datatable整块的存入数据库中。不多说,直接上代码:
首先得新建一个数据库
DataTable
once_rec_date
=
new
DataTable()
这个数据库得跟目标数据库的列的位置和大小都得一样。特别是类型,和位置。
就是列的位置和目标数据库的位置,顺序得
一模一样。因为都是块存储,所以地址什么的都得一样,千万不能少一列,自增列可以空在那边。
在初始化中初始化该表
once_rec_date.Columns.Add("id", typeof(int))
once_rec_date.Columns.Add("RevData_cmd", typeof(int))
once_rec_date.Columns.Add("Node", typeof(int))
once_rec_date.Columns.Add("Data", typeof(String))
once_rec_date.Columns.Add("Ssingle", typeof(int))
once_rec_date.Columns.Add("IsWiressData", typeof(int))
once_rec_date.Columns.Add("Datatime", typeof(DateTime))
once_rec_date.Columns.Add("Receivetime", typeof(DateTime))
once_rec_date.Columns.Add("IsMatch", typeof(int))
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)