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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.02.2017, 15:29   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,984 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А разве время синхронизации базы разное если добавить поле / изменить текущее?
Да, и отличается очень сильно в случае когда меняется длина строкового поля.

Проблема с изменением поля в том что если табличка непустая, то аксапта создает новую табличку, такую же по структуре и новой длиной поля. Переливает данные из одной таблички в другую, старую грохает, а новую переименовывает. А затем с нуля индексирует ее.
На перелив данных и индексацию уходит много времени (если табличка миллионник)

Мы придумали обходной финт.
Если строковый EDT меняет длину, то собираем перечень табличек и полей на которые это повлияет, генерим для них SQL запросы вида ALTER TABLE ... MODIFY FIELD изменяя длину поля и обновляем также инфу в системной табличке SQL Dictionary
После этого аксапта при синхронизации ничего не трогает (мы ведь все сделали за нее).
Отрабатывает такая полуручная "синхронизация" мгновенно.

Но если поле для которого хотим поменять длину индексировано, то БД посылает на попытке изменения длины, приходится грохать индекс, менять длину и заново строить индекс. Т.е. выигрываем на переливке данных все равно, но можем потратить много времени на переиндексацию (о чем я и упомянул).

А поскольку номер документа это ключевое поле которой входит в первичный ключ и почти во все foreignKey то ...
Приходится кучу индексов пересоздавать и тратить на это много времени. 2 часов на всю базу не хватает.
Ну и плюс опять же размер индексов вырастать будет если реально будут 50 символов заполнять.

Последний раз редактировалось Logger; 09.02.2017 в 15:37.
Теги
factureexternalid, invoice, invoiceid, num, электронная отчетность, электронный сф

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
System.Net.Mail.MailMessage и Subject длиной больше 100 символов Damn DAX: Программирование 0 09.02.2011 19:59
Длина строки range - 250, 1000 или больше Logger DAX: Программирование 13 19.09.2010 14:36
"Испортились" номера в таблице договоров Shirmin Oleg DAX: Администрирование 3 21.11.2005 12:27
Печать накладной и счёта-фактуры через AxaptaCOMConnector mpogorelov DAX: Программирование 0 25.02.2005 18:28
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42

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

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

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