用来看执行时间的sql
最近做一个sql性能优化,本来想直接SSMS里面直接用执行计划功能的;结果把SSMS卡死了。
于是,改成用以下代码查看sql各个步骤的执行时间了。
--#tns定义 if object_id('tempdb..#tns') is not null drop table #tns; create table #tns( sort int, name varchar(max), t datetime, ts int, tag varchar(max) DEFAULT '' ); declare @NowGetDate datetime,@TnsRowCount int,@tsDateDiff int; --tns增加 select @TnsRowCount = count(*) from #tns; set @NowGetDate = GETDATE(); set @tsDateDiff = isnull(DATEDIFF(SECOND, (select t from #tns where sort = @TnsRowCount - 1), @NowGetDate),0) insert into #tns values(@TnsRowCount,'开始',@NowGetDate,@tsDateDiff,'');
临时表#tns的列说明:{排序,本步骤的名称,本步骤执行完的时间点,本步骤的执行时间,其他备注}。
用法就是,复制【--tns增加】的代码,改一改本步骤的名称;最后select * from #tns,就可以看每个步骤的执行时间了。