2016-01-26 2 views
1

У меня есть несколько OLEDB соединений, как это:Как я могу регистрировать время запроса?

try 
{ 
    OleDbConnection Connection8; 
    using (Connection8 = new OleDbConnection("Provider=MSDAORA.1;Data Source=DATABASE:1521/orcl;Persist Security Info=True;Password=PASSWORD;User ID=USERNAME;")) 
    { 
     string sqlQuery = "select * from TABLE"; 

     using (OleDbDataAdapter cmd = new OleDbDataAdapter(sqlQuery, Connection8)) 
     { 
      Connection8.Open(); 
      DataTable dt = new DataTable(); 
      cmd.Fill(dt); 
      GridView5.DataSource = dt; 
      GridView5.DataBind(); 
      v8 = 1; 
      Connection8.Close(); 
     } 
    } 
} 
catch (Exception) 
{ 
    v8 = 0; 
} 

Некоторые соединения ждали так много, но я не могу знать, какой из них.

Как я могу регистрировать или видеть время запроса для каждого соединения? Любое предложение для этого? Спасибо.

+1

Вы можете использовать профайлер во время отладки сессий. Или это проблема производства? Например, новая реликвия может быть полезна. Однако «лучшее» решение i для широкого. Ofcourse in-code, как секундомер, может работать, но это звучит неразумно для устранения неполадок. (Исключение: ведение журнала) – Aphelion

+0

Помните о пуле соединений ;-) –

ответ

3

Вы можете использовать Stopwatch:

var stopwatch = new Stopwatch(); 
DataTable dt = new DataTable(); 
stopwatch.Start(); 
Connection8.Open(); 
cmd.Fill(dt); 
stopwatch.Stop(); 

var timeElapsed = stopwatch.ElapsedMilliseconds; 

Обратите внимание, здесь в образце я показал время, чтобы открыть соединение, будут включены в измеренное время. Если вам это не нужно и нужно «чистое» время выполнения запроса, то просто измените порядок строк od, где открывается соединение и секундомер.

0

Я не знаю, будет ли это работать, потому что вы используете OleDbConnection, но одна вещь, которую вы можете сделать, - это открыть панель управления «Администратор Odbc» (обязательно проверьте, хотите ли вы 32 бит или 64 бит) есть вкладка «Трассировка», которую вы можете включить, которая дает вам файл журнала всех обработанных ODBC-запросов.

enter image description here

Но помните, как я сказал, потому что вы используете OleDbConnection он может ничего не войти.

+0

Я удалил свой ответ. Спасибо за ваш вклад. – Ian

Смежные вопросы