我有2个存储过程,其中第二个存储过程是第一个存储过程的改进。
我正在尝试确切地衡量这是多少改进。
1 /测量clock time
似乎不是一种选择,因为我得到不同的执行时间。更糟糕的是,有时(很少,但确实会发生)第二个存储过程的执行时间大于第一个存储过程的执行时间(我想是由于当时服务器的工作量)。
2 / Include client statistics
也提供不同的结果。
3 / DBCC DROPCLEANBUFFERS
,DBCC FREEPROCCACHE
是不错的,但同样的故事...
4 / SET STATISTICS IO ON
可能是一种选择,但是由于我的存储过程中涉及许多表,我如何获得总体得分?
5 / Include actual execution plan
也可以选择。estimated subtreecost
对于第一个存储过程,我得到0.3253,对于第二个存储过程,我得到0.3079。我可以说第二个存储过程快了6%(= 0.3253 / 0.3079)吗?
6 /是否使用SQL Server Profiler中的“读取”字段?
那么,无论执行条件如何(服务器的工作负载,执行这些存储过程的服务器等),我怎么能说第二个存储过程比第一个过程快x%?
如果不可能,如何证明第二个存储过程比第一个存储过程有更好的执行时间?