Имя: Пароль:
1C
 
Запрос Регистр сведений. Какой отбор быстрее?
0 MrAvPika
 
12.09.19
17:41
1. Отбор по измерению (ссылка на справочник) 0% (0)
2. Отбор по индексированному реквизиту число (длина 6 0% (0)
Всего мнений: 0

Отбор по измерению (ссылка на справочник) ИЛИ отбор по индексированному реквизиту число (длина 6)?

У меня есть код товара, могу по нему получить ссылку, а потом поискать по ссылке-измерению
либо поискать по коду в регистре

Что быстрее, если пренебречь получением ссылки по коду?
1 palsergeich
 
12.09.19
17:44
(0) завистит не только от того на какие поля отбор, но и какие поля выбираются.
На ИТС посмотри какие индексы у РС есть, если все поля будут в индексе без пробелов и первый - это отбор - лучше не придумаешь.
Какого типа это не важно.
Другое дело что у оптимизатора могут быть свои предпочтения и он забьет на это и отсканирует таблицу)
2 fisher
 
12.09.19
17:45
Зависит от того, какие поля и сколько строк выбираешь.
Но в общем случае, если кво строк невелико, а измерение первое - то приблизительно монопенисуально.
3 Лефмихалыч
 
12.09.19
17:51
У РС не бывает индексов отдельно по реквизитам. Индексированный реквизит создает индекс, в котором сначала идет реквизит, а мотом все изменения.

Соответственно, в твоем случае индексированный реквизит никакого прироста производительности не дамт, а только раздует базу бесполезными дублями данных в индексах.
4 palsergeich
 
12.09.19
17:53
(3) Даст, если индекс будет покрывающий.
Например если ему надо реквизит + измерение1
5 fisher
 
12.09.19
17:54
(3) Слишком смелое утверждение. Ты же не знаешь всех его кейсов.
6 Лефмихалыч
 
12.09.19
17:56
(5) (4) зачем вы изобретаете там, где всё понятно?
Автор чотка написал "у меня при любом раскладе одно и то же значение И в реквизите, И в измерении". А еще там чотка написано, что отбор будет ТОЛЬКО по одному значению, а не по комбинации.
7 palsergeich
 
12.09.19
17:58
(6) Мы не изобретаем, а выше написали, что важен не только отбор, но и состав выходных полей.
8 fisher
 
12.09.19
18:00
(6) Тогда нафига вообще реквизит?
9 palsergeich
 
12.09.19
18:01
(8) потому что могу, это же очевидно)
10 Лефмихалыч
 
12.09.19
18:03
(7) кластерные индексы создаются только по измерениям. Соответственно, индекс по реквизиту не даст таки прироста даже, если в выборке будет реквизит + измерение 1 - за значением изменения 1 все равно в таблицу лезть.
(8) в данной задаче я в душе не понимаю, зачем автор это сделал. Оверинжиниринг, видимо.
11 MrAvPika
 
12.09.19
18:13
(10) Так, давайте поясню.

Допустим есть таблица (РегистрСведений) Остатки

Измерения
Склад - ссылка
Товар - ссылка
Колво - ресурс
Цена - ресурс
КодСклада - реквизит
КодТовара - реквизит

По факту эта инфа отдается через внешнее соединение
и мне нужны коды товаров

Забирают остатки по отбору (может и отбор по двум полям "товар" и "склад")

Чтоб левым соединение не собирать коды их добавили в реквизиты.
И вот теперь хорошо бы понять, лучше отбирать по измерениям получая ссылки или отбирать по кодам (реквизитам)
12 MrAvPika
 
12.09.19
18:14
т.е. может быть вот такое:

ГДЕ
Склад в (списокскладов)
И Товар в (списоктоваров)
13 palsergeich
 
12.09.19
18:16
(10) все зависит от задачи
14 MrAvPika
 
12.09.19
18:18
Внешняя система забирает "посчитанные данные"

Может по одному складу, может по списку складов, так же может отобрать конкретный список товаров
15 Мимохожий Однако
 
13.09.19
07:32
Если во внешней системе хранятся ранее полученные ссылки, то и отбор делать по этим ссылкам. Тогда не нужны коды.
16 fisher
 
13.09.19
09:02
(11) > Чтоб левым соединение не собирать коды
И что, много выиграли? Попробуйте товар первым по порядку измерением поставить в списке измерений регистра.
17 fisher
 
13.09.19
09:09
На мой дилетантский взгляд, реквизиты с кодами справочников вы абсолютно зря добавляли.
(15) Да без разницы, что во внешней системе.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn