Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Еще раз про нарастающий итог и быстродействие. / 25 сообщений из 31, страница 1 из 2
05.02.2004, 12:43
    #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
05.02.2004, 15:35
    #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
05.02.2004, 15:36
    #32399579
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз про нарастающий итог и быстродействие.
V chem zaklyuchaetsya vashe virazhenie?
ORРасчет идет на сервере
...
Рейтинг: 0 / 0
05.02.2004, 16:01
    #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
05.02.2004, 18:29
    #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
06.02.2004, 07:07
    #32400177
Quark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз про нарастающий итог и быстродействие.
А пробовали сделать вирт. измерения не виртуальными?
...
Рейтинг: 0 / 0
06.02.2004, 10:03
    #32400310
OR
OR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз про нарастающий итог и быстродействие.
to Quark:
Делал, не помогает. Они, в принципе, маленькие, 2-10 листьев, так что особо не повлияли.

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

А можно немного подробнее про объявление СМ в TimeDimension?
...
Рейтинг: 0 / 0
06.02.2004, 11:35
    #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
06.02.2004, 11:57
    #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
06.02.2004, 12:00
    #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
06.02.2004, 12:28
    #32400622
OR
OR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз про нарастающий итог и быстродействие.
спасибо, щас попробую
...
Рейтинг: 0 / 0
08.02.2004, 19:10
    #32401955
Владимир Иванов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз про нарастающий итог и быстродействие.
Это типовая проблема в неотимальности формулы нарастающего итога.
Стоит уйти от PeriodsToDate
...
Рейтинг: 0 / 0
08.02.2004, 19:32
    #32401967
Еще раз про нарастающий итог и быстродействие.
А не подскажите как?
У меня в отличие от автора PIII 700 256RAM.
140000 в измерении товаров, 600 в измерении поставщков.
И вот при попытке в crossjoin'e поставщиков,товаров и времени. в детализации до дней в одном месяце. при попытке открыть группу товаров в 6000 наименований и отфильтровать Null значения все тормозит примерно минуту.
Или это нормально при таких параметрах?
...
Рейтинг: 0 / 0
11.02.2004, 14:51
    #32405752
OR
OR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз про нарастающий итог и быстродействие.
to backfire:
К сожалению, использование СМ в TimeDimension не принесло кардинальных улучшений (запускал по нескольку раз MDX запросы к прилинкованному OLAP серверу через Query Analyzer на самом сервере).
По видимому, проблема все таки в функции PeriodsToDate (как писал В.Иванов) и ее аналогах, где бы они не использовались, везде выбираются все листья и только потом суммируются.

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

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


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

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

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

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

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

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


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

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

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

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

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

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

Если это так, то PowerPlay работает как OWC, там действительно расчитывается "кусками" для отображения на экране, в отличие от Excel XP, кот считает сразу по всем развернутым листьям.
Я пробовал запускать мой запрос через IE, все достаточно чудненько и быстренько считается - неск сек, но только для отображаемых листьев, как только PageDown или копировать в эксел - уходит в более долгий расчет.
...
Рейтинг: 0 / 0
11.02.2004, 18:12
    #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
11.02.2004, 18:30
    #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
11.02.2004, 18:51
    #32406251
OR
OR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз про нарастающий итог и быстродействие.
to backfire:
Я по клиентам вообще измерение не делал, толлько признак внешний/внутренний, а по продукту Head, Top - не проходит, надо все сразу, причем сразу в виде Тип/Категория/Товар (короче говоря, нужна сводка план-факт по товарам и типам клиентов в кол и сумме с нараст итогом с нач месяца).
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Еще раз про нарастающий итог и быстродействие. / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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