Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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;
        }
Esempio n. 3
0
        /// <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);
            }
        }
Esempio n. 4
0
 /// <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);
 }