首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

如何在少占用cpu的前提下往数据库里写入海量数据

2012-02-05 
怎么在少占用cpu的前提下往数据库里写入海量数据数据量每小时在5万条左右,在程序里面循环调用存储过程的插

怎么在少占用cpu的前提下往数据库里写入海量数据
数据量每小时在5万条左右,在程序里面循环调用存储过程的插入单条数据的过程来插入数据,但CPU的占用率达到百分之百,我想一次传入一万条的数据,让存储过程只执行一次,但不知道存储过程能否传数组或结构体!不知道高手们有什么好的建议?

[解决办法]
大数据量的插入,一般数据库都有专门的方法
比如SQLServer和Sybase就可以用bcp

[解决办法]
循环使用Sleep(uint)
[解决办法]
下面是 SQL SERVER 帮助中的说明:

================================================

使用 BULK INSERT 语句,还可以将数据从数据文件传送到 SQL Server 表。然而,BULK INSERT 语句不能将数据从 SQL Server 实例大容量复制到数据文件。BULK INSERT 语句使您得以利用 Transact-SQL 语句而不是命令提示符来实现 bcp 实用工具的功能,将数据大容量复制到 SQL Server 实例。

还可以通过编写程序,使用大容量复制 API 在 SQL Server 和数据文件之间大容量复制数据。大容量复制 API 可以在基于 ODBC、OLE DB、SQL-DMO 和 DB-Library 的应用程序中使用。

================================================

你可以先把数据保存成文本文件,经过一定的时间以后,导入数据库。
[解决办法]
oracle的话,可以试着使用单个sql语句的绑定变量写法啊
就是
insert into t values(:x)之类的写法
跟普通的sqls相比,大约可以节省几倍的资源……

不知道适合你要求不

热点排行