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




Введение - часть 2


Возникающее преобразование диаметрально противоположно тому, которое подрадумевалось в традиционных статических оптимизаторах [SACL79]: вместо того, чтобы быть выпуклыми (например, колоколообразной одноточечной волной (bell-shape, single point surge)) и обеспечивать стабильность оценки стоимости, булевские и реляционные преобразования в действительности приносят очень вогнутые (например, гиперболические) распределения, которые выражают большую степень неопределенности и нестабильности оценок [Ant93].

В новой архитектуре, настроенной на неопределенность, делаются попытки параллельного применения нескольких вариантов выполнения для полного использования областей высокой вероятности процессов, что приводит к выработке результата или к сокращению неопределенности и надежному направлению выполнения выборки. Продвижение и переключение процессов контролируется динамическим оптимизатором в частых точках выполнения. Манипулирование множествами записей реализуется путем интенсивного использования списков ID записей, битовых фильтров (bitmap filters, Babb’s arrays [Babb79]) и структур, поддерживающих оценки.

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




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