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


Семантическая оптимизация запросов - часть 11


SELECT EMPNAME, STATUS FROM EMP WHERE STATUS = 'Manager', выполнение которого может быть более эффективным.

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

Это в принципе допустимо по отношению к запросам, встроенным в программу на языке программирования, которые потенциально в будущем будут выполняться много раз, но абсолютно не годится для запросов, обрабатываемых в интерактивном режиме. Поэтому, вообще говоря, необходимо применение эвристических алгоритмов, сокращающих пространство поиска, т.е. задающих условие прекращения генерации новых представлений. Подробный анализ проблемы и некоторые эвристические алгоритмы приведены, например, в [127]. Эвристики основываются на минимизации взвешенной суммы стоимостей семантической оптимизации и выполнения запроса. Примером грубой эвристики может быть следующий: оптимизация производится до тех пор, пока затраты на нее не превзойдут оценочную стоимость наиболее эффективного из всех найденных планов выполнения запроса.

| |




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