Skip to content

Статистика в SQL Server

Пересказ статьи Grant Fritchey. Statistics in SQL Server


Оптимизатор запросов SQL Server опирается на статистику для построения адекватного плана запроса. Если статистика неверна, устарела или отсутствует, вы имеете весьма слабую надежду на хорошую производительность ваших запросов. Поэтому важно понимать, как SQL Server поддерживает статистику распределения.
Продолжить чтение "Статистика в SQL Server"

Внутри оптимизатора: оценка стоимости плана

Пересказ статьи Paul White. Inside the Optimizer: Plan Costing



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

Продолжить чтение "Внутри оптимизатора: оценка стоимости плана"

Внутри оптимизатора: подробно о ROW GOAL

Пересказ статьи Paul White. Inside the Optimizer: Row Goals In Depth



Одно из главных предположений, из которых исходит модель оптимизатора запросов SQL Server, заключается в том, что клиенты потребляют все строки, производимые запросом. Это приводит к планам, которые исходят из полной стоимости выполнения, хотя строки могут больше не производиться.
Продолжить чтение "Внутри оптимизатора: подробно о ROW GOAL"

Итераторы, планы запроса, и почему они выполняются в обратном порядке

Пересказ статьи Paul White. Iterators, Query Plans, and Why They Run Backwards



Итераторы


SQL Server обладает расширенной архитектурой для оптимизации и выполнения запросов, используя "итераторы" в качестве строительных блоков.

Вероятно, итераторы более знакомы в их представлении на графическом плане, где каждая иконка представляет отдельный итератор. Они также показаны как узлы RelOp при выводе плана запроса в формате XML.


Продолжить чтение "Итераторы, планы запроса, и почему они выполняются в обратном порядке"