Есть ли встроенное время, сколько времени занимает команда в SqlCommand?

#c# #sql-server #sqlcommand

#c# #sql-server #sqlcommand

Вопрос:

Я использую асинхронный SqlCommand для запроса данных с сервера SQL.

Есть ли способ узнать, сколько времени потребовалось для обработки запроса на сервере? Или мне нужно фиксировать время на клиенте?

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

Спасибо!

Ответ №1:

Вы могли бы включить статистику времени (УСТАНОВИТЬ ВРЕМЯ СТАТИСТИКИ ВКЛ).

Затем это отправило бы сообщение обратно клиенту, которое выглядело бы примерно так:

  SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 341 ms.
  

Вам нужно было бы добавить обработчик события к событию InfoMessage соединения, а затем проанализировать / отобразить этот текст. Хотя очевидно, что текстовый анализ информационных сообщений всегда может быть немного затруднительным (например, может не работать при установке не на английском языке), но если вы просто хотите отобразить текст, все должно быть в порядке.