Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 Currency m2m performance issue  [new]
PassedBI
Member

Откуда:
Сообщений: 275
Вечер добрый.

В кубе есть классический пересчет валюты:
- продажи с измерением валюты транзакции (measure: [Сумма])
- факт курсов (3 измерения: вал.транз., вал.пересчета, дата, measure: [Курс])
- валюта пересчета как M2M к продажам (с дефолтной валютой). На связи опеределен DirectSlice для локальной валюты (дефолт мембер на валюте, курс всегда 1)
- measure expression для [Сумма] определена как [Сумма]/[Курс]

Цифры корректные, курс подтягивается для выбранной валюты и дня, сумма в итогах верная.
Омрачает только, что по профайлеру видно как дергаются все секции продаж, независимо от выбранного периода. Секционирование помесячное, индексы построены. Факт с курсами валют не секционирова, индексы тоже построены.

1. Основной вопрос: почему считываются все секции, а не только нужная (в отчете выбраны дни из одного месяца)?

2. Для интереса: почему дергается группа с курсами, когда валюта не выбрана или явно выбрана валюта локал. DirectSlice, судя по описанию, должен напрямую взять меру из продаж и не делить ее на курс (курс можно не заводить даже, но пока он есть, равный 1)
4 окт 17, 15:57    [20842680]     Ответить | Цитировать Сообщить модератору
 Re: Currency m2m performance issue  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3471
PassedBI,

Посмотрите, как будет в Multidimensional 2016
может, получше?
4 окт 17, 16:25    [20842816]     Ответить | Цитировать Сообщить модератору
 Re: Currency m2m performance issue  [new]
Andy_OLAP
Member

Откуда:
Сообщений: 517
PassedBI
Вечер добрый.

В кубе есть классический пересчет валюты:
- продажи с измерением валюты транзакции (measure: [Сумма])
- факт курсов (3 измерения: вал.транз., вал.пересчета, дата, measure: [Курс])
- валюта пересчета как M2M к продажам (с дефолтной валютой). На связи опеределен DirectSlice для локальной валюты (дефолт мембер на валюте, курс всегда 1)
- measure expression для [Сумма] определена как [Сумма]/[Курс]

Цифры корректные, курс подтягивается для выбранной валюты и дня, сумма в итогах верная.
Омрачает только, что по профайлеру видно как дергаются все секции продаж, независимо от выбранного периода. Секционирование помесячное, индексы построены. Факт с курсами валют не секционирова, индексы тоже построены.

1. Основной вопрос: почему считываются все секции, а не только нужная (в отчете выбраны дни из одного месяца)?

2. Для интереса: почему дергается группа с курсами, когда валюта не выбрана или явно выбрана валюта локал. DirectSlice, судя по описанию, должен напрямую взять меру из продаж и не делить ее на курс (курс можно не заводить даже, но пока он есть, равный 1)

Попробуйте так - делаете create hidden dynamic set [Выбранные дни] as existing [Дата_измерение].День_ключевой_атрибут].День_ключевой атрибут];
create hidden dynamic set [Выбранные валюты] as existing [Валюта_измерение].[Валюта_ключ].[Валюта_ключ];
create [сумма_в_валюте] as
sum(existing [Выбранные дни],
// здесь идем для каждого дня в свою секцию по физической мере
sum(existing [Выбранные валюты],
// а здесь перебираем по валютам и для каждой читаем только секцию нужного месяца, если slice помесячный прописан на секции с // физической мерой Сумма
measure.[сумма] / measure.[курс])),
visible = 1;
16 окт 17, 18:56    [20873917]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить