|
30.01.2015, 10:50 | #1 |
Участник
|
Axapta плодит темповые таблицы в БД Oracle
Добрый день, форумчане.
Dynamics AX 2009 kernel 5.0.1000.52 application 5.0.1001.151 БД Oracle 10.2.0.4 В схеме, где лежат таблицы Axapta плодятся в огромном количестве GLOBAL TEMPORARY TABLE с именами вида "ax_tmp_dat2_4795709_2176" Даже, при перезагрузке AOS таблички не исчезают. Могу я их вручную из БД поудалять? |
|
30.01.2015, 12:12 | #2 |
Участник
|
Вообще-то они должны удаляться on commit автоматом.
Странное что-то у вас творится. |
|
30.01.2015, 12:12 | #3 |
Участник
|
А сам Оракл не пробовали перестартовать ?
|
|
30.01.2015, 13:39 | #4 |
Участник
|
Logger, скрипт таблицы такой:
CREATE GLOBAL TEMPORARY TABLE DAX."ax_tmp_dat2_12056660_859" ( F1 NVARCHAR2(100) NOT NULL, F2 NVARCHAR2(100) NOT NULL, F3 NUMBER(20) NOT NULL, F4 NUMBER(20) NOT NULL, F5 NUMBER(10) NOT NULL, F6 NVARCHAR2(4) NOT NULL, F7 DATE NOT NULL, F8 NUMBER(10) NOT NULL, F9 NUMBER(10) NOT NULL, F10 NVARCHAR2(5) NOT NULL, F11 BLOB, F12 BLOB, F13 NUMBER(10) NOT NULL, F14 DATE NOT NULL, F15 NUMBER(10) NOT NULL, F16 DATE NOT NULL, F17 NUMBER(10) NOT NULL, F18 NUMBER(10) NOT NULL, F19 NUMBER(10) NOT NULL, F20 NUMBER(10) NOT NULL, F21 NUMBER(10) NOT NULL, F22 NUMBER(10) NOT NULL, F23 NUMBER(20) NOT NULL, RECVERSION NUMBER, RECID NUMBER ) ON COMMIT DELETE ROWS NOCACHE; Синтаксис ON COMMIT DELETE ROWS - данные удаляются после commit(завершения транзакции), но описание таблицы сохраняется в словаре данных БД Oracle. Метаданные таблички остаются, даже после перезагрузки БД. Почему axapta не срубает их? У меня их уже сотни тысяч, во как... |
|
30.01.2015, 13:46 | #5 |
Участник
|
странно.
Должна бы. Внутр незакоммиченной транзакции их может быть очень много. Это нормально. Но после коммита по идее должны удаляться. Как-то раз встречался с ситуацией когда можно было создать объект (табличку, индекс), переименовать, а удалить нельзя. Возможно что-то с правами в оракле накручено. |
|
30.01.2015, 13:49 | #6 |
Участник
|
Еще вариант - у вас остались зависшие сессии пользователей с открытыми транзакциями (такое иногда бывает, аос перезагрузили, а сессия внутри оракла все равно живая - отстрелите эти сессии или перестартуйте БД)
|
|
30.01.2015, 14:02 | #7 |
Участник
|
С правами все в порядке.
База Oracle перегружалась, а таблички пустые висят. Их вручную можно удалить из БД (погасив AOS и проверив, что нет зависших сессий в БД Oracle ) или нет? |
|
30.01.2015, 14:03 | #8 |
Участник
|
Конечно можно.
|
|
|
За это сообщение автора поблагодарили: antoniodba (1). |
30.01.2015, 16:27 | #9 |
Участник
|
Logger, спасибо.
|
|
31.01.2015, 20:26 | #10 |
Участник
|
В AX 2009 вообще управления временными таблицами базы данных нет. Оно появилось только в DAX2012.
Естественно, что движок базы данных может принимать решение об использовании для определенных операций (сортировка и т.п.). Может быть какие-то временные таблицы может использовать Акса (изменение структуры таблицы с сохранением данных и прочие технические операции). В любом случае, после завершения сессии, все эти временные таблицы должны быть грохнуты. Возможно, что удалить эти временные артефакты мешают какие-то настройки сервера базы данных? |
|
01.02.2015, 11:32 | #11 |
Участник
|
Это у них остались времянки которые Аксапта генерит при выполнении insert_recordset
Почему-то не вычистились, хотя должны. Мне тоже кажется что дело в настройках оракла. |
|
Теги |
oracle |
|
|