Имя: Пароль:
1C
 
Что быстрее? Выбрать или запрос.
0 prtx
 
16.05.16
17:03
Собственной мой философский вопрос уже в сабже.

Что быстрее будет работать, допустим в ситуации когда нужно найти элемент(ы) справочника по владельцу.

вариант1: написать запрос выполнить его и выбрать результат
вариант2: использовать встроенную функцию типа: Справочники.Сотрудники.Выбрать();
1 Defender aka LINN
 
16.05.16
17:03
(1) А Выбрать(), типа, данные каким-то другим способом получает?
2 Ёпрст
 
16.05.16
17:04
1.
3 Волшебник
 
модератор
16.05.16
17:04
(1) Да.
4 Cyberhawk
 
16.05.16
17:04
Я за вариант 1, но не потому, что быстрее, а потому, что потом могут появиться доп. условия
5 Волшебник
 
модератор
16.05.16
17:05
(0) Сделай замер производительности и доложи нам.
6 ДенисЧ
 
16.05.16
17:05
На файловой и в случае 10 элементов - выбрать быстрее.
В остальных лучше запрос
7 mistеr
 
16.05.16
17:07
(3) Ждем шокирующих подробностей.
8 Dmitrii
 
гуру
16.05.16
17:10
(0) Дело не в производительности.
(7) Читай http://its.1c.ru/db/metod8dev/content/2703/hdoc
9 Dotoshin
 
16.05.16
17:11
(0) А в чем философский смысл вопроса?
10 Сияющий Асинхраль
 
16.05.16
17:17
(0) В восьмерке запрос, а в семерке, помнится, обычное выбрать частенько быстрее было...
11 mistеr
 
16.05.16
17:27
(8) И что? Запрос, только сгенерированный платформой, со своими особенностями.
12 Dmitrii
 
гуру
16.05.16
17:30
(11) И всё?....
Как можно сравнивать тёплое с красным? Динамический список (методом Выбрать) со статичным массивом данных (результат запроса)?
То есть вы вообще никакой разницы не видите?...
13 Волшебник
 
модератор
16.05.16
17:30
(11)
"И чё?" - аргумент, об который разбиваются все доказательства.
"И то!" - аргумент, вновь возвращающий силу доказательствам.
14 Лефмихалыч
 
16.05.16
17:33
(3) (8) и тем не менее, выбора - это все равно запрос. Это много запросов по мере считывания буфера
15 Матиус III
 
16.05.16
17:34
(10) А в Бейсике такой фигней не запорачивались.
16 Волшебник
 
модератор
16.05.16
17:55
(14) Это ещё и экономное использование памяти, поскольку выборка идёт вперёд и пройденные элементы освобождаются из памяти.
17 Локи-13
 
16.05.16
18:02
(0) дело не в быстроте, а в области применения

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

выборки можно применять крайне редко
18 mistеr
 
16.05.16
18:17
(12) Разница хорошо описана в (8), и я о ней упомянул. А насчет "статичного массива" откуда дровишки?

(16) > пройденные элементы освобождаются из памяти
А при обходе выборки из запроса они, стало быть, приговариваются к пожизненному заключению?

Как ни крутись, а в базу в итоге идет запрос. Предлагаю закончить с терминологией и обсуждать сабж.
19 Волшебник
 
модератор
16.05.16
18:18
(18) В базу идут разные запросы
20 mistеr
 
16.05.16
18:27
(19) Можно подсмотреть и написать 1:1 :)

В общем, Выбрать() сделали для облегчения перехода с клюшек, чтобы не учить сразу язык запросов. Некоторые так и не осилили...
21 4St
 
16.05.16
21:28
(0) Выбрать() свалится на RLS или при ограничениях на хотя бы одну колонку справочника. Выбрать() возвращает все поля справочника, а запрос - только те, которые в нем описали. Например, для справочника, имеющего пару десятков реквизитов, половина которых имеет тип ХранилищеЗначения, запрос отработает быстрее.
Да и вообще в восьмёрке запросы - почти всегда единственный православный способ извлечения данных. Остальное - от лукавого.
22 kittystark
 
16.05.16
21:33
у себя на планшете на мобильной платформе под андроид выбрать() по регистру цен работает быстрее на объемах до 250 элементов, свыше 300 шт. - производительней запрос оказывается