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




Обзор средств обработки запросов - часть 3


OR-оптимизация соединяет потоки и удаляет дубликаты из сканов через несколько индексов, а также выполняет сканирование через единственный индекс над связанным через OR списком диапазонов с использованием загзагообразного обхода (zig-zag skip) (см. пример в разд. 7). AND-оптимизация является частью стратегии Leaf, описанной в [Ant93].

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

Статистика мощности таблиц и индексов поддерживается динамически с точностью O(log(n)) (запуск утилиты не являются обязательными, но может производиться в любое время для придания статистическим данным полной точности). Статистика оценки селективности собирается во время «начала выборки» (start retrieval) в течение выполнения быстрого «без блокировок» (no lock) индексного поиска.

Для сортировки используется быстрая сортировка в основной памяти и выборка с замещением для слияния отсортированных участков. Используется и подбирается автоматически как сортировка признаков, так и перестановка записей целиком (V6.0). Для ограничений целостности имеются опции проверки либо при обновлении, либо во время фиксации. Проверка ограничения целостности оптимизируется путем исключения избыточных проверок и использования списков ID модифицированных записей для сокращения области проверки.

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




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