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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.08.2004, 19:03   #1  
Yaroslav Batozskiy is offline
Yaroslav Batozskiy
Участник
 
15 / 10 (1) +
Регистрация: 19.01.2002
Адрес: Moskow
Цитата:
Я, например, зарекся рыть в эту сторону после того как покопался в 2.5.
Именно из-за того, что есть поля, которые содержат ссылку на RecID, но не унаследованы от RecIdRef.
Скрипт находит такие поля, которые могут являться ссылами по recid. Делает это он довольно достоверно. В нашем скрипте можно еще и явно указать такие поля и, если известно, на что они должны ссылаться.
Цитата:
И надо ли делать эту дефрагментацию?
Надо, если реально исчерпали четырехмиллиардный диапазон уникальных записей и внутри диапазона нет досточно большой дырки, чтоб туда переставить счетчик (т.е. использованные recid более-менее равномерно размазаны по всему диапазону)
Цитата:
а теперь экспортируй компанию и импортируй обратно с удалением предыдущих значений
При экспорте-импорте как раз и потеряешь ссылки в полях, которые не наследуются от recid. Кроме того, как это делать с базой в 100ГБ ? Или даже в 10 ?
Цитата:
Я один раз запускал штатную процедуру на небольшой тестовой базе. Вроде работает.
Серьезные проблемы со ссылками. Со всеми вытекающими... (AX3SP1) Глубоко не копал, т.к. скорость её выполнения меня все равно не устраивает
Цитата:
Только лог транзакций на MS SQL у меня раздулся очень сильно.
Если хотите все обновления провести в одной транзакции--конечно раздуется. Можно каждое обновление проводить в своей транзакции--но при этом надо наготове иметь ленту, чтоб восстановить backup
Цитата:
а что происходит при достжении этого предела и какие последствия ?
Даже если cycle стоит 0, пойдет по кругу со второго запуска. Со всеми вытекающими...--"Запись уже существует" в случайные моменты с небольшой вероятностью
Цитата:
а потом вроде как будут заполняться дырки.
не будут.
Цитата:
Да - при достижении максимального значения RecId, он сбрасывается в минимально-возможное значение в табличке последовательностей
На самом деле, если посмотреть на битовую карту значений 2^31-1 и -2^31 можно увидеть, что он не сбрасывается, а система внутри оперирует числом как беззнаковым и просто прибавляет к нему единицу, в результате чего устанавливается старший бит, который для знаковых целых означает отрицательный полудиапазон--число становится минус два миллиарда и растет к нулю (абсолютное значение уменьшается до нуля)
Теги
ax3.0, faq, recid, дефрагментирование recid

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
if (record) vs if (record.RecId) kashperuk DAX: Программирование 18 27.11.2008 18:53
поля, содержащие RecId somebody DAX: Программирование 15 16.05.2008 17:50
aEremenko: Дефрагментация RecID Blog bot DAX Blogs 2 06.03.2007 22:25
Два RecId у одной записи таблицы sparur DAX: Программирование 33 18.12.2006 15:56
Форма InventOnhandItem, Почему RecID у InventSum в этой форме всегда 0? Кирилл DAX: Программирование 2 25.05.2004 18:15

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:59.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.