Показать сообщение отдельно
Старый 05.05.2011, 19:13   #9  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от mazzy Посмотреть сообщение
но почему дошло до максимума - загадка.
http://erpkb.com/Axapta/RecId
Цитата:
«Кстати, насчет дырок. Одна из причин их появления – каждый AOS (а так же тольстый клиент и клиент в 2-х звенке) резервирует под себя определенное кол-во recId (для уменьшения обращений к б/д при добавлении новых записей). При его перезагрузке это резервирование сбрасывается и выбирается новый диапазон при загрузке.»
.....................
Работает AXAPTA с этой таблицей следующим образом:
При вставке первой записи в новую компанию система AXAPTA добавляет в таблицу System Sequences? запись. В поле DATAAREAID устанавливается значение равное идентификатору компании, а в поля MINVAL и NEXVAL записывается единица.
Сразу после этого система AXAPTA берет лот номеров (лот в данном случае это – несколько подряд идущих номеров, AXAPTA берет 25). И записывает в поле NEXTVAL следующий свободный номер – 26.
Заносит в таблицу, с которой все началось запись с RECID равным 1 и DATAAREAID равным идентификатору компании.
После того как номера в лоте заканчиваются, система AXAPTA снова читает таблицу System Sequences?, берет оттуда NEXTVAL как первый номер следующего лота. А в таблицу System Sequences? записывает значение NEXTVAL+25.

Таким образом AXAPTA решает две проблемы – каждый пользователь ведет свой лот номеров RECID и значения этого поля не пересекаются, второе – пользователь (вернее его приложение) обращается к таблице System Sequences? один раз на 25 операций вставки и таким образом не возникает ожидания из-за обращения всех к этой таблице.
Это конечно про старые версии Аксапты, но "мыслится", что импорте через группу определения резервируется диапазон довольно большой, и при последующих импортах часть зарезервированны RecID теряется. И так далее и далее, в итоге упираемся в MAXVAL таблицы [SYSTEMSEQUENCES]

Посморел
PHP код:
select RECID from CUSTTABLE
order by RECID desc 
Диапазоны забавные RecID

1680993290137317294 - 1678119797343299707 (2 шт.)
5746991225213500 - 5746991225213520 (~ 200 шт.)
2873498431195913-2969044981147155 (~ 2000 шт. )
95552187129564- 95552187129568 (5 шт.)
132356740849-132356740883 (~ 100 шт.)
12486884666 - 12486884676 (10 шт.)
7349605052 (1 шт.)
5637145098 - 6207987332 (~ 15 шт.)

Записей в CUSTTABLE всего 17 146 шт.

Каком образом выбирается диапазон RecId, ну просто
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.