вторник, 26 октября 2010 г.

Big & Fat Cubes

Задача: Надо добавить в большой (по кол-ву) записей куб показатель. 

Добавление оного, приведет к необходимости расширить таблицы фактов и заполнить показатель 0-м. Но куб большой, и в результате, процесс падает, т.к. системе тупо не хватает ресурсов... на процесс заполнения 0м. Что делать?


Если коротко, то ноты

Note 1287382 - Extending BW objects on Oracle with large tables

Note 1340922 - Follow-on to Note 1287382 (без нее все работает по-старому)

Note 1383233 - SAP_NOT_NULL_REPAIR_ORACLE generates invalid SQL statement
Note 1425175 - SAP_NOT_NULL_REPAIR_ORACLE




Если подробней, то:


В таблице RSADMIN (se38 SAP_RSADMIN_MAINTAIN) добавить Object = _<имя таблицы>   Value = 'X' 
Это позволит при переносе создать элемент, но он при этом может быть NULL.


For example:

_/BIC/AYOSKAS00
_/BIC/B0000540000


_/BIC/EYICACTIV
_/BIC/FYICACTIV



Далее запускаете SAP_NOT_NULL_REPAIR_ORACLE с вариантом <имя таблицы> - лучше естественно, в фоне. Да, ещё убедитесь, что Вам хватит PSATEMP области...


После запуска система сделает следующее... Ваша таблица <имя таблицы> будет переименована в <имя таблицы>_OLD, создана новая таблица <имя таблицы> и туда небольшими партиями будут копироваться данные из OLD таблицы с заполнением ненулевых элементов нулями.


В случае успеха... проверить что всё корректно в <имя таблицы> и обратиться к базису, чтобы они убили таблицу <имя таблицы>_OLD
В случае неудачи... обратиться к базису, чтобы они переименовали <имя таблицы>_OLD в таблицу <имя таблицы>. постараться разобраться в причинах падения. Запустить задачу заново.

p.s. Нашел сообщение, что для Oracle 11 данная проблема решена на уровне БД.

2 комментария:

sapBWBI комментирует...

упс.а я тебе о чем ровно 2 месяца назад отписал? ;))))

err комментирует...

дык, я ж пишу, чтобы не забыть... а то как то в текучке дел, забывается и тратить время не новый поиск обидно...