Инструмент для сравнения планов запросов SQL Server?
Кто-нибудь знает инструмент, который можно использовать для сравнения (относительно сложных) планов запросов? Я не ищу руководство для планов запросов, а просто инструмент, который позволяет мне быстро увидеть, например. использование разных индексов.
РЕДАКТИРОВАТЬ: только для того, чтобы это было ясно, я не ищу информацию о плане, но инструмент, который может быстро указать различия между двумя планами (я знаю, я мог бы это сделать я сам, но размер плана (ов) затрудняет).
Ответы
Ответ 1
Я не знаю готового инструмента для этого, просто если вы используете SET SHOWPLAN_XML ON
, чтобы получить планы в формате XML, вы можете их легко отформатировать в Visual Studio, а затем сравнить с вашим любимым инструментом сравнения текста.
И вы также можете щелкнуть правой кнопкой мыши по плану в SSMS и выбрать Save Execution Plan as...
для сохранения в файл.
Ответ 2
Существует инструмент под названием PICASSO - http://dsl.serc.iisc.ernet.in/projects/PICASSO/index.html, который имеет возможность сравнивать 2 плана запросов, если вопросы совпадают, но с различные селективности.
Чтобы сгенерировать разницу в плане, можно использовать в вашем случае, поскольку он свободно доступен.
Ответ 3
Я нахожу, что SQL Sentry Plan Explorer (бесплатно) - полезный инструмент, анализирующий запросы, а также их сравнение, как выделено в этот пост в блоге.
Ответ 4
Я вообще просто сравниваю планы выполнения с инструментом сравнения текста - я также считаю, что для сложных планов полезно посмотреть на исходный Xml плана только для возможности поиска индекса/таблицы, чтобы увидеть, где он появляется в план.