怎么批量插入数据(sql server 2005)
如何批量插入数据(sql server 2005)
现在Customers表有20多万条数据,也就是说这条语句要一次性往Relation表插入20多万条数据,要执行好长一段时间。请问有其他更好的办法实现相同的效果吗???
------解决方案--------------------
20万数据 不用很长时间吧
我也这么执行的
这语句已经很简单了,求高手优化!!!
------解决方案--------------------
哈哈 扣了
------解决方案--------------------
- SQL code
INSERT INTO [Relation]([CustomerId],[UserId],[CreateDate]) SELECT [Id],1,GETDATE() FROM [Customers]
现在Customers表有20多万条数据,也就是说这条语句要一次性往Relation表插入20多万条数据,要执行好长一段时间。请问有其他更好的办法实现相同的效果吗???
------解决方案--------------------
20万数据 不用很长时间吧
我也这么执行的
这语句已经很简单了,求高手优化!!!
------解决方案--------------------
哈哈 扣了
------解决方案--------------------
- SQL code
SET ROWCOUNT 1000; INSERT INTO [Relation]([CustomerId],[UserId],[CreateDate]) SELECT [Id],1,GETDATE() FROM [Customers] WHILE @@ROWCOUNT=1000 INSERT INTO [Relation]([CustomerId],[UserId],[CreateDate]) SELECT [Id],1,GETDATE() FROM [Customers] SET ROWCOUNT 0;
------解决方案--------------------
一般都這樣做,應該用不了多久,若Relation表有觸發器,把你的trigger禁用掉吧,這樣會快些
- SQL code
alter table Relation disable trigger all --完成後 alter table Relation enable trigger all
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
插入慢的主要原因通常是插入过程中还做了其他事情,首要之一就是维护索引或者有触发器,对此你可以先禁用,让其能顺利插入,再启用。成熟的DBMS对大数据量插入的性能都不会很低,听说BCP可能达到100万行每秒。而我以前做银行系统(OLAP)的时候,往往都是千万级别插入。性能也不见得低。