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

       

В Rdb выборки из таблиц


В Rdb выборки из таблиц и индексов контроллируются динамическим оптимизатором на трех фазах:


  1. Начальная фаза – производятся недорогие вычисления и оценки индекса, следущие из начальной конкуренции, или организуется однопотоковое выполнение.
  2. Фаза сканирования индекса – сложный механизм, включающий несколько совместных и конкурирующих стратегий, поставляющий запрошенные записи и/или список ID записей или принимающий решение о последовательной выборке из таблицы.
  3. Завершающая фаза – производятся непереключаемые чтения записей либо по списку ID записей, либо последовательно.


Подробное описание этой архитектуры можно найти в [Ant91] и [Ant93]. Динамическая архитектура как часть продукта представлена в [HoEn91]. На фазе сканирования индекса одновременно имеют место несколько разновидностей конкуренции, в которую вовлекается до трех индексов. Намерение быстрой доставки записей может конкурировать с построением списка ID записей. Последовательность обработки индекса может изменяться в ходе прямой конкуренции. Сканирование некоторых индексов может быть прекращено при двухфазной конкуренции за наиболее дешевую завершающую фазу. Сканирование индекса может конкурировать с уже обнаруженной полной стратегией выборки.

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


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