如何用SQL语句将数据批量插入数据库

如何用SQL语句将数据批量插入数据库,第1张

如果是sql server,用transaction sql写;

如果是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))


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9609608.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存