Введние
SQL запрос описывает результат, который необходимо получить, но не способ его получения. Набор конкретных шагов, которые сервер должен предпринять, чтобы вернуть результат называется планом выполнения запроса, его построением занимается оптимизатор. От выбора плана зависит скорость выполнения, поэтому, он является одним из самых важных элементов при анализе проблем производительности запроса.
План выполнения состоит из операторов и их свойств, связанных между собой в древовидную структуру, каждый из которых отвечает за определенную логическую и физическую операцию. Все вместе они обеспечивают получения того результата, который описан текстом запроса. Внутри сервера операторы представляют собой объекты классов в памяти SQL Server. Пользователи сервера, т.е. мы с вами, видим их описание, сформированное в виде документа XML с определенной схемой, и отображаемое средой SQL Server Management Studio (SSMS) в графическом виде.
Существует множество разнообразных операторов плана, а их свойств еще больше, кроме того, периодически появляются новые. Эта заметка не ставит целью описать всё возможное многообразие операторов, вместо этого, я хотел бы поделиться наиболее интересными добавлениями в этой области, а также вcпомнить некоторые старые, но полезные элементы.