Режимы хранения секций и обработка

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

Секция может использовать один из трех основных режимов хранения:

  • Многомерный OLAP (MOLAP)

  • Реляционный OLAP (ROLAP)

  • Гибридный OLAP (HOLAP)

Службы Microsoft SQL Server Analysis Services поддерживают все три основных режима хранения. Кроме того, она поддерживает упреждающее кэширование, что позволяет объединять характеристики хранилища ROLAP и MOLAP как для мгновенной обработки данных, так и для производительности запросов. Дополнительные сведения см. в разделе "Упреждающее кэширование" (секции).

MOLAP

Режим хранения MOLAP приводит к агрегации секции и копии исходных данных, хранящихся в многомерной структуре в службах Analysis Services при обработке секции. Эта структура MOLAP оптимизирована для максимальной производительности запросов. Расположение хранилища может находиться на компьютере, где определен раздел или на другом компьютере под управлением служб Analysis Services. Так как копия исходных данных находится в многомерной структуре, запросы можно разрешать без доступа к исходным данным секции. Время отклика запроса может значительно уменьшиться с помощью агрегатов. Данные в структуре MOLAP секции являются текущими, как и последняя обработка секции.

По мере изменения исходных данных объекты в хранилище MOLAP должны периодически обрабатываться, чтобы включить эти изменения и сделать их доступными для пользователей. Обработка обновляет данные в структуре MOLAP либо полностью, либо добавочно. Время между одной обработкой и следующим создает период задержки, в течение которого данные в объектах OLAP могут не совпадать с исходными данными. Можно добавочно или полностью обновить объекты в хранилище MOLAP, не используя секцию или куб в автономном режиме. Однако в некоторых ситуациях может потребоваться отключить куб для обработки определенных структурных изменений в объектах OLAP. Можно свести к минимуму время простоя, необходимое для обновления хранилища MOLAP, обновив и обработав кубы на промежуточном сервере и используя синхронизацию базы данных для копирования обработанных объектов на рабочий сервер. Кроме того, можно использовать упреждающее кэширование для минимизации задержки и максимальной доступности, сохраняя большую часть преимуществ производительности хранилища MOLAP. Дополнительные сведения см. в статье "Упреждающее кэширование (секции)", "Синхронизация баз данных служб Analysis Services" и "Многомерная обработка объектов модели".

ROLAP

Режим хранения ROLAP приводит к тому, что агрегаты секции будут храниться в индексированных представлениях реляционной базы данных, указанной в источнике данных секции. В отличие от режима хранения MOLAP, ROLAP не приводит к хранению копии исходных данных в папках данных служб Analysis Services. Вместо этого, если результаты не могут быть производными от кэша запросов, индексированные представления в источнике данных получают доступ к ответам на запросы. Ответ запроса обычно медленнее с хранилищем ROLAP, чем в режимах хранения MOLAP или HOLAP. Время обработки также обычно медленнее с ROLAP. Однако ROLAP позволяет пользователям просматривать данные в режиме реального времени и сохранять место в хранилище при работе с большими наборами данных, которые редко запрашиваются, например чисто исторические данные.

Замечание

При использовании ROLAP службы Analysis Services могут возвращать неверные сведения, связанные с неизвестным членом, если соединение объединяется с предложением GROUP BY. Службы Analysis Services устраняют ошибки реляционной целостности вместо возврата значения неизвестного члена.

Если раздел использует режим хранения ROLAP и его исходные данные хранятся в ядре СУБД SQL Server, службы Analysis Services пытается создать индексированные представления для хранения агрегатов секции. Если службы Analysis Services не могут создавать индексированные представления, она не создает таблицы агрегирования. Хотя службы Analysis Services обрабатывают требования к сеансу для создания индексированных представлений в ядро СУБД SQL Server, следующие условия должны соответствовать секции ROLAP и таблицам в схеме, чтобы службы Analysis Services создавали индексированные представления для агрегирования:

  • Секция не может содержать меры, использующие Min функции или Max агрегатные функции.

  • Каждая таблица в схеме секции ROLAP должна использоваться только один раз. Например, схема не может содержать [dbo]. [адрес] AS "Адрес клиента" и [dbo]. [адрес] AS "SalesRep Address".

  • Каждая таблица должна быть таблицей, а не представлением.

  • Все имена таблиц в схеме секции должны быть квалифицированы с именем владельца, например [dbo]. [клиент].

  • Все таблицы в схеме секции должны иметь одного владельца; Например, у вас не может быть предложение FROM, ссылающееся на таблицы [tk]. [клиент], [джон]. [store], и [dave]. [sales_fact_2004].

  • Исходные столбцы мер секции не должны иметь значение NULL.

  • Все таблицы, используемые в представлении, должны быть созданы со следующими параметрами:

    • ANSI_NULLS

    • Кавычечный идентификатор

  • Общий размер ключа индекса в ядре СУБД SQL Server не может превышать 900 байт. Ядро СУБД SQL Server будет утверждать это условие на основе ключевых столбцов фиксированной длины при обработке инструкции CREATE INDEX. Однако если в ключе индекса есть столбцы переменной длины, ядро СУБД SQL Server также будет утверждать это условие для каждого обновления базовых таблиц. Так как разные агрегаты имеют разные определения представлений, обработка ROLAP с использованием индексированных представлений может завершиться успешно или завершиться ошибкой в зависимости от структуры агрегирования.

  • Сеанс, создающий индексированные представления, должен иметь следующие параметры: ON: ARITHABORT, CONCAT_NULL_YEILDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING и ANSI_WARNING. Этот параметр можно сделать в СРЕДЕ SQL Server Management Studio.

  • Сеанс, создав индексированные представления, должен иметь следующий параметр: OFF: NUMERIC_ROUNDABORT. Этот параметр можно сделать в СРЕДЕ SQL Server Management Studio.

HOLAP

Режим хранения HOLAP объединяет атрибуты MOLAP и ROLAP. Как и MOLAP, HOLAP приводит к тому, что агрегаты секции хранятся в многомерной структуре в экземпляре служб SQL Server Analysis Services. HOLAP не приводит к хранению копии исходных данных. Для запросов, обращаюющихся только к сводным данным в агрегированиях секции, HOLAP эквивалентен MOLAP. Запросы, которые обращаются к исходным данным, например, если требуется детализация до ячейки атомарного куба, для которой нет агрегированных данных, должны извлекать данные из реляционной базы данных и не будет так быстро, как они были бы, если исходные данные хранятся в структуре MOLAP. В режиме хранения HOLAP пользователи обычно испытывают существенные различия в времени запроса в зависимости от того, можно ли разрешить запрос из кэша или агрегатов, а не от самого исходного данных.

Секции, хранящиеся как HOLAP, меньше эквивалентных секций MOLAP, так как они не содержат исходные данные и реагируют быстрее, чем секции ROLAP для запросов, содержащих сводные данные. Режим хранения HOLAP обычно подходит для секций в кубах, требующих быстрого ответа запроса на сводки на основе большого объема исходных данных. Однако, когда пользователи создают запросы, которые должны касаться данных конечного уровня, например для вычисления значений медиана, MOLAP обычно является лучшим выбором.

См. также

Упреждающее кэширование (партиции)
Синхронизация баз данных Analysis Services
Разделы (службы Analysis Services — многомерные данные)