Как вычислить размер места, используемого БД Navision

01.12.2010 | Автор: | Рубрика: Новичкам

Как мы все знаем, у базы Navision есть два главных параметра — это 1) размер и 2) используемая площадь, т.е. место. Встречаются такие жизненные ситуации, в которых необходимо иметь предупреждение о том, что используемое место вплотную приближается к размеру самой базы.

Например, становится практически невозможно выполнить какие-нибудь пакетные операции, связанные с движением больших объемов данных, — если используемое место составляет 99% от размера БД Navision.

Поэтому вам пригодится скрипт на C/AL, который может рассчитать оба параметра. Они не на 100% точны из-за особенностей хранения данных в BLOB-полях (в них используется алгоритм сжатия pkzip, а также удаление нулей и пустого места в конце поля). Следовательно, всегда будет некоторое расхождение по сравнению с цифрами, которые можно посмотреть в меню «База данных» — «Информация«.

fctGetDbUsage() : Decimal
lrecTableInfo.FIND('-');
REPEAT
ldecDbUsed := ldecDbUsed + lrecTableInfo."Size (KB)";
UNTIL lrecTableInfo.NEXT = 0;

lrecObject.FIND('-');
REPEAT
ldecDbUsed := ldecDbUsed + (lrecObject."BLOB Size" / 1024);
UNTIL lrecObject.NEXT = 0;

EXIT(ldecDbUsed);
fctGetDbSize() : Decimal
lrecDbFile.FIND('-');
REPEAT
ldecDbSize := ldecDbSize + lrecDbFile."Size (KB)";
UNTIL lrecDbFile.NEXT = 0;

EXIT(ldecDbSize);
fctGetDbName() : Text[250]
lrecDbFile.FIND('-');
EXIT(lrecDbFile."File Name");

Данная статья — вольный перевод «How to» Люка Ван Дика.

Автор:

В области Navision - с 2003 года. Профессиональные интересы: NAV, MS SQL, .NET, BPMN, IT-менеджмент. Предметная область: логистика, финансы, склады, 3PL.

Количество статей, опубликованных автором: 86.

Добавить комментарий