Имя: Пароль:
1C
1С v8
Зависимость размера памяти для измерений регистра сведенией от настроек их типов
,
0 Длинный Клиент
 
14.12.12
01:05
Файловая база.

Есть независимый, непериодический регистр сведений.

Предположим, индексация и полнотекстовый поиск у измерений отключены, ведущих измерений нет.

Предполагается, что в него загрузят много записей.

Далее, 2 варианта.

1) В регистре одно измерение, "число, длина 5, неотрицательное, точность 0".

Как будет меняться размер (памяти для) одной записи, если изменить параметры измерения на "число, длина 10, неотрицательное, точность 0"?

2) В регистре одно измерение, "строка, 50 символов, неограниченная длина".

Как будет меняться размер (памяти для) одной записи, если изменить параметры измерения на "строка, 50 символов, фиксированная длина" ?
1 Длинный Клиент
 
14.12.12
01:09
Общий смысл- задать оптимальные размеры и настройки измерениям РС, чтобы в итоге, прирост размера базы при заполнении РС был минимальным.
2 H A D G E H O G s
 
14.12.12
01:10
Забей.
3 H A D G E H O G s
 
14.12.12
01:11
Вот так
строка, 50 символов, неограниченная длина

только не делай.
4 Длинный Клиент
 
14.12.12
01:13
Порядка 36 миллионов записей будет, вот и думаю, если длина 25 фиксированная, строка - будет ли она занимать в 2 раза меньше 50 ?
5 H A D G E H O G s
 
14.12.12
01:13
А в остальном - лезь в SQL
и смотри
DATALENGTH
http://msdn.microsoft.com/en-us/library/ms173486(SQL.100).aspx
6 Длинный Клиент
 
14.12.12
01:14
пока файловая база, нужно в представлении 1ски
7 H A D G E H O G s
 
14.12.12
01:18
Фиксированная строка в SQL будет nchar(50)
http://technet.microsoft.com/ru-ru/library/ms186939.aspx
Строковые данные постоянной длины в Юникоде. Параметр n определяет длину строки и должен иметь значение от 1 до 4000. Размер при хранении составляет удвоенное значение n в байтах.

Но.
В зависимости от символьной строки для хранения n символов может понадобиться менее n байт.

Это скорее всего, когда только латиница в строке.
8 H A D G E H O G s
 
14.12.12
01:20
А неограниченная строка - это ntext.
Но проблема в том, что ntext не храниться в таблице, он храница в файле - потоке (не уверен, надо проверить) - дольше писать, читать.
9 Длинный Клиент
 
14.12.12
01:21
Так, потестирую на миллионе записей, отпишусь.
10 Длинный Клиент
 
14.12.12
09:43
Докладываю.

На 30 миллионах записей выдало сообщение, что превышен максимальный размер внутренней таблицы 1С.

Следовательно, надо перепроектировать регистр.

Каждая видимая таблица (например, регистр сведений) содержат 3  внутренних таблицы внутри 1CD (данные, индексы и строки неограниченной длины, вынесенные из данных).

Каждая из этих 3 таблиц не должна превышать 4Гб.

Параметры измерений (в моем случае только измерения, ресурсы и реквизиты не проверял) имеют решающее значение для общего размера.

Фиксированная строка длиной 25 занимает место значительно меньше фиксированной строки 50.

Тип число вместо типа строки измерения занимает меньше места.

Точные значения не замерял (не было такой цели), но подбор оптимальных минимальных значений помог.