Adaptive Server IQ with Multiplex

Оценить
(0 голоса)

Проблема эффективной обработки больших томов данных привела к большей изощренности оптимизаторов РСУБД (реляционной СУБД). Улучшения оптимизаторов сопровождались новыми методами сокращения объема выполняемой работы: разделение на диапазоны, сцепленные индексы, а также большое число экзотических технологий наподобие объединенных индексов и материализованных представлений. Эти вопросы рассматриваются в главе 8.

Sybase Adaptive Server IQ with Multiplex (IQ-M) - адаптивный сервер фирмы Sybase с мультиплексированием в рамках запроса - применяет совершенно иной подход для решения этих проблем. Вместо сохранения данных в строках IQ-М сохраняет данные в столбцах. Полный набор данных для столбца сохраняется в виде единого объекта под названием column vector (вектор-столбец, или одномерный массив столбца).

Сохранение в столбцах

В IQ-М вектор-столбец является собственно индексом, содержащим низкоуровневые данные, поэтому каждый столбец имеет, как минимум, один индекс. Принятый по умолчанию индекс называется индексом FP (fast projection - быстрого проектирования), и IQ-М производит выборку из диапазона механизмов индексирования FP в зависимости от количества уникальных значений в столбце (column cardinality), а также в зависимости от того, ограничены ли значения в столбце оператором UNIQUE.

Для иллюстрации потенциальных преимуществ сохранения данных в столбцах давайте рассмотрим таблицу customer с 20 миллионами строк и 50 столбцами, в которой общая длина строки составляет около 1000 байт. Условная реляционная база данных будет содержать таблицу в виде единого объекта, общий размер которого составит 20 Гбайт. В отличие от этого IQ-М будет хранить столбцы раздельно в виде 50 векторов-столбцов. Предположим, что пользователь запрашивает листинг с фамилиями, регионами продаж, а также балансом всех заказчиков, чья задолженность превышает 100000 долларов. Чтобы извлечь данные, в условной БД будет выполняться сканирование таблицы, подвергающее операциям ввода/вывода 20 Гбайт информации. Однако IQ-М только потребуется извлечь три столбца. Если длииы трех столбцов составляют в общей сложности 60 байт, то для IQ-М необходимо будет получить только 20 миллионов х 60 байт информации, или 1.2 Гбайт. На самом деле эта величина будет даже несколько меньше, поскольку при сжатии размер массивов столбцов уменьшится наполовину.

Поскольку все значения в столбце одинакового типа, массивы столбцов могут быть эффективно сжаты.

Наихудшим сценарием для IQ-М по сравнению с условной базой данных оказывается получение всех столбцов одной строки. Для условной БД будет необходим только единственный ввод/вывод для возврата строки таблицы customer по сравнению с 50 операциями ввода/вывода для IQ-М. Однако полное извлечение всех столбцов одной строки не является характерным для большинства обращений к таблице хранилища данных.

Индексирование
Ввод/вывод и кэши
Параллелизм
Интерфейсы
Модель процессов Sybase

Добавить комментарий


Защитный код
Обновить