Какие инструменты доступны для тестирования производительности оператора SQL?

StackOverflow https://stackoverflow.com/questions/1555471

Вопрос

В бесконечном поиске производительности (и моего собственного опыта избиения) я узнал несколько вещей, которые могли бы затянуть производительность заявления SQL.

Обсессивно -компульсивное расстройство подборов
Делать сумасшедшие конверсии типа (и вмешиваться в их забвение)
Группа по совокупным функциям упомянутого сумасшедшего типа конверсий
Где Fldid (выберите все из моей таблицы записей 5 мил)

Обычно я работаю с MSSQL. Какие инструменты доступны для проверки производительности оператора SQL? Эти инструменты встроены и специфичны для каждого типа DB -сервера? Или есть общие инструменты?

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

Решение

SQL Profiler (встроенный): Мониторинг с SQL Profiler

SQL Benchmark Pro (Коммерческий)

SQL Server 2008 имеет новый Сборщик данных

SQL Server 2005 (далее) имеет недостающий индексы динамического представления управления (DMV), который может быть весьма полезен (но только для планов запросов в настоящее время в кеше плана): О функции отсутствующих индексов.

Есть также SQL Server Консультант по настройке двигателей базы данных Что выполняет разумную работу (просто не реализуйте все, что предлагает!)

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

Я в основном просто использую профилировщик и просмотрщик плана исполнения

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

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

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

В MySQL (может быть и в других базах данных) вы можете EXPLAIN Ваш запрос, чтобы увидеть, что сервер базы данных думает об этом. Это обычно используется для того, чтобы присматривать, какие индексы должны быть созданы. И этот встроен, поэтому вы можете использовать его без установки дополнительного программного обеспечения.

У Адама Маханика есть простой инструмент под названием SQLQUERYSTRARSTRASTRESTRESTSTRASTSTRESTSTRASTSTRESTSTRASTS Это может быть полезно. Он предназначен для того, чтобы «запустить быстрый тест на производительность против одного запроса, чтобы проверить идеи или подтвердить изменения».

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