SQL Server Insert時開啟顯式事務

FrankYou發表於2016-07-20

如果沒法避免一條一條的寫入,那麼在處理前顯示開啟一個事務 begin tran  在處理完成後 commit 這樣也要比不開顯示事務會快很多!

while i < 10000
begin
insert into test_0607
select @i,'0607無顯示整體事務'
set i = i + 1
end

drop 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秒的區別,不用多說啥了吧! 凡事有利有弊,這種顯示開啟大事務要保證的整體的過程不會執行特別長的時間,如果執行的操作特別多而且時間長就是災難了!

相關文章