Skip to content

Увеличение отображения плана запроса в SQL Server на весь экран

Пересказ статьи Greg Robidoux. Maximize View of SQL Server Query Plans with Full Screen Option


Замечательной особенностью SQL Server является возможность отображения графических планов запросов. Проблема с графическими планами состоит в том, что они зачастую очень большие, и весьма затруднительно перемещаться по плану в поисках проблем вашего запроса или запросов. В SQL Server Management Studio у вас есть возможность изменять масштаб, а также открывать определенные части плана, перемещая мышь на сжатые версии плана запроса. Однако при этом вы ограничены панелью результатов для просмотра плана, и это еще больше затрудняет нахождение нужной информации. Существуют ли приемы, которые бы сделали навигацию по плану запроса легче? Continue reading "Увеличение отображения плана запроса в SQL Server на весь экран"

TOP или Max/Min: есть ли разница?

Пересказ статьи Mike Byrd. TOP vs Max/Min: Is there a difference


Я всегда стараюсь больше узнать работе черного ящика оптимизатора, и недавно заинтересовался тем, как он решает следующие запросы:

Continue reading "TOP или Max/Min: есть ли разница?"

Может ли удаление строк сделать таблицу...больше?

Пересказ статьи Brent Ozar. Can deleting rows make a table…bigger?


Michael J. Swart задал интересный вопрос: его таблица содержала 7,5 миллиардов строк и 5 индексов. При удалении 10 миллионов строк он обратил внимание, что индексы стали больше, а не меньше.

Continue reading "Может ли удаление строк сделать таблицу...больше?"

Использование HierarchyID в SQL Server на простых примерах

Пересказ статьи Edwin Sanchez. How to Use SQL Server HierarchyID Through Easy Examples


Вы еще используете родительско-дочерний подход или хотели бы попробовать что-то новое типа hierarchyID? Да, это относительно новое, поскольку hierarchyID появился в SQL Server 2008. Конечно, новизна, сама по себе, не является аргументом. Однако заметьте, что Microsoft добавил эту функциональность для лучшего представления многоуровневых отношений один-ко-многим. Continue reading "Использование HierarchyID в SQL Server на простых примерах"

Новости за 2020-10-03 - 2020-10-09

§ Под номером 306 выставлена новая задача от Kursist (сложность 1 балл). Прежняя задача под этим номером перенесена на обучающий этап (154).
На этой задаче планируется проверить ограничение на CTE.


Continue reading "Новости за 2020-10-03 - 2020-10-09"

Query memory grants. Часть 2: Varchar и сортировка

Пересказ статьи Arthur Daniels. Query memory grants part 2: Varchars and sorting


Какого черта мы сделали все наши столбцы varchar? Это гипотетический вопрос, извините.

И теперь мы должны заплатить за наши решения. Рассмотрим запрос, который должен выполнить некоторую сортировку. Давайте возьмем таблицу, которую нужно отсортировать.
Continue reading "Query memory grants. Часть 2: Varchar и сортировка"

Query memory grants. Часть 1: куда девается память?

Пересказ статьи Arthur Daniels. Query memory grants part 1: Where does the memory go?


Давайте поговорим о том, как запросы используют память, а именно, в плане выполнения. Одним из операторов запроса, который использует память, является сортировка. Чтобы продемонстрировать это, я напишу запрос с предложением ORDER BY и покажу план выполнения.
Continue reading "Query memory grants. Часть 1: куда девается память?"

Является ли самосоединение лучше, чем поиск ключа?

Пересказ статьи Erik Darling. Are Self Joins Ever Better Than Key Lookups?


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

Я исхожу из того, что вы имеете довольно расплывчатое представление о прослушивании параметра (parameter sniffing ) с использованием хранимых процедур. Если это не так, то данная публикация не будет иметь большого смысла.
Continue reading "Является ли самосоединение лучше, чем поиск ключа?"

Операторы плана запроса, которые скрывают работу

Пересказ статьи Erik Darling. Query Plan Operators That Hide Work


При чтении планов запросов вы можете столкнуться с огромным количеством информации, часть которой может помочь лишь косвенно.
Иногда, когда я объясняю планы запросов людям, я чувствую себя механиком, который просто знает то место, где двигатель производит конкретное дребезжание.
Continue reading "Операторы плана запроса, которые скрывают работу"

Неприятный побочный эффект OUTPUT

Пересказ статьи Erik Darling. An Unfortunate Side Effect Of OUTPUT


Время от времени я встречаю людей, которые используют OUTPUT для аудита модификаций чаще всего потому, что "триггеры - это плохо" или "триггеры медленные".

Хорошо, иногда это действительно так. Но использование OUTPUT тоже может быть неудачным решением. Continue reading "Неприятный побочный эффект OUTPUT"

Кучи в SQL Server: часть 3 - некластеризованные индексы

Пересказ статьи Uwe Ricken. Heaps in SQL Server: Part 3 Nonclustered Indexes


Пока эта серия состоит из:

  1. Кучи в SQL Server: часть 1 - основы

  2. Кучи в SQL Server: часть 2 - оптимизация чтений

  3. Кучи в SQL Server: часть 3 - некластеризованные индексы (эта статья)


В предыдущей статье описывалось как можно оптимизировать выборку данных из кучи. Настоящая статья посвящена возможности достижения оптимального времени выполнения запроса для кучи с помощью некластеризованных индексов.
Continue reading "Кучи в SQL Server: часть 3 - некластеризованные индексы"