Почему вы хотите использовать Process Data vs Process Full для обработки раздела - PullRequest
1 голос
/ 21 февраля 2020

Как указано здесь : Данные процесса будут обрабатывать данные только без построения агрегатов или индексов. Если в разделе есть данные, они будут удалены перед повторным заполнением раздела исходными данными. С другой стороны, для Process Full Analysis Services также удалит все данные в разделе, а затем обработает раздел. Таким образом, если для иерархий атрибутов, подключенных к разделу, задано значение AttributeHierarchyOptimizedState = true, службы Analysis Services будут создавать индексы для иерархии атрибутов для повышения производительности запросов. Мне удалось подтвердить это поведение, выполнив следующий запрос к базе данных Adventure Works:

SELECT
DIMENSION_NAME, ATTRIBUTE_NAME, ATTRIBUTE_INDEXED,
ATTRIBUTE_COUNT_MIN, ATTRIBUTE_COUNT_MAX
FROM SystemRestrictSchema($system.discover_partition_dimension_stat
        ,DATABASE_NAME = 'AdventureWorksDW2014Multidimensional-EE'
        ,CUBE_NAME = 'Adventure Works'
        ,MEASURE_GROUP_NAME = 'Internet Sales'
        ,PARTITION_NAME = 'Internet_Sales_2013') 

Когда я Данные процесса ATTRIBUTE_INDEXED для всех атрибутов установлено значение false. Когда я выполняю полный процесс для столбца ATTRIBUTE_INDEXED устанавливается значение true для большинства атрибутов.

Так что мне было интересно, почему кто-то хочет обрабатывать только данные и, следовательно, жертвовать производительностью запросов, чтобы получить что? Спасибо.

1 Ответ

2 голосов
/ 27 февраля 2020

В двух словах - чтобы сократить время простоя и время приготовления куба. Как вы указали, за счет снижения производительности запросов в период между ProcessData и ProcessIndex .
Обработка обычно переводит куб в автономный режим, по крайней мере, при внесении изменений, что может занять значительное количество время. Чтобы сократить время автономной работы куба из-за обработки, особенно на больших кубах, разделы (части) куба с обновленными данными обрабатываются с опцией Дата обработки . После завершения этой обработки новые данные в кубе становятся доступными для запросов, но с потерей производительности. После этого Process Indexes на затронутых разделах запускается, что строит все индексы и агрегаты на объектах.
По моему опыту, он используется и имеет смысл только для больших проектов. Еще один вывод - выполнение Process Default в кубе создает отсутствующие индексы и агрегаты без указания точной группы мер et c.

...