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