怎么才能加快插入记录的速度

runrunrun 2003-08-26 11:23:56
在程序中用多条Insert语句在数据库中插入大约四十兆的数据大约需要三分钟的时间。有什么方法可以加快插入数据的速度,比如先删除索引再重建索引,不写日志等等。还有什么好一点的方法呢
...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoloudy 2003-08-27
  • 打赏
  • 举报
回复
先关掉记录日志 sp_dboption 'Northwind','bulkcopy','true'
BULK INSERT Northwind.dbo.[Order Details]
FROM 'f:\orders\lineitem.tbl'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|\n'
)
friendliu 2003-08-27
  • 打赏
  • 举报
回复
当你进行大量的数据INSERT时,
这些插入的信息也是写入日志的,
30MB的大量数据速度应该会有影响的
所以关掉日志能提高速度的
dlkfth 2003-08-27
  • 打赏
  • 举报
回复
日志关掉速度会提高很快。

你插入的过程中,是要写日志的。

填充因子调整到合适,速度也会提高。

用insert into select 要比循环insert 快 10倍左右
liuyun2003 2003-08-27
  • 打赏
  • 举报
回复
不写日志和暂时关掉索引都不能增加速度的。日志不写我不知道怎么样。不过如果暂时删除索引在建立的话,你只能使这个过程的时间变长。因为当你重建索引的时候,所有数据都要参加重建索引,速度会更慢。
不过既然你的数据有40M这么多,那么一定是以什么方法存储在某个介质上,你可以试试用DTS或者批添加处理。
txlicenhe 2003-08-27
  • 打赏
  • 举报
回复
把不必要的触发器也暂时屏蔽掉。
alter table yourTable disable Trigger yourTrigger
insert ...
alter table yourTable enable Trigger yourTrigger
runrunrun 2003-08-27
  • 打赏
  • 举报
回复
谢谢。暂时关闭日志和批量插入都能加快速度,还有其它什么要注意的地方呢
AKULAKK 2003-08-26
  • 打赏
  • 举报
回复
bcp

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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