Режимы хранения и обработка секции
Режим хранения секции определяет производительность выполнения запросов и обработки, требования к хранилищу и месту хранения секции, а также ее родительскую группу мер и куб. Кроме того, режим хранения влияет на выбор обработки.
Секция может использовать один из трех основных режимов хранения:
многомерный OLAP (MOLAP);
реляционный OLAP (ROLAP);
гибридный OLAP (HOLAP).
Службы MicrosoftSQL ServerAnalysis Services поддерживают все три основные режима хранения. Также поддерживается упреждающее кэширование, позволяющее совмещать характеристики хранилищ ROLAP и MOLAP для незамедлительного доступа к данным и высокой производительности запросов. Дополнительные сведения см. в разделе Упреждающее кэширование (секции).
MOLAP
В режиме хранения MOLAP агрегаты секции и копия исходных данных при ее обработке сохраняются в многомерной структуре служб Analysis Services. В целях повышения производительности запросов структура MOLAP значительно оптимизирована. Местом хранения может быть либо компьютер, на котором определена секция, либо любой другой компьютер, на котором запущены службы Analysis Services. Учитывая тот факт, что многомерные структуры содержат копию исходных данных, запрос может быть выполнен без обращения к секции исходных данных. При использовании статистической обработки время выполнения запроса может значительно возрасти. Данные в структуре секции MOLAP соответствуют последней обработке секции.
Так как исходные данные изменяются, для включения этих изменений и обеспечения доступа к ним пользователей объекты в хранилище MOLAP должны периодически обрабатываться. Обработка полностью или частично обновляет данные в структуре MOLAP. Время между обработками представляет собой период задержки, в течение которого объекты OLAP могут не соответствовать исходным данным. Можно полностью или частично обновить объекты в хранилище MOLAP, не переводя секцию или куб в автономный режим. Однако в некоторых случаях это может оказаться необходимым при обработке определенных структурных изменений объектов OLAP. Можно свести к минимуму время простоя, требуемое для обновления хранилища MOLAP, с помощью обновления и обработки кубов на промежуточном сервере, а также использования синхронизации баз данных для копирования обработанных объектов на производственный сервер. Также для сокращения задержки и максимизации доступности можно использовать упреждающее кэширование, сохраняя при этом высокую производительность хранилища MOLAP. Дополнительные сведения см. в разделах Упреждающее кэширование (секции), Синхронизация баз данных служб Analysis Services и Обработка объектов служб Analysis Services.
ROLAP
В режиме хранения ROLAP агрегаты секции хранятся в индексированных представлениях реляционной базы данных, которая определена в источнике данных секции. В отличие от режима MOLAP, в режиме хранения ROLAP копия исходных данных в папках данных служб Analysis Services не хранится. Напротив, если получить результаты из кэша запросов невозможно, для ответов на запросы выполняется доступ к индексированным представлениям в источнике данных. Как правило, в режиме ROLAP запрос выполняется дольше, чем в режимах хранения MOLAP или HOLAP. И время обработки в режиме ROLAP обычно тоже больше. Однако режим ROLAP дает пользователям возможность просматривать данные в режиме реального времени и сохранять пространство хранилища при работе с большими наборами данных, которые запрашиваются редко, например архивные данные.
Примечание |
---|
При использовании режима ROLAP службы Analysis Services могут вернуть неправильные данные, связанные с неизвестным элементом, если соединение комбинируется предложением GROUP BY. В этом случае ошибки реляционной целостности будут исключены и неизвестные значения элементов не возвращаются. |
Если секция использует режим хранения ROLAP и его источник данных хранится в компоненте SQL Server Database Engine, то службы Analysis Services пытаются создать индексированные представления для получения статистических схем секции. Если службы Analysis Services не могут создать индексированные представления, то не создаются таблицы агрегатов. Несмотря на то, что службы Analysis Services удовлетворяют требованиям к сеансам для создания индексированных представлений в компоненте SQL Server Database Engine, для создания службами Analysis Services индексированных представлений агрегатов для секции ROLAP и таблиц в ее схеме необходимо выполнение следующих условий.
Секция не может содержать меры, использующие статистические функции Min или Max.
Все таблицы в схеме секции ROLAP должны использоваться только один раз. Например, схема не может содержать [dbo].[address] AS "Customer Address" и [dbo].[address] AS "SalesRep Address".
Все таблицы должны быть таблицами, а не представлениями.
Все имена таблиц в схеме секции должны содержать имя владельца, например [dbo].[customer].
Все таблицы в схеме секции должны принадлежать одному владельцу. Например, не допускается, чтоб предложение FROM одновременно ссылалось на таблицы [tk].[customer], [john].[store] и [dave].[sales_fact_2004].
Исходные столбцы мер секции не должны быть NULLABLE.
Все таблицы, используемые в представлении, должны быть созданы с использованием следующих параметров со значением ON:
ANSI_NULLS
QUOTED_IDENTIFIER
Общий размер ключа индекса в компоненте SQL Server Database Engine не может превышать 900 байт. Компонент SQL Server Database Engine проверяет это условие на основе ключевых столбцов фиксированной длины при обработке инструкции CREATE INDEX. Но если в ключе индекса имеются столбцы переменной длины, компонент SQL Server Database Engine проверяет это условие при каждом обновлении базовых таблиц. Так как различные агрегаты имеют различные определения представлений, то обработка в режиме ROLAP с использованием индексированных представлений может быть удачной или нет, в зависимости от статистической схемы.
В сеанс создания индексированного представления должны быть включены следующие параметры: ARITHABORT, CONCAT_NULL_YEILDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING и ANSI_WARNING. Эти настройки можно произвести в среде SQL Server Management Studio.
В сеансе создания индексированного представления должны быть выключены следующие параметры: NUMERIC_ROUNDABORT. Эти настройки можно произвести в среде SQL Server Management Studio.
HOLAP
Режим хранения HOLAP объединяет атрибуты режимов MOLAP и ROLAP. Как и в режиме MOLAP, в режиме хранения HOLAP агрегаты секции хранятся в многомерной структуре в экземпляре служб SQL ServerAnalysis Services. В режиме HOLAP копия исходных данных не хранится. Для запросов, которые производят доступ только к сводным данным в агрегатах секции, режим HOLAP полностью эквивалентен режиму MOLAP. Запросы с доступом к исходным данным, например углубленная детализация ячейки атомарного куба без статистических данных, должны получать данные из реляционной базы данных. Эти запросы выполняются не так быстро, как запросы к исходным данным в структуре MOLAP. В режиме хранения HOLAP пользователи, как правило, ощущают весомые различия во времени обработки запроса в зависимости от того, откуда разрешаются запросы: из кэша или из агрегатов источника данных.
Секции с режимом хранения HOLAP меньше аналогичных секций MOLAP, потому что в них не содержится источник данных, а для запросов со сводными данными они имеют меньшее время отклика, чем в секциях ROLAP. Режим хранения HOLAP, как правило, подходит для секций в кубах, требующих малого времени ответа на запросы сводных данных из большого количества исходных данных. Однако если пользователи создают запросы к данным конечного уровня, например вычисление средних значений, более предпочтительно использовать режим MOLAP.