private List <SqlTiming> LoadSqlTimings(Guid profilerId) { var sqlTimings = new List <SqlTiming>(); var query = Query.EQ("MiniProfilerId", profilerId.ToString()); var sqlTimingPocos = SqlTimings.Find(query).ToList(); foreach (var poco in sqlTimingPocos) { sqlTimings.Add(new SqlTiming { Id = Guid.Parse(poco.Id), ParentTimingId = Guid.Parse(poco.ParentTimingId), ExecuteType = poco.ExecuteType, StartMilliseconds = (decimal)poco.StartMilliseconds, DurationMilliseconds = (decimal)poco.DurationMilliseconds, FirstFetchDurationMilliseconds = (decimal)poco.FirstFetchDurationMilliseconds, IsDuplicate = poco.IsDuplicate, StackTraceSnippet = poco.StackTraceSnippet, CommandString = poco.CommandString }); } return(sqlTimings); }
/// <summary> /// Adds the parameter 'sqlTiming' to this Timing's SqlTimings collection. /// </summary> /// <param name="sqlTiming">A sql statement profiling that was executed in this Timing step.</param> /// <remarks> /// Used outside this assembly for custom deserialization when creating an <see cref="IStorage"/> implementation. /// </remarks> public void AddSqlTiming(SqlTiming sqlTiming) { if (SqlTimings == null) { SqlTimings = new List <SqlTiming>(); } SqlTimings.Add(sqlTiming); sqlTiming.ParentTiming = this; }
/// <summary> /// Saves parameter Timing to the sqltimings collection. /// </summary> private void SaveSqlTiming(MiniProfiler profiler, SqlTiming s) { var sqlTimingPoco = new SqlTimingPoco { Id = s.Id.ToString(), MiniProfilerId = profiler.Id.ToString(), ParentTimingId = s.ParentTiming.Id.ToString(), ExecuteType = s.ExecuteType, StartMilliseconds = (double)s.StartMilliseconds, DurationMilliseconds = (double)s.DurationMilliseconds, FirstFetchDurationMilliseconds = (double)s.FirstFetchDurationMilliseconds, IsDuplicate = s.IsDuplicate, StackTraceSnippet = Truncate(s.StackTraceSnippet, 200), CommandString = s.CommandString }; SqlTimings.Insert(sqlTimingPoco); if (s.Parameters != null && s.Parameters.Count > 0) { SaveSqlTimingParameters(profiler, s); } }
/// <summary> /// Returns the number of sql statements of <paramref name="type"/> that were executed in this <see cref="Timing"/>. /// </summary> internal int GetExecutedCount(ExecuteType type) { return(HasSqlTimings ? SqlTimings.Count(s => s.ExecuteType == type) : 0); }