Имя: Пароль:
1C
1С v8
Оптимальность порядка полей при создании регистра накопления.
, ,
0 Мистикан
 
25.09.18
10:44
Первый раз такое услышал. Реально как то влияет, или это тараканы у товарищей брейкданс танцуют?
1 Cool_Profi
 
25.09.18
10:45
Да, влияет.
На первое место нужно ставить наиболее селективные поля. Это неплохо описано в библии (профразработка)
2 DmitrO
 
25.09.18
10:49
На оптимальность влияют индексы, а их построение в 1С зависит от порядка полей.
Главное правило разработчика баз данных: попасть в индекс.
3 DmitrO
 
25.09.18
10:51
И правильнее даже уточнить: не полей, а измерений.
4 tesseract
 
25.09.18
10:51
(0) 1С давно научилась кластерные индексы и агрегаты.  И очень многое зависит от СУБД в данном случае.
5 Мистикан
 
25.09.18
10:52
блин сейчас проверю на выборке в 10м
6 Мистикан
 
25.09.18
10:53
по-моему ересь в случае если все измерения индексированы и везде будет скан с одним результатом
7 Aleksey
 
25.09.18
10:55
(1) Что такое "Наиболее селективные поля"
Ну например во всех типовых начиная с 7-ке в регистре остатков сначала идет Фирм/Организация потом обычно склад и последней Номенклатура.

Если у меня 1 фирма и куча товара, т.е. в регистре остатков на первом месте будет 1 значение на все строки таблицы - это "наиболее селективно", чем номенклатура которая повторяется на разных складах и её много разной?
8 tesseract
 
25.09.18
10:56
(6) Это и называется селективность. Можно завести агрегат с индексами только для конкретного запроса, если он уж такой нагруженный.
9 Мистикан
 
25.09.18
11:07
(7) ну при царе горохе может быть. меня интересует поведение при формировании и выполнении плана на актуальных инструментах.
10 Вафель
 
25.09.18
11:09
(6) а нужно чтоб не скан был, а сик
11 Мистикан
 
25.09.18
11:15
скину сюда результаты как сделаю =) планы и замеры
12 Вафель
 
25.09.18
11:21
(11) не веришь чтоли?
13 Aleksey
 
25.09.18
11:24
(9) ? Я же сказал со времен, я же не сказал во времена.

Т.е. в последней УТ11.5 будет аналогичная картина
14 Мистикан
 
25.09.18
11:27
(12) нет. да и все равно нечем заняться. сегодня развлечение десяток не типовых бп расколдовать в типовые и обновить на пару релизов =)
15 Мистикан
 
25.09.18
11:32
(12) да и просто интересно поведение системы. по факту производительностью интересуюсь на глубоком уровне только последние 3 месяца. Убиваю в себе быдлокодера =)
16 d4rkmesa
 
25.09.18
11:45
(0) Влияет - это да, т.к. кластерный индекс итогов создается в соответствии с порядком измерений. Другой дело, большая ли будет разница, к примеру, между: Склад-Номенклатура(+Индексировать)-Качество-ХарактеристикаНоменклатуры-СерияНоменклатуры (как в УПП) и Номенклатура-Характеристика-...-Склад-... (как в УТ-ке). Думаю, УТ-ный вариант будет чуть пошустрее на записи, по отчетам - скорее всего будет примерный паритет.
17 Rema Dan
 
25.09.18
12:47
(0) В регистрах накопления порядок полей часто влияет больше чем признак индексированного измерения. Например, в регистре есть измерения Номенклатура, Характеристика, Склад. Склад индексирован. Делаем выборку остатков всех товаров по складу N. Даже если индекс по Складу у нас селективен, то оптимизатор СУБД может игнорировать его. В самом индексе нет данных об остатках. Остатки только в кластерном индексе. И после применения индекса по Складу ему всё равно получать остатки из кластерного индекса. Оптимизатор запросто может посмотреть на всё это, прикинуть сложность обоих операция и сразу получить данные из кластерного индекса.
18 ИС-2
 
naïve
25.09.18
13:27
"люблю" добавлять индекс на поля примитвных типов (число, строка и т.д), чтобы можно было сортировать по этим полям. Сильно понижает ли это производительность,
19 ИС-2
 
naïve
25.09.18
13:27
?
20 nicxxx
 
25.09.18
14:12
(18) Производительно чего? Записи - замедляется. Чтение - не факт, что ускорится.
21 d4rkmesa
 
25.09.18
15:14
(17) Видимо, авторы актуальных конф того же мнения.
Программист всегда исправляет последнюю ошибку.