|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от kashperuk
![]() Ну, приближенно можно посчитать с помощью метода fieldSize() на SysDictField:
X++: static void Job2(Args _args) { SysDictTable dictTable = SysDictTable::newName(tableStr(InventTable)); SysDictField dictField; Counter fieldCnt; int recordSize; ; for (fieldCnt = 1; fieldCnt <= dictTable.fieldCnt(); fieldCnt++) { dictField = SysDictField::newName(dictTable.name(), dictTable.fieldName(dictTable.fieldCnt2Id(fieldCnt))); recordSize += dictField.fieldSize(); } info(int2str(recordSize)); } плюс служебную информацию заголовка сообщения при передаче по сети. ![]() Например, fieldSize считает, что поля типа Enum занимают 1 байт, а в реальности все 4 (DAX 4.0 MS SQL 2005) X++: case Types::Enum: size = 1; break; X++: case Types::Date: case Types::DateTime: case Types::Integer: size = 4; break; Так, что я бы с осторожностью считал размер записи данным способом ![]() Кстати, еще есть размер записи в таблице трассировки SQL операторов Администирование\Запросы\База данных\Журнал трассировки операторов SQL, вкладка Разное, только не понятно, насколько этот параметр соотвествует действительности и пронаблюдать его значение можно, только в случае есть SQL оператор попал в трассировку (но все таки этому параметру я доверяю больше, чем SysDictTable\recordSize) P.S. Не видел предыдущего сообщения когда писал
__________________
Sergey Nefedov Последний раз редактировалось SRF; 07.08.2009 в 13:39. Причина: p.s. |
|