AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2008, 08:21   #1  
denny is offline
denny
Участник
 
93 / 29 (1) +++
Регистрация: 16.11.2003
Адрес: Novosibirsk
OLAPAmount
AX 3.0 SP3
Вопрос по таблице OLAPAmount. Два куба, перестраиваемые ежедневно, содержат вычисляемые данные по весьма большому периоду (около года). Ежедневно обновляемая таблица генерирует по 800 тысяч recid ежедневно. Естественно, такой прирост совершенно не устраивает, ибо несложно подсчитать, в течение какого весьма ограниченного времени будет пройден предел в заветные 4 миллиарда.

Варианты, которые пришли в голову и которые хотелось бы обсудить. Наверняка у сообщества есть опыт по решению таких вопросов.
Вариант первый - на регулярной основе восстанавливать бэкап основной базы на отдельной инсталляции, откуда и обрабатывать кубы. Плюсы - проблема с генерацией recid решается принципиально. Минусы - неудобство переноса и ручного запуска обработки кубов, потому что пакетную обработку при таком подходе не настроишь.

Вариант второй - у таблицы OLAPAmount выставить признак saveDataPerCOmpany = No, соответственно номера для recid будут браться из компании dat, которая на данный момент для работы не используется. Плюсы - отсутствие минусов первого варианта Минусы - неполное решение проблемы - для некоторого, пусть и весьма небольшого количества таблиц savedatapercompany также выставлен в No, соответственно при переходе через четырехмиллиардный предел возможны конфликты. (хотя они гораздо менее вероятны, чем при пересечении с recid в основной компании).

Возможно, слегка путанно объяснил. Готов переобъяснить, если требуется

Спасибо.
__________________
Денис Балуев.
Старый 30.01.2008, 10:50   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Еще варианты могу предложить - запускать периодически SysRecIdRepair - "сжатие идентификаторов записей" или как там оно называлось. Плюсы - если 800 тыс. записей с пред. дня не нужны и удаляются, то они будут использоваться повторно для других задач после "сжатия". Минусы - работоспособность класса страдает из-за несовершенности кода с использованием RecId/RefRecID

Перейти на 4.0/5.0 (2009). Там проблема отпадет сама собой.
Старый 30.01.2008, 11:15   #3  
denny is offline
denny
Участник
 
93 / 29 (1) +++
Регистрация: 16.11.2003
Адрес: Novosibirsk
Спасибо. Тоже вариант, но из-за режима работы 24x7 вряд ли применим. Все топики про дефрагментацию recid уже просмотрел.
__________________
Денис Балуев.
Старый 30.01.2008, 11:29   #4  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Еще можно строить кубики средствами MS SQL, а не встроенными средствами Аксапты.

Возможностей больше. Хотя недостатки тоже имеются.
__________________
С уважением,
glibs®
Старый 30.01.2008, 11:41   #5  
twilight is offline
twilight
MCTS
MCBMSS
 
881 / 237 (9) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
А зачем вам таблица OLAP Amount? От нее смысл только в пересчете валют, как мне кажется.
И если пересчет валют не нужен, то можно сделать все средствами SQL Server.
И даже если он нужен, в 2005 сделали вроде функционал для пересчета валют (сам я его не пробовал, у меня кубы без пересчета)
Старый 30.01.2008, 12:18   #6  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от twilight
...
И если пересчет валют не нужен, то можно сделать все средствами SQL Server.
...
И даже если нужен и очень захотеть, то тоже можно сделать.

Я писал на T-SQL функцию для конвертации. Правда, она не учитывала факта существования триангуляции. Но при желании можно написать и более универсальную.

Еще будет возня с перечислениями (Enum).
__________________
С уважением,
glibs®
Старый 30.01.2008, 12:33   #7  
denny is offline
denny
Участник
 
93 / 29 (1) +++
Регистрация: 16.11.2003
Адрес: Novosibirsk
Спасибо. Пожалуй, средствами SQL и реализуем. Самый очевидный вариант, действительно.
__________________
Денис Балуев.
Старый 30.01.2008, 17:31   #8  
AlexeyS is offline
AlexeyS
Участник
 
404 / 339 (12) ++++++
Регистрация: 15.06.2004
Адрес: москва
Цитата:
Сообщение от denny Посмотреть сообщение
Спасибо. Пожалуй, средствами SQL и реализуем. Самый очевидный вариант, действительно.
к тому-же будет быстрее считаться
Теги
olap, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ограничение мер в кубе OLAP if_maks DAX: Программирование 4 18.07.2006 16:30

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:40.