Есть ли какой-нибудь инструмент для просмотра запросов к базе данных? - PullRequest
5 голосов
/ 29 июля 2009

Существует ли какой-либо инструмент, который будет проверять сервер asp.net или sql и сообщать обо всех запросах, выполняемых к базе данных? Причина, по которой я спрашиваю, заключается в том, что я использую Linq для проекта и хочу дважды проверить, что он на самом деле делает для каждой страницы.

В идеале я хотел бы просмотреть страницу в браузере и получить отчет обо всех запросах, которые были выполнены для создания этой страницы.

Я знаю, что могу просматривать SQL, который он запускает для отдельных запросов, с помощью отладки / точек останова, и я знаю о LinqPad, но я боюсь, что Linq делает еще несколько запросов самостоятельно, чтобы получить связанные данные, которые могут быть у меня не в курсе. Есть ли что-нибудь (инструмент / программа / отчет / и т. Д.), Как я описал? Спасибо!

РЕДАКТИРОВАТЬ: Есть ли БЕСПЛАТНО инструмент, который может сделать это? Я использую Sql Server 2008 Express и, к сожалению, у меня нет SQL Profiler.

Ответы [ 7 ]

14 голосов
/ 29 июля 2009

Абсолютно, существует инструмент SQL под названием SQL Profiler . Для запуска профилировщика требуются повышенные разрешения базы данных.

Существует достойное руководство по запуску Profiler в TechRepublic .

Другим вариантом является NHibernate Profiler . Я знаю, что он не такой «бесплатный», как SQL Profiler, никогда не использовал его, но снимки экрана выглядят довольно круто.

3 голосов
/ 29 июля 2009

Профилировщик - лучший инструмент для всего этого, но он может быть дорогим в неопытных руках.

Вы также можете попробовать выполнить «exec sp_who», а затем «dbcc inputbuffer (111)» - просто поместите идентификатор процесса вместо 111.

2 голосов
/ 29 июля 2009

SQL Profiler делает это.

1 голос
/ 29 июля 2009

Быстрый и грязный способ записи запросов LINQ to SQL в ASP.NET заключается в следующем (при условии Northwind.Dbml):

NorthwindDataContext context = new NorthwindDataContext();
context.Log = Response.Output;

Это запишет все запросы в поток ответов. Неприятный, но удобный для мгновенного удовлетворения без необходимости в отладчиках или профилировщиках и т. Д.

1 голос
/ 29 июля 2009

Поскольку вы используете SQL Server Express, как насчет этого инструмента?

Профилировщик для Microsoft SQL Server 2005/2008 Express Edition

Семейство Microsoft SQL Server включает бесплатное экспресс-издание, полностью функциональный, однако имеет некоторые неутешительные ограничения, которые не использовать его в разработке процесс. Одним из них является отсутствие инструменты профилирования, стандартный профилировщик SQL не входит Тем не менее, теперь у вас есть возможность использовать экспресс-издание для настройка вашей системы. SQL Server Express Edition Profiler обеспечивает большую часть функциональность стандартного профилировщика, такие как выбор событий для профиля, настройка фильтров и т. д. нет аналоговых бесплатных инструментов.

Скачать здесь

0 голосов
/ 30 июля 2009

Это бесплатно только в течение первых 45 дней, но дает вам профилирование / ведение во время выполнения с кучей параметров фильтра, ведение журнала плана выполнения запросов SQL Server и т. Д. Создано специально для профилирования приложений L2S:

http://www.huagati.com/L2SProfiler

0 голосов
/ 29 июля 2009

В частности, для запросов LINQ to SQL вы можете также использовать свойство DataContext.Log для вывода запросов в TextWriter, так что вы можете делать такие вещи, как запись в окно вывода отладчика или (как в моем использовании) в log4net.

Эти ссылки могут помочь:

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

...