Есть ли какой-нибудь инструмент для просмотра запросов к базе данных?

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

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

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

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


person Ryan    schedule 29.07.2009    source источник


Ответы (7)


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

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

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

person RSolberg    schedule 29.07.2009

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

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

person Raj More    schedule 29.07.2009

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

person Otávio Décio    schedule 29.07.2009

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

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

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

Загрузить здесь

person beach    schedule 29.07.2009

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

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

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

person Dan Diplo    schedule 29.07.2009

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

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

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

person brianng    schedule 29.07.2009

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

http://www.huagati.com/L2SProfiler

person KristoferA    schedule 30.07.2009