如何正确解释SqlServerStorage记录的MiniProfiler时序?

时间:2014-04-18 18:54:47

标签: asp.net mvc-mini-profiler

我有一个正在分析的简单请求,如下所示。

public MyResponse GetOrders(OrdersRequest request)
{
    var profiler = MiniProfiler.Current;
    using (profiler.Step("GetOrders Service Requests"))
    {
        using (profiler.Step("_externalRepository.GetOrders"))
        {

        }
    }
    return result;
}

执行时会在数据库中产生以下行。

sql query of method

所以我的问题是根对象的DurantionMilliseconds如何与它的孩子的时间相关联?我看到73.400并假设这是整个操作的总数,这是正确的吗?

版本:

<package id="MiniProfiler" version="3.0.10-beta7" targetFramework="net45" />
<package id="MiniProfiler.EF5" version="3.0.10-beta1" targetFramework="net45" />

1 个答案:

答案 0 :(得分:2)

是的,Timing步骤的持续时间包括其子女时间&#39;的持续时间。

更容易想象成树*:

> http://localhost:8203/ExternalService.svc   73.4 ms
>> GetOrders Service Requests                 56.1 ms
>>> _externalRepository.GetOrders             55.9 ms

因此根时间(即整个请求)花费了73.4毫秒; GetOrders Service Requests是整个73.4毫秒的56.1毫秒;并且_externalRepository.GetOrders是其父母的56.9毫秒的55.9毫秒。

* MiniProfiler扩展方法RenderPlainText()可以输出此格式。