【问题标题】:Assert MSSQL stored procedure execution time with tSQLt使用 tSQLt 断言 MSSQL 存储过程执行时间
【发布时间】:2016-10-13 09:18:20
【问题描述】:

我想创建 SQL 单元测试来测量我的存储过程的执行时间。有没有办法断言每次执行的持续时间?

我最终使用的解决方案:

--运行我的存储过程

exec mySP

--获取指标

  SELECT d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc name',   
    d.cached_time, d.last_execution_time, d.total_elapsed_time,  
    d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],  
    d.last_elapsed_time, d.execution_count  
FROM sys.dm_exec_procedure_stats AS d  
where OBJECT_NAME(object_id, database_id) = 'mySP'
ORDER BY [total_worker_time] DESC;  

--根据last_elapsed_timeavg_elapsed_time 朗读我的断言

【问题讨论】:

    标签: sql-server unit-testing tsqlt


    【解决方案1】:

    您可以查看 SQLServer 2008 提供的 sys.dm_exec_procedure_stats ..这个 DMV 提供了一些有用的信息,例如

    您也可以查看 SET STATISTICS TIME ON

    set statistics time on
    exec usp_test
    set statistics time off
    

    您可以在下面的消息选项卡中查看时间

    SQL Server Execution Times:
       CPU time = 171 ms,  elapsed time = 5060 ms.
    

    【讨论】:

    • 非常感谢。这有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多