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


Статистическая глобальная оптимизация - часть 2


DBDSGN обладает двумя основными особенностями. Первой особенностью является то, что это средство не интегрировано с внутренними компонентами System R, в частности, с оптимизатором запросов. В DBDSGN используется информация, которую можно получить от системы через ее стандартный интерфейс. Язык SQL, обеспечивающий этот интерфейс, включает специальный оператор EXPLAIN, позволяющий получить информацию о типе запроса, его структуре, выбранном для выполнения плане и оценках стоимости плана целиком и его составляющих. На основе этой информации в DBDSGN принимаются решения о необходимости создания дополнительных индексов, и индексы создаются также на основе обычного интерфейса SQL (используется динамически выполняемый оператор CREATE IMAGE; подробности о возможностях System R по части динамически выполняемых операторов можно найти в [129]).

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

Вторая особенность связана с тем, что задача выбора оптимального набора индексов является NP-полной, и, следовательно, ее точное решение может оказаться слишком накладным. Поэтому для решения применяется набор эвристических правил. Мы не будем описывать применяемые в DBDSGN эвристики, поскольку достаточно сложны и специфичны. Как отмечается в [119], эти эвристики позволяют получить решение, близкое к оптимальному.

Заметим, что средство DBDSGN обеспечивает не автоматическое, а лишь автоматизизировнное улучшение физической структуры базы данных. Это средство является диалоговым и использует наряду с информацией от СУБД информацию, поставляемую администратором. В частности, под контролем администратора, производится и поиск решения задачи оптимального набора индексов. Каждый раз эта задача решается для одного указанного запроса, но в процессе последовательного применения DBDSGN образуется оптимальный набор индексов, соответствующий потоку запросов.

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

| |




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



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