4.2.1.2.2.1.1.1. Размер тела записи истории значений
Тело записи содержит значение, качество, метку времени сервера (в 6.x серверах сохраняется опционально) и необходимую служебную информацию. Размер тела записи истории значений зависит от типа значения:
для булевского, числовых типов и метки времени – фиксированный размер;
для строк – в зависимости от размера строки.
В таблице ниже приведен размер элементов тела записи для различных типов данных:
|
Тип значения
|
Метка времени и необходимая служебная информация
|
Тело записи
| |||
|
Метка времени, байт
|
Служебная информация внутри БД, байт
|
Качество, байт
|
Дескриптор типа значения, байт
|
Значение, байт
| |
|
bool
|
8
|
4
|
4
|
1
|
0
|
|
int1, uint1
|
1
| ||||
|
int2, uint2
|
2
| ||||
|
int4, uint4
|
4
| ||||
|
int8, uint8
|
8
| ||||
|
float
|
4
| ||||
|
double
|
8
| ||||
|
string*
|
4 + N
| ||||
* – Для строковых значений сигналов размер тела записи зависит от длины строки. N – количество байт, занимаемых строкой.
Строки сохраняются в кодировке UTF-8, поэтому каждый символ занимает 1 или 2 байта:
латинские символы, цифры – 1 байт;
кириллические символы – 2 байта.
|
Соответствие размеров тела записи типам с учетом и без учета метки времени приведено в следующей таблице:
|
Тип значения
|
Размер тела записи без учета метки времени, байт
|
Размер записи с учетом метки времени, байт
|
|
bool
|
5
|
17
|
|
int1, uint1
|
6
|
18
|
|
int2, uint2
|
7
|
19
|
|
int4, uint4
|
9
|
21
|
|
int8, uint8
|
13
|
25
|
|
float
|
9
|
21
|
|
double
|
13
|
25
|
|
string*
|
9 + N
|
21 + N
|
* – Для строковых значений сигналов размер тела записи зависит от длины строки. N – количество байт, занимаемых строкой.
