예제 #1
0
        public virtual void GetPerformanceResult(string runtimeHash, int session, IPerformanceResult performance)
        {
            string filter =
                $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={session}";
            // 最高CPU时间
            string cmd = SqlCommandFactory.CreateQueryMaxCmd(DataBaseItemNames.PerformanceTableName,
                                                             DataBaseItemNames.ProcessorTimeColumn, filter);

            using (DbDataReader reader = ExecuteReadCommand(cmd))
            {
                if (reader.Read() && !reader.IsDBNull(0))
                {
                    performance.CpuTime = (ulong)reader.GetDouble(0);
                }
            }
            // 最高分配内存
            cmd = SqlCommandFactory.CreateQueryMaxCmd(DataBaseItemNames.PerformanceTableName,
                                                      DataBaseItemNames.MemoryAllocatedColumn, filter);
            using (DbDataReader reader = ExecuteReadCommand(cmd))
            {
                if (reader.Read() && !reader.IsDBNull(0))
                {
                    performance.MaxAllocatedMemory = reader.GetInt64(0);
                }
            }
            // 最高使用内存
            cmd = SqlCommandFactory.CreateQueryMaxCmd(DataBaseItemNames.PerformanceTableName,
                                                      DataBaseItemNames.MemoryUsedColumn, filter);
            using (DbDataReader reader = ExecuteReadCommand(cmd))
            {
                if (reader.Read() && !reader.IsDBNull(0))
                {
                    performance.MaxUsedMemory = reader.GetInt64(0);
                }
            }
            // 平均分配内存
            cmd = SqlCommandFactory.CreateQueryAverageCmd(DataBaseItemNames.PerformanceTableName,
                                                          DataBaseItemNames.MemoryAllocatedColumn, filter);
            using (DbDataReader reader = ExecuteReadCommand(cmd))
            {
                if (reader.Read() && !reader.IsDBNull(0))
                {
                    performance.AverageAllocatedMemory = (long)reader.GetDouble(0);
                }
            }
            // 平均使用内存
            cmd = SqlCommandFactory.CreateQueryAverageCmd(DataBaseItemNames.PerformanceTableName,
                                                          DataBaseItemNames.MemoryUsedColumn, filter);
            using (DbDataReader reader = ExecuteReadCommand(cmd))
            {
                if (reader.Read() && !reader.IsDBNull(0))
                {
                    performance.AverageUsedMemory = (long)reader.GetDouble(0);
                }
            }
        }
예제 #2
0
 public void GetPerformanceResult(string runtimeHash, int session, IPerformanceResult performanceResult)
 {
     _databaseProxy.GetPerformanceResult(runtimeHash, session, performanceResult);
 }