Методы оптимизации выполнения запросов в реляционных СУБД


Введение


В этой статье мы рассмотрим ряд вопросов, связанных с оптимизацией выполнения запросов в реляционных системах управления базами данных (СУБД). Мы рассматриваем проблемы оптимизации именно в контексте реляционных систем, хотя многие аспекты, связанные с оптимизацией организации данных на внешней памяти, распространяются и на не реляционные системы. Тем не менее мы ограничиваемся реляционными системами по двум основным причинам. Во-первых, реляционные системы (и вообще системы, ориентированные на ненавигационный непроцедурный интерфейс) с одной стороны в большей степени нуждаются в оптимизации, а с другой стороны предоставляют большие возможности оптимизации. Поэтому оптимизационные приемы в реляционных СУБД наиболее развиты. Во-вторых (и это связано с первой причиной), оптимизации в реляционных СУБД посвящено громадное количество публикаций, что позволяет произвести достаточно полный анализ проблем и решений в этой области. Заметим, что приводимая в этой статье библиография, хотя и объемна, далеко не полна. Мы не стремились к составлению исчерпывающей библиографии, ограничиваясь наиболее известными и содержательными источниками. Обычно, говоря про оптимизацию в реляционных СУБД, имеют в виду аспект оптимизации запросов, т.е. такой способ выполнения запросов, когда по начальному представлению запроса путем его синтаксических и семантических преобразований вырабатывается процедурный план выполнения запроса, наиболее оптимальный при существующих в базе данных управляющих структурах. Соответствующие преобразования начального представления запроса выполняются специальным компонентом СУБД - оптимизатором, и оптимальность производимого им плана запроса носит достаточно условный характер: план оптимален в соответствии с критериями, заложенными в оптимизатор; при этом, конечно, возможны отклонения от реальной оптимальности.

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


Начало    Вперед



Книжный магазин