Диагностика количества вызовов базы данных в ASP.NET - PullRequest
1 голос
/ 15 февраля 2012

У меня есть страница ASP.NET (веб-формы), которая загружается медленно, и, глядя на код, я вижу, что источник исходит из слишком большого количества обращений к базе данных.Вызов базы данных во внутреннем цикле выполняется около 8000 раз, когда нам требуется примерно на порядок меньше вызовов базы данных.

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

Редактировать: Наша база данных разработки для этого проекта в настоящее время не настроена так, чтобы я мог запускать SQL Server Profiler («Вы должны быть членом предопределенной роли сервера sysadmin или иметь разрешение ALTER TRACE»).Я поговорю с администратором базы данных о том, можем ли мы включить это разрешение для нас в Dev, но пока мне любопытно узнать о любых альтернативах, которые не требуют привилегий sysadmin.

Ответы [ 4 ]

2 голосов
/ 15 февраля 2012

Использование SQL Server Profiler - начать запись перед загрузкой страницы, остановить после загрузки страницы.

Вы можете настроить его для записи только определенных событий и фильтрации по таким параметрам, как исходное приложение, идентификатор процесса и т. Д.

Сравните различные прогоны, как только вы исправите.

Альтернативой является использование профилировщика mvc-mini в приложении веб-форм, как описано в в этом ответе .

0 голосов
/ 15 февраля 2012

Sql Profiler отлично подходит в этом случае. Если вам просто нужно проверить, что выполняется меньше SELECT N + 1, это сработает. Если вам нужна более точная информация и вы используете популярный ORM, вы можете попробовать Hibernating Rhinos набор профилировщиков .

0 голосов
/ 15 февраля 2012

Посмотрите на Пекса и Крота: http://research.microsoft.com/en-us/projects/pex/downloads.aspx.Это «насмешливые объекты», вы можете создать объект, который прозрачно обходит вызовы вашей базы данных, не портя ваш код.Затем внутри этого объекта вы можете разместить код регистрации.

0 голосов
/ 15 февраля 2012

Sql Server Profiler - это инструмент, который вам нужен для этой работы.

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