SQL Server Insert时开启显式事务
如果没法避免一条一条的写入,那么在处理前显式开启一个事务 begin tran 在处理完成后 commit 这样也要比不开显式事务会快很多!
while i < 10000
begin
insert into test_0607
select @i,'0607无显示整体事务'
set i = i + 1
enddrop table test_0607
create table test_0607 (a int,b nvarchar(100))
---加上事务
begin tran
declare i int
set i = 1
while i < 10000
begin
insert into test_0607
select @i,'0607 显示整体事务'
set i = i + 1
end
----结束事务,提交
commit
结果 : 8秒和0.8秒的区别,不用多说啥了吧! 凡事有利有弊,这种显示开启大事务要保证的整体的过程不会执行特别长的时间,如果执行的操作特别多而且时间长就是灾难了!