记录量大时,如何加快写入速度

mhcio 2005-03-10 02:37:18
我用ADOQuery往MSSQL中写记录
ADOQuery1->Connection = ADOConnection1;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();

try
{
ADOQuery1->SQL->Text = strSQL;
ADOQuery1->ExecSQL();
}
catch(...)
{
return 1; // ADOQuery exec failed
}

strSQL就是Insert into table values(...)
写入记录的那个SQL语句
当记录量很大时,有个8万10万条记录
这样一条一条写入数据库是不是太费时间了
有没有别的方法
高手告知,谢谢!
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zarge 2005-03-11
  • 打赏
  • 举报
回复
如果是文件的话,执行Bulk Insert批量读入,如

BULK INSERT Northwind.dbo.[Order Details]
FROM 'f:\orders\lineitem.tbl'
WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = '|\n' )

另外,MSSQL的BCP命令行工具或者图形化的DTS数据转换服务都可以很方便的实现批量载入数据的功能
sunxiaohui 2005-03-11
  • 打赏
  • 举报
回复
另外:可以考虑使用多线程同时向数据库写入数据,当然数据库服务器性能不能是系统的瓶颈。
sunxiaohui 2005-03-11
  • 打赏
  • 举报
回复
如果是文件的话,使用数据库的load命令会快一些。
如oracle数据库。定义装入的ctl文件,使用sqlload直接装入即可,但文件格式要求高。
zengwujun 2005-03-10
  • 打赏
  • 举报
回复
批量提交
ADOConnection1->BeginTrans()
ADOConnection1->CommitTrans()
mhcio 2005-03-10
  • 打赏
  • 举报
回复
是下面传上来的记录
在服务器上处理
tiggle 2005-03-10
  • 打赏
  • 举报
回复
可以用批量写入
insert into table select * from table
mhcio 2005-03-10
  • 打赏
  • 举报
回复
等待中...

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧