Классика баз данных - статьи

       

Архитектурные аспекты


Неопределенность преобразований распределений оценок, являющаяся неоъемлемой частью основных булевских/реляционных операций, является не единственной разновидностью неопределенностей, с которыми мы имеем дело. Значения пользовательских переменных, атрибуты уже разрешенных частей запросов, размер доступной памяти и т.д. становятся доступными на разных стадиях выполнения, и потому с ними нужно работать динамически. Этот тип неопределенности может быть, большей частью, разрешен путем привязки значения в тот момент, когда оно становится доступным, часто при старте вычисления операции.

Метод динамического выбора подплана запроса во время привязки значения предлагается в [GrWa89]. Динамические планы обеспечивают механизм переключения традиционным образом генерируемых альтернативных подпланов, применяемый во время старта подплана в зависимости от доступных значений переменных. Основанная на конкуренции динамическая оптимизация, с другой стороны, включает все те же переменные в свою модель стоимости и обеспечивает переключение стратегии во время начала и в любой другой точке выполнения подзапроса.

Однако очевидно, что статистически некоторые решения о переключении, принимаемые во время старта с небольшими вычислительными накладными расходами, помогают избежать больших накладных расходов на конкуренцию, не жертвуя оптимальностью. Это делает время старта подзапроса идеальным моментом для отделения неопределенности (обсуждавшегося в разд. 4) и начальной организации одиночного или параллельных потоков управления.

На уровне доступа к одиночной таблице механизм переключения стратегий описан в [MoHa90]. Он выполняет переключения в течение индексных сканирований по достижению некоторых порогов с целью скорректировать периодические направления неоптимального выполнения, выбранные во время компиляции. При этом подходе пороговые значения также вычисляются во время компиляции (что делает их похожими на динамические планы). В Rdb пороги, частично вычисленные во время компиляции, окончательно оформляются во время начала выборки и подгоняются под изменяющуюся «лучшую в текущий момент» стратегию в течение выборки.



Содержание  Назад  Вперед