powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Еще раз про нарастающий итог и быстродействие.
25 сообщений из 31, страница 1 из 2
Еще раз про нарастающий итог и быстродействие.
    #32399167
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
MS SQL2000 + MS AS 2000. П4-2.4 + 1Гб рам.
Виртуальный куб План-Факт. 3 реальных измерения(Дата, товар, ТипКлиента) +3 виртуальных от товара (Производитель, Подкатегория, Бренд) + Данные "Количество" и "сумма".
Исходные кубы агрегированы со 100% perfomance, номенклатура ок 400 поз, время-2года. В кубах детализация до уровня День.
Одна из основных и частых задач - сведения о выполнии плана НАРАСТАЮЩИМ итогом с НАЧАЛА МЕСЯЦА.
Проблема - долгий (до 5мин) расчет к концу месяца развернутого отчета,
т.е. при выбранной дате по подкатегории, бренд, товар - отображение плана нараст итогом, факта нар итогом, отклонения абсолютного и в % (все сделано CM). Расчет идет на сервере.
В MDX выражениях перепробовал разные варианты функций
PeriodsToDate([Месяц],[Дата].CurrentMember),
Mtd([Дата].CurrentMember)
[Дата].CurrentMember.Parent.FirstChild:[Дата].CurrentMember

Но результат примерно одинаковый.

Прошу помощи спецов. Как можно убыстрить/оптимизировать сию модель в рамках имеющегося ПО и железа?
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32399576
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vi bi pokazali ponii MDX zapros, a inache trudno sudit gde u vas provlemi.
Kakie u vas parametri soedineniya ADOMD?
Chto ispolzuetsya v kachestve Client?
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32399579
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V chem zaklyuchaetsya vashe virazhenie?
ORРасчет идет на сервере
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32399644
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
Для "ФактТ нарастающим с начала месяца" :

iif([Дата].CurrentMember.Level.Name = "День", sum(MTD(), Measures.[ФактТ]), Measures.[ФактТ])

Клиент: MS ExcelXP

Provider=MSOLAP.2;Integrated Security=SSPI;Persist Security Info=False;Data Source=SQLSRV;Initial Catalog=РРР;Client Cache Size=25;Auto Synch Period=10000;Execution Location=3;Large Level Threshold=100;

"Расчет на сервере" - имелось в виду, что Execution Location=3 в парам соединения.
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32399962
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Poprobuite prosto

Provider=MSOLAP.2;Integrated Security=SSPI;Persist Security Info=False;Data Source=SQLSRV;Initial Catalog=РРР;


A eto vikinut.
Client Cache Size=25;Auto Synch Period=10000;Execution Location=3;Large Level Threshold=100;

Pamyati butet zhrat bolshe, no bistrodeistvie budet luchshe, esli pamyati na kliente havataet. Po moemu opitu - natavlyat Olap Client/Server s pom opcii connection string - tolko uhudshat proizvoditelnost :-).


A ne prosche li vam objyavit Calculated member ne v Measures, a v Time Dimension. Ya delayu imenno tak i na proizvoditelnost ne zhaluyus.
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32400177
Фотография Quark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А пробовали сделать вирт. измерения не виртуальными?
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32400310
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
to Quark:
Делал, не помогает. Они, в принципе, маленькие, 2-10 листьев, так что особо не повлияли.

to backfire:
Часть строки выкинул, выполняться стало на клиенте, ~10% быстрее. Но дело в том, что при расчете СМ в основном грузится проц, а на клиенте в основном стоят Cel. Так что выигрыша не получится особого :(

А можно немного подробнее про объявление СМ в TimeDimension?
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32400492
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U menya MDX generitsya moim klientom, tochnee serverom prilochenii, no po optnoscheniyu k AS eto vse ravno klient.

Vot naprimer, 1-ya kolonka den, 2-ya den nakopleniem s nachala mesyaca, 3-ya mecyac, 4-ya mesyac nakopleniem s nachala goda.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
WITH 
member [CalendarYear].[Column  1 ] as 
'AGGREGATE(PeriodsToDate([CalendarYear].[Month],
                         [CalendarYear].[All CalendarYears].[2004].[H1].[Q1].[02].[06]))'
                         
member [CalendarYear].[Column  3 ] as 
'AGGREGATE(PeriodsToDate([CalendarYear].[Year],
                         [CalendarYear].[Alle CalendarYears].[2004].[H1].[Q1].[02]))'

SELECT 
{
 [CalendarYear].[All CalendarYears].[ 2004 ].[H1].[Q1].[ 02 ].[ 06 ],
 [CalendarYear].[Column  1 ],
 [CalendarYear].[All CalendarYears].[ 2004 ].[H1].[Q1].[ 02 ],
 [CalendarYear].[Column  3 ]
} ON COLUMNS,

CROSSJOIN({[Customer].[Alle Customers],[Customer].[All Customers].children},
          {[Measures].[SalesValue],[Measures].[Profit]})

ON ROWS
FROM Sales

...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32400547
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Na skiolko bistro eto rabotaet?

Fact Table okolo 6,000,000 zapisei.
v BD 3 goda.
Izmerenii okolo 25.
Mer okolo 50

Krupneischie izmereniya: Tovar - okolo 100000 kategorii
Klient okolo 20000 kategorii.

Otcheti tipa visheprivedennogo vipolnyayutsya za 2-3 sec.


Zhelezo 2x1GHz P3 + 4Gb Ram (server prilozhenii krutitsya na toi zhe mashine chto i OLAP server.
(Pamyati mnogo ne bivayet)
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32400555
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korrektirovochka
vmesto
Код: plaintext
1.
{[Customer].[Alle Customers],[Customer].[All Customers].children}


nado
Код: plaintext
1.
{[Customer].[Alle Customers],HEAD([Customer].[All Customers].children,  1000 )}


chtobi ne zashkalivalo.:-)
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32400622
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
спасибо, щас попробую
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32401955
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это типовая проблема в неотимальности формулы нарастающего итога.
Стоит уйти от PeriodsToDate
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32401967
А не подскажите как?
У меня в отличие от автора PIII 700 256RAM.
140000 в измерении товаров, 600 в измерении поставщков.
И вот при попытке в crossjoin'e поставщиков,товаров и времени. в детализации до дней в одном месяце. при попытке открыть группу товаров в 6000 наименований и отфильтровать Null значения все тормозит примерно минуту.
Или это нормально при таких параметрах?
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32405752
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
to backfire:
К сожалению, использование СМ в TimeDimension не принесло кардинальных улучшений (запускал по нескольку раз MDX запросы к прилинкованному OLAP серверу через Query Analyzer на самом сервере).
По видимому, проблема все таки в функции PeriodsToDate (как писал В.Иванов) и ее аналогах, где бы они не использовались, везде выбираются все листья и только потом суммируются.

Вопрос В.Иванову:
Чем все таки обойти эту проблему? Чем заменить использование Mtd() для расчета нараст итога с нач месяца?
Хотя бы в каком направлении копать и возможно ли решение данного вопроса в рамках MDX и средств MS AS?
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32405827
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To OR:

Чем все таки обойти эту проблему? Чем заменить использование Mtd() для расчета нараст итога с нач месяца?
Хотя бы в каком направлении копать и возможно ли решение данного вопроса в рамках MDX и средств MS AS?


Насколько я помню, этот вопрос неоднократно обсуждался, и его оптимальное решение с использованием инструментария MS AS не было оглашено. Это ноу-хау г-на Иванова, и стоит оно столько, сколько стоит его тренинг (кстати не так дорого, долларов 500 всего лишь, если цены с тех пор не поднялись :)

Если же Вы хотите дойти до этого решения сами - скажу, что Вам надо найти, как использовать агрегаты уровня Года, Квартала и Месяца, а не производить вычисления над дневными агрегатами.

P.S. В ближайшие дни я буду в Киеве. Если у украинских любителей и профессионалов по OLAP будет желание обменяться опытом - пишите мне на адрес cognos@narod.ru
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32405921
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
To Jurii:

В форуме я перечитал все что говорилось по этому поводу.
Еще раз обращаю внимание, что нужен нарастающий итог С НАЧАЛА МЕСЯЦА ДО Текущей (или выбранной даты месяца). Как же тут использовать агрегаты Год, Квартал, Месяц и НЕ использовать агрегаты по дням текущего месяца?

Или я где то торможу?
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32405997
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To OR:

Еще раз обращаю внимание, что нужен нарастающий итог С НАЧАЛА МЕСЯЦА ДО Текущей (или выбранной даты месяца). Как же тут использовать агрегаты Год, Квартал, Месяц и НЕ использовать агрегаты по дням текущего месяца?
Или я где то торможу?


Да нет, Вы не тормозите. Я просто дал более общий ответ на Ваш частный вопрос. Мой ответ более актуален для ситуации, когда расчет идет не с начала месяца, а за произвольный период времни, когда задаются и начальная, и конечная дата. В Вашем случае я бы попробовал сделать уровень иерархии недели или декады, чтобы например для вычисления показателя на 25 число месяца серверу не надо было производить 25 операций, а всего лишь не более 7-8.

Странно конечно, что у Вас при такой маленькой номенклатуре - такие тормоза...
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32406040
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
To Jurii:

Фух, а то я уже рвал на себе волосы :)
Я понимал, что СОВСЕМ без агрегатов по дням не обойтись.
Для общего случая решение использовать укрупненные агрегаты было известно.
Не хотелось бы неделю вводить, но попробую.
Жаль, что чудес на свете не бывает.
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32406067
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To OR:

Жаль, что чудес на свете не бывает.

Все относительно... Чтобы снизить время расчета при генерации Вашего отчета с 5 минут до стандартного времени отклика для OLAP-продуктов (от нескольких мгновений до нескольких секунд), нужно либо оптимально писать MDX, либо использовать более дружественные OLAP-продукты, где MDX генерится визуальными средствами... Или на худой конец - компромиссный вариант, когда в MS AS делаются простые кубы, а сложные отчеты делаются с помощью хорошего OLAP-клиента.
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32406085
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
Это понятно.
Но в данном конкретном случае, наверное, MDX запрос сильно не прооптимизируешь.
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32406113
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но в данном конкретном случае, наверное, MDX запрос сильно не прооптимизируешь.

Тогда остается совместно оптимизировать структуру куба и MDX...
Вообще-то интересно, почему такая разница в производительности между PowerPlay (где нарастающий итог по справочникам с десятками тысяч товаров считается без тормозов) и Вашим небольшим кубиком в MS AS. Может быть разница в OLAP-клиенте - типа MS Excel сразу качает на себя все данные из куба и поэтому имеет место много вычислений, а PowerPlay качает на клиентскую машину данные порциями, и вычисления проводятся только для отрисовки текущего отчета...
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32406146
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
а PowerPlay качает на клиентскую машину данные порциями, и вычисления проводятся только для отрисовки текущего отчета...

Если это так, то PowerPlay работает как OWC, там действительно расчитывается "кусками" для отображения на экране, в отличие от Excel XP, кот считает сразу по всем развернутым листьям.
Я пробовал запускать мой запрос через IE, все достаточно чудненько и быстренько считается - неск сек, но только для отображаемых листьев, как только PageDown или копировать в эксел - уходит в более долгий расчет.
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32406189
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuriЕсли же Вы хотите дойти до этого решения сами - скажу, что Вам надо найти, как использовать агрегаты уровня Года, Квартала и Месяца, а не производить вычисления над дневными агрегатами.

Ne nado sovetovat to chto sami ne probovali, tem bolee ne yavlyayas specom po MS AS.

Proverenno na praktike, chto HalfYear1 + Quartal3 + Month10 schitaetsya gorazdo medlennee chem PeriodsToDate(Month10). Pochemu voprosi k razrabotchikam MS AS, no eto fakt.

ORК сожалению, использование СМ в TimeDimension не принесло кардинальных улучшений (запускал по нескольку раз MDX запросы к прилинкованному OLAP серверу через Query Analyzer на самом сервере).

Vi bi esche cherez SOAP - clienta testirovali proizvoditelnos.

Ne zabivaite pro HEAD, TOP* etc., chtobi ogranichit ob'em viborki. Esli u vas 10000 klientov, zachem oni vam vse srazu?
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32406219
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Backfire:

Ne nado sovetovat to chto sami ne probovali, tem bolee ne yavlyayas specom po MS AS.

Я давал эту рекомендацию исходя из функциональности Cognos PowerPlay (типа если разработчик MS AS напишет MDX оптимально, он достигнет производительности PowerPlay, если не оптимально - то MS AS будет работать медленнее). Там при расчете нарастающего итога берутся все предыдущие годы, кварталы текущего года, месяцы текущего квартала, недели текущего месяца и дни текущей недели - в итоге получается минимизация вычислительных операций, приводящая к превосходной производительности. Также я принимал во внимания подобные рекомендации г-на Иванова.

Proverenno na praktike, chto HalfYear1 + Quartal3 + Month10 schitaetsya gorazdo medlennee chem PeriodsToDate(Month10). Pochemu voprosi k razrabotchikam MS AS, no eto fakt.

Тогда непонятно, кто прав а кто не прав - Вы или г-н Иванов?...
...
Рейтинг: 0 / 0
Еще раз про нарастающий итог и быстродействие.
    #32406251
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
to backfire:
Я по клиентам вообще измерение не делал, толлько признак внешний/внутренний, а по продукту Head, Top - не проходит, надо все сразу, причем сразу в виде Тип/Категория/Товар (короче говоря, нужна сводка план-факт по товарам и типам клиентов в кол и сумме с нараст итогом с нач месяца).
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Еще раз про нарастающий итог и быстродействие.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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