用来看执行时间的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,就可以看每个步骤的执行时间了。

 

posted @ 2023-05-05 08:03  法宝  阅读(72)  评论(0编辑  收藏  举报