今天给大家介绍的是SqlServer中tempdb的日志机制原理,这次我将通过实例给大家介绍下tempdb的日志机制.希望可以帮助到大家。
tempdb为什么比其他数据库快?估计95%以上的程序员们都一脸茫然.Tempdb作为Sqlserver的重要特征,一直以来大家对它可能即熟悉又陌生.熟悉是我们时时刻刻都在用,陌生可能是很少有人关注它的运行机制.
测试用例
我们分别在用户数据库(testpage),tempdb中创建相似对象t1,#t1,并在tempdb中创建创建非临时表,然后执行相应的insert脚本(用以产生日志),并记录执行时间用以比较用以比较说明tempdb”快”
Code
用户数据库testpage
1234567891011121314151617
use 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
1234567891011121314151617
use 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中执行
1234567891011121314151617
use 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均大大优于普通表中执行情况.