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




Архитектурные аспекты - часть 3


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

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

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




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