Вопрос

В Возможно, нормализация — это ненормально Джефф Этвуд говорит: «Вы автоматически измеряете все запросы, которые проходят через ваше программное обеспечение, верно?» Я нет, но я бы хотел.

Некоторые особенности рассматриваемого приложения:

Это было полезно?

Решение

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

Единая точка входа в базу данных — довольно стандартная функция любого ORM или уровня базы данных — по крайней мере, так было в любом проекте, над которым я до сих пор работал!

Другие советы

SQL-профилировщик это инструмент, который я использую для мониторинга трафика, поступающего на мой SQL-сервер.Это позволяет вам собирать подробные данные о вашем SQL Server.SQL Profiler распространяется вместе с SQL Server, по крайней мере, с SQL Server 2000 (но, вероятно, и раньше).

Настоятельно рекомендуется.

Взгляните на эту главу, которую мы с Джеффом Этвудом написали об оптимизации производительности веб-сайтов.Мы рассматриваем много вещей, но есть много информации о трассировке и оптимизации базы данных:Ускорьте свой сайт:8 советов по повышению производительности ASP.NET

А Бродячие вещи В проекте на CodePlex есть класс для синхронизации блоков кода.Класс называется TimedLog.Он реализует IDisposable.Вы помещаете блок кода, который хотите синхронизировать, в оператор using.

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

Я нахожу это очень полезным, потому что если вы видите что-то, что занимает некоторое время, достаточно просто скопировать и вставить его прямо с экрана/файла журнала и поставить перед ним «объяснение» в mysql.

Вам не нужно копаться в коде и восстанавливать происходящее.

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

Если вы определяете фабрику, которая создает для вас SqlCommands и всегда вызываете ее, когда вам нужна новая команда, вы можете вернуть RealProxy в SqlCommand.

Затем этот прокси-сервер может измерить, как долго ExecuteReader / ExecuteScalar и т. д.возьмите секундомер и запишите его где-нибудь.Преимущество использования этого метода перед Sql Server Profiler заключается в том, что вы можете получить полную трассировку стека для каждого выполненного фрагмента SQL.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top