powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS 2012 Опримизация архитектуры куба
15 сообщений из 15, страница 1 из 1
SSAS 2012 Опримизация архитектуры куба
    #39469418
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wello World!
Насущный вопрос - как правильно создавать атрибуты в измерении.
Есть ли смысл для не ключевого атрибута делать целочисленные ключи. Будет ли от этого польза. И как это проверить.

Для своего мини исследования создал два, почти идентичных тестовых куба.
У каждого из них, одна группа мер [View Fact Sale] и одно измерение [Product].

Группа мер [View Fact Sale] - идентична для обоих. Состоит из двух мер : [Measures].[Quantity] и [Measures].[Revenue]
Измерение [Product] имеет ключевой атрибут - [Product].[Product] и завистмый [Product].[Период Без Продаж].

В кубе1 при построении [Product].[Период Без Продаж] использую целочисленные значения для KeyColumns, а для NameColumn строковые

В кубе 2 для KeyColumns использую строковые значение, а NameColumn не заполняю
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469423
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далее процессинг обоих кубов и очистка кеша

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<!--To clear the cache of an entire cube -->
<ClearCache xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
	<Object>
		<DatabaseID>OLAP_DEV_</DatabaseID>
		<CubeID>Cube</CubeID>
	</Object>
</ClearCache>

<!--To clear the cache of an entire cube -->
<ClearCache xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
	<Object>
		<DatabaseID>OLAP_DEV_2</DatabaseID>
		<CubeID>Cube</CubeID>
	</Object>
</ClearCache>



Запуск профайлера и выполнение скрипта для каждого куба.
Код: sql
1.
2.
3.
SELECT	[Measures].[Quantity] ON 0,
		[Product].[Период Без Продаж].[Период Без Продаж] ON 1
FROM	[Cube]



На выходе такой результат
Куб 1 Куб 2 READS 29 READS 29READ_KB 1748 READ_KB 1748WRITES 0 WRITES 0WRITE_KB 0 WRITE_KB 0CPU_TIME_MS 31 CPU_TIME_MS 0ROWS_SCANNED 123724 ROWS_SCANNED 123724ROWS_RETURNED 123724 ROWS_RETURNED 123724

Ожидал получить другой.

Прошу отписать ваши комментарии по данному результату и моим вопросам.
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469471
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yagrus2,

KeyColumns - целочисленный НЕсоставной, на измерениях с больши количеством элементов это заметно
даже для неключевых атрибутов (ну т.е. которые не на уровне гранулярности)

NameColumn - длина должна быть с некоторым запасом, но в разумных пределах

еще удобно использовать свойство Value
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469475
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и сколько у вас данных в [Product]?
почему меряете показатели запроса к кубу, а не процессинга измерения?
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469483
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дедушкаи сколько у вас данных в [Product]? Количество записей в исходной таблице: 292458
Дедушкапочему меряете показатели запроса к кубу, а не процессинга измерения?
Не подумал про нагрузку при процессинге.
Нагрузка при полном процессинге измерения:

Куб 1 Куб 2 READS 930 READS 918READ_KB 35680 READ_KB 35676WRITES 2662 WRITES 2652WRITE_KB 51340 WRITE_KB 51327CPU_TIME_MS 3915 CPU_TIME_MS 4336ROWS_SCANNED 292459 ROWS_SCANNED 292459ROWS_RETURNED 0 ROWS_RETURNED 0
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469494
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_496,
Я как раз и проверяю не ключевой атрибут.
И судя по трассе, для них целочисленные ключи дают больше минусов чем плюсов.

По мне это не логично...
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469559
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yagrus2,

почему больше? для Вас какой параметр важнее, объем обработанной инфы или время обработки?
с объемом все понятно -
на чтение больше потому что вьюшки разные и возвращают int+nvarchar(50) против nvarchar(50)
на запись по той же причине,
а вот со скоростью-то наоборот, и причем значительно: 10% выигрыша на мизерном объеме.
и это только на обработке, а на вычислениях по сетам? только тестировать надо не на десятке тысяч (в атрибуте подозреваю еще меньше).
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469574
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yagrus2Wello World!
Насущный вопрос - как правильно создавать атрибуты в измерении.
Есть ли смысл для не ключевого атрибута делать целочисленные ключи.

Нужен суррогатный целочисленный ключ.
Главное слово тут "суррогатный", но естественно, он должен быть числовым.

Но причина совсем другая.
Поясную на примере: пусть имеется справочник (не совсем справочник, а витрина для куба) клиентов в виде
{ключ_клиента, наименование клиента, сегмент клиента}, содержащая данные
1, ООО Ромашка, средний и малый бизнес

тогда, при переименовании сегмента клиентов, например, в "СМБ", у пользователей слетят все сохраненные отчеты, чего быть не должно
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469602
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик,

они так же с успехом слетят если в запросах используются не ключи ( .&[100] ), а имена ( .[средний и малый бизнес] )
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469608
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

если имена - слетят,
а вот если ключи - не слетят
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469643
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,
Не буду спорить, что при процессинге для первого куба(с павильным измерением) CPU_TIME_MS оказался меньше на 10%.

Но как быть с селектами? Атрибут [Product].[Период Без Продаж] содердит коллекцию из 45 элеметов(включая элемент ALL)
Подскажите пример атрибута, на котором можно увидеть положительный эфект по CPU_TIME_MS.

Моим запросом
Код: sql
1.
2.
3.
SELECT	[Measures].[Quantity] ON 0,
		[Product].[Период Без Продаж].[Период Без Продаж] ON 1
FROM	[Cube]


нельзя анализировать CPU_TIME_MS, так для каждого куба он скачет то в большую, то в меньшую сторону.
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39469834
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_496KeyColumns - целочисленный НЕсоставной, на измерениях с больши количеством элементов это заметно
даже для неключевых атрибутов (ну т.е. которые не на уровне гранулярности)

А почему? Любимый пример из измерения дат из велозавода - там атрибуты составные.
Что становится заметно, рост времени процессинга измерения? Большое - это больше 1 миллиона элементов?

Мне это интересно не только в академическом ключе - в измерении дат - 15-минутные интервалы, и элементов в таком измерении немало. Для месяцев, недель и кварталов - использую композитный ключ.
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39470173
Voyager_lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux,

Велозавод это не эталон, а показать, что так можно сделать.

1. Do use numeric keys for attributes that contain many members (>1 million)

2. #4: Use Integer Data Type for Attribute Keys If at All Possible
For best processing performance, try to use the smallest data type for attribute key columns. Although you could use string data types for key columns, they do not perform nearly as well as the numeric data types. At times you may need to use multiple columns for the composite key for a dimension attribute. Although this practice is almost always acceptable, for large dimensions (and particularly for fact level dimensions) you may have to add an alternate key to the dimension table to ensure processing is efficient. For example, let’s suppose you have a fact level “transaction” attribute and you use company identifier, effective date, and journal entry identifier string columns as keys for this attribute. While processing this dimension, MSAS must retrieve a unique combination of three string columns, which can be very time-consuming for a dimension that contains millions of records. Instead, you can add an identity column (or another integer column uniquely identifying each transaction) to the dimension table and use it as the attribute key. Reading a single integer column will be considerably faster than reading three string columns. Storing integer keys will also be much more efficient.
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39470248
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux,

Александр ответил, расписал под хохлому, и пруфы привел.

Ну и еще, помнится, в MDX- запросах проще ссылаться на несоставные элементы
...
Рейтинг: 0 / 0
SSAS 2012 Опримизация архитектуры куба
    #39470338
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Voyager_lan,

Спасибо за статьи!
Соственно, из первой ссылки идет критерий большого измерения - 1 миллион элементов. Буду думать - затронет ли изменение принципа ключей существующие в проде отчеты...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS 2012 Опримизация архитектуры куба
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]