Вопросы оптимизации |
||
Настройка производительности СУБД - многоуровневый процесс, и оптимизация запросов является лишь одним из его аспектов. Под оптимизацией запроса понимаются действия, приводящие к тому, что оптимизатор запросов выбирает наилучший процедурный план его выполнения. Зачастую это сводится к созданию или перестройке соответствующих индексов, обновлению статистики и т.д., т.е. действиям, не приводящим к переписыванию самого запроса. Чтобы выполнять такого рода оптимизацию, необходимо умение читать план выполнения запроса и понимать, как выполняются физические операторы, фигурирующие в плане. Этим вопросам посвящены статьи и переводы, которые публикуются в блогах на sql-ex.ru Здесь же мы будем рассматривать несколько иные вопросы, которые более соответствуют тематике настоящего учебника. Эти вопросы связаны с тем, что одну и ту же практическую задачу можно решить по разному, т.е. использовать различные алгоритмы, реализованные затем в SQL. Грубо говоря, можно так написать запрос, что никакая оптимизация не повысит его производительности до требуемого уровня. Многочисленные примеры сказанного вы можете найти на форумах sql-ex.ru, где публикуются разнообразные решения одной и той же задачи. А имеющийся на сайте оптимизационный этап непосредственно связан с написанием производительных запросов. |