Статистика выполнения C# SqlDataReader и информация

Я создаю автоматизированную Очередь Выполнения запросов DB, которая по существу подразумевает, что я создаю Очередь SQL-запросов, которые выполняются один за другим.

Запросы выполнены с помощью кода, подобного следующему:

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString))
{
  cn.Open();
  using (SqlCommand cmd = new SqlCommand("SP", cn))
  {
    cmd.CommandType = CommandType.StoredProcedure;
    using (SqlDataReader dr = cmd.ExecuteReader())
    {
      while (dr.Read())
      {

      }
    }
  }
}

То, что я хотел бы сделать, собирают столько информации, сколько я могу о выполнении. Сколько времени это взяло. Сколько строк было затронуто.

Самое главное, если это ПЕРЕСТАЛО РАБОТАТЬ, почему это перестало работать.

Действительно любой вид информации, которую я могу получить о выполнении, которое я хочу смочь сохранить.

6
задан Theofanis Pantelides 21 January 2010 в 09:17
поделиться

2 ответа

Попробуйте использовать встроенные статистические данные для времени выполнения и выбранных строк / затронутых:

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString))
{
  cn.Open();
  cn.StatisticsEnabled = true;
  using (SqlCommand cmd = new SqlCommand("SP", cn))
  {
    cmd.CommandType = CommandType.StoredProcedure;
    try
    {
      using (SqlDataReader dr = cmd.ExecuteReader())
      {
        while (dr.Read())
        {

        }
      }
    }
    catch (SqlException ex)
    {
      // Inspect the "ex" exception thrown here
    }
  }

  IDictionary stats = cn.RetrieveStatistics();
  long selectRows = (long)stats["SelectRows"];
  long executionTime = (long)stats["ExecutionTime"];
}

см. В MSDN .

Единственный способ, которым я вижу, вы узнаете, как что-то не сможет проверить SQLException , брошенный и глядя на детали.

7
ответ дан 16 December 2019 в 21:39
поделиться

, пока я немного не уверен, что ваш вопрос, с тем, чтобы я имею в виду, если вы хотите Список статистических данных, которые могут быть полезны для сэкономики или как упомянуть, как упоминать статистику.

SqldataReader имеет свойства .recordSabfected и .FieldCount , который рассказывает вам немного о том, сколько данных было возвращено.

Вы также можете поймать SQLException , чтобы узнать некоторую информацию о том, что (если что-то) пошло не так.

1
ответ дан 16 December 2019 в 21:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: