Определить количество запросов Linq-To-Sql, используемых при обработке URL-адреса ASP.NET MVC? - PullRequest
1 голос
/ 14 ноября 2009

Я сейчас использую Linq To Sql, и как узнать, сколько запросов было использовано для отображения текущей страницы?

большое спасибо

Ответы [ 8 ]

4 голосов
/ 14 ноября 2009

Я бы использовал SQL Server Profiler .

4 голосов
/ 14 ноября 2009

DataContext содержит TextWriter для записи сгенерированного SQL, если это вам поможет

DataContext.Log = System.Console.Out;

выведет сгенерированный SQL на консоль

3 голосов
/ 14 ноября 2009

Вы можете реализовать текстовый редактор и связать свой новый текстовый редактор с datacontext.log; когда текстовый текст пытается записать, вы можете обновить свой счетчик.

2 голосов
/ 15 ноября 2009

Вы можете попробовать мой профилировщик Linq-to-SQL. Вы можете прочитать больше, скачать его и получить бесплатную 45-дневную пробную лицензию от http://www.huagati.com/L2SProfiler/

Он дает вам не только то, какие запросы были выполнены, но и какой код вызвал их, какую стоимость ввода-вывода, время на стороне db, даже план выполнения на стороне db. Вы можете использовать его как во время разработки, так и в рабочих средах для регистрации и профилирования запросов L2S ...

Также смотрите этот пост в блоге: http://huagati.blogspot.com/2009/06/profiling-linq-to-sql-applications.html

1 голос
/ 16 ноября 2009

Использование Linq2Sql Профилировщик.

1 голос
/ 15 ноября 2009

Я считаю, что вам лучше всего написать модуль HTTP, который бы отображал количество выполненных запросов, а также SQL, который был сгенерирован внизу каждой страницы. Это удивительно гладко. Я не собираюсь писать это здесь по понятным причинам, но возьму копию книги Стива Сандерсона "Pro ASP.NET MVC Framework", и он проведет вас через нее. Вывод выглядит так:


Выполнено 4 SQL-запроса

  1. ВЫБРАТЬ ...

  2. ОБНОВЛЕНИЕ ...

  3. ОБНОВЛЕНИЕ ...

  4. ОБНОВЛЕНИЕ ...


1 голос
/ 14 ноября 2009

Если бы я был вами, я бы совместил решение DaveG (+1) с решением Jan (+1).

Вы можете поместить ассоциацию текстового редактора с datacontext.log в конструктор DataContext и использовать директиву препроцессора #if следующим образом:

#if DEBUG
    DataContext.Log = yourTextWriter.out;
#endif

Этот способ улучшит вашу производительность в режиме релиза.

1 голос
/ 14 ноября 2009

Полагаю, вам понадобится внутренний счетчик для отслеживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...