Published on

September 19, 2014

Понимание выполнения запросов в SQL Server

Вы когда-нибудь запускали запрос в SQL Server и задавались вопросом, что происходит за кулисами? Если да, то вы не одиноки. Многие разработчики и администраторы баз данных сталкивались с такой ситуацией. К счастью, существуют инструменты, которые могут предоставить информацию о выполнении ваших запросов.

В предыдущей статье блога я представил утилиту, которую я разработал на основе инструмента StackExchange Data Explorer. Сегодня я рад поделиться этой утилитой с вами. Обратите внимание, что это бета-версия и могут быть некоторые ошибки. Однако, она все равно может быть ценным инструментом для понимания выполнения запросов.

Итак, как работает эта утилита? При открытии у вас будет два варианта мониторинга: использование ожиданий CXPacket или использование sys.dm_exec_query_profiles в SQL Server 2014. Опция CXPacket waits позволяет увидеть, какое поддерево параллельного плана выполнения в данный момент обрабатывается, в то время как опция sys.dm_exec_query_profiles позволяет увидеть, какие конкретные итераторы в плане в данный момент обрабатываются.

Давайте ближе рассмотрим каждый вариант. При использовании опции CXPacket waits и указании идентификатора сеанса, который вы хотите отслеживать, вы увидите визуальное представление плана выполнения. Это может помочь вам определить, какие части плана в данный момент обрабатываются. Например, вы можете заметить, что выполняется операция Index Scan.

С другой стороны, если вы выберете опцию sys.dm_exec_query_profiles, вам потребуется включить фактический план выполнения при выполнении запроса или собрать его с помощью Profiler или Extended Events. Эта опция предоставляет более подробное представление плана выполнения, позволяя увидеть конкретные итераторы, которые обрабатываются.

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

Если вас заинтересовала эта утилита, вы можете скачать ее по ссылке, предоставленной. Обратите внимание, что вам нужно будет извлечь файлы и поместить каталог HTMLQueryPlan в вашу директорию c:\temp. Кроме того, исходный код доступен на GitHub, где вы можете внести свой вклад в его развитие и сделать его еще лучше для сообщества SQL Server.

Хотя эта утилита все еще находится в стадии разработки и может содержать некоторые известные ошибки, она имеет потенциал быть ценным инструментом для разработчиков и администраторов SQL Server. Я призываю вас попробовать ее и предоставить отзывы, чтобы помочь улучшить ее функциональность.

Спасибо за чтение и успешных запросов!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.