萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> 數據庫綜合 >> SqlServer中tempdb的日志機制原理解析及示例分享

SqlServer中tempdb的日志機制原理解析及示例分享

今天給大家介紹的是SqlServer中tempdb的日志機制原理,這次我將通過實例給大家介紹下tempdb的日志機制.希望可以幫助到大家。

tempdb為什麼比其他數據庫快?估計95%以上的程序員們都一臉茫然.Tempdb作為Sqlserver的重要特征,一直以來大家對它可能即熟悉又陌生.熟悉是我們時時刻刻都在用,陌生可能是很少有人關注它的運行機制.

測試用例

我們分別在用戶數據庫(testpage),tempdb中創建相似對象t1,#t1,並在tempdb中創建創建非臨時表,然後執行相應的insert腳本(用以產生日志),並記錄執行時間用以比較用以比較說明tempdb”快”

Code

用戶數據庫testpage

 

1234567891011121314151617use testpage go create table t1 ( id int identity(1,1) not null, str1 char(8000) )   declare @t datetime2=sysutcdatetime() declare @i intset @i=1 while (@i<100000) begininsert into t1 select @i,'aa'select @i=@i+1 endselect [extime]=DATEDIFF(S,@t,sysutcdatetime())

tempdb

 

1234567891011121314151617use tempdb go create table #t1 ( id int not null, str1 char(8000) )   declare @t datetime2=sysutcdatetime() declare @i intset @i=1 while (@i<100000) begininsert into #t1 select @i,'aa'select @i=@i+1 endselect [extime]=DATEDIFF(S,@t,sysutcdatetime())

非臨時表在tempdb中執行

 

1234567891011121314151617use tempdb go create table t1 ( id int not null, str1 char(8000) )   declare @t datetime2=sysutcdatetime() declare @i intset @i=1 while (@i<100000) begininsert into t1 select @i,'aa'select @i=@i+1 endselect [extime]=DATEDIFF(S,@t,sysutcdatetime())

由圖1-1中我們可以看出,在普通表中執行一分鐘的腳本,tempdb只需執行22s.而普通表在tempdb中也只需27s均大大優於普通表中執行情況.

 

copyright © 萬盛學電腦網 all rights reserved