|
Что быстрей перебор справочника или запрос? | ☑ | ||
---|---|---|---|---|
0
YHVVH
19.09.08
✎
10:23
|
сосбно сабж. знаю что перебором но почему ? жду коментарий.
|
|||
1
Vitello
19.09.08
✎
10:24
|
Мля...в очередной раз холивар на замусоленую тему...
|
|||
2
YHVVH
19.09.08
✎
10:24
|
ссылочку плиз.
|
|||
3
zyto
19.09.08
✎
10:25
|
(1)А какой тут может быть холивар?
(0)Если знаешь - делай, зачем спрашиваешь? |
|||
4
ДенисЧ
19.09.08
✎
10:25
|
Смотря какая платформа, размер справочника, прямые руки в написаниии запроса и проч.
В общем - лицом к стенке и пулю в лоб за розжиг. |
|||
5
YHVVH
19.09.08
✎
10:26
|
(3) спрашиваю почему быстрей?
|
|||
6
UnoMomento
19.09.08
✎
10:26
|
Если прямым запросом, то примерно одинаково
|
|||
7
Дуб
19.09.08
✎
10:26
|
(0) да ну! В скульной базе? Прямым запросом? Медленнее, чем перебором?
|
|||
8
YHVVH
19.09.08
✎
10:28
|
какая разница в размере справочника не пойму, платформа 7ка торговля.
вот напрмиер код: Варинат 1: Товар = СоздатьОбъект("ТаблицаЗначений"); Товар.НоваяКолонка("Товар"); СпрТ=СоздатьОбъект("Справочник.Номенклатура"); спрТ.ВыбратьЭлементы(); Пока спрТ.ПолучитьЭлемент() = 1 Цикл Если спрТ.ЭтоГруппа()=1 Тогда продолжить; КонецЕсли; Если спрТ.ПометкаУдаления()=1 Тогда продолжить; КонецЕсли; Товар.НоваяСтрока(); Товар.Товар = спрТ.ТекущийЭлемент(); КонецЦикла; Вариант 2 Товар = СоздатьОбъект("ТаблицаЗначений"); ТекстЗапроса = " |Товар = Справочник.Номенклатура.ТекущийЭлемент; |Группировка Товар без Групп; |Условие (Товар.ЭтоГруппа() = 0); |Условие (Товар.ПометкаУдаления() = 0); |"; Запрос = СоздатьОбъект("Запрос"); Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда Возврат; КонецЕсли; Запрос.Выгрузить(Товар,1); |
|||
9
YHVVH
19.09.08
✎
10:29
|
(7) База DBF, запрос не прямой.
|
|||
10
dk
19.09.08
✎
10:29
|
(0) есть еще фильтрация по индексируемым колонкам и сортировка, хотя ...
|
|||
11
YHVVH
19.09.08
✎
10:31
|
Запрос отстает поп роизводительно потм еще надо время чтоб его пербрать , но это не в счет.
|
|||
12
Дуб
19.09.08
✎
10:30
|
(9) с этого бы и начал ;)
|
|||
13
ДенисЧ
19.09.08
✎
10:30
|
(8) такой запрос будет однозначно медленней. Я ж говори про руки...
|
|||
14
Heckfy
19.09.08
✎
10:31
|
(8) При 5-ти элементах в справочнике будет быстрее перебор. При 50 000 будет быстрее запрос. А вообще:
В магазине одежды. Покупатель: - У вас есть мужские трусы? Продавщица: - Нет, только женские. Но возьмите их. Какая разница? - Сейчас я эту разницу достану и вам по губам нашлепаю. |
|||
15
YHVVH
19.09.08
✎
10:33
|
(13) скажи как запрос написать чтоб быстрей был?
|
|||
16
Mikeware
19.09.08
✎
10:34
|
Выполни в 1CQA запрос
select Товар.id [Товар $Справочник.Номенклатура] from $Справочеик.Номенклатура спрНоменклатура (Nolock) where спрНоменклатура.IsMark=0 and спрНоменклатура.IsFolder=0 и удивись... |
|||
17
YHVVH
19.09.08
✎
10:35
|
(14) поз 20 000, быстрей пербор за 3 сек, а запрос за 23.
|
|||
18
ДенисЧ
19.09.08
✎
10:35
|
(15) убрать вызовы функций и читать про язык запросов.
|
|||
19
dk
19.09.08
✎
10:36
|
(13) :)
|Обрабатывать НепомеченныеНаудаление; |Товар = Справочник.Номенклатура.ТекущийЭлемент; |Группировка Товар без Групп; |Без Итогов; |"; хотя первая строчка необязательная |
|||
20
YHVVH
19.09.08
✎
10:38
|
(16) это просто заменить текст запроса? Или что еще нужно?
|
|||
21
dk
19.09.08
✎
10:37
|
(19) для (8)
|
|||
22
YHVVH
19.09.08
✎
10:39
|
(19) а где условия на группу?
|
|||
23
YHVVH
19.09.08
✎
10:40
|
(19) всеравно медленней запрос работает.
|
|||
24
dk
19.09.08
✎
10:40
|
не нужны, есть же "без Групп"
|
|||
25
YHVVH
19.09.08
✎
10:42
|
1
10:41:21 10:41:24 18766 2 10:41:28 10:41:41 18766 |
|||
26
ДенисЧ
19.09.08
✎
10:40
|
(22) Я же уже сказал - почитай про язык запросов.
|
|||
27
Heckfy
19.09.08
✎
10:41
|
(17) При 20 тыс. запрос должен работать быстрее перебора. Отладчик тебя спасет. Наверное, узкое место здесь:
Запрос.Выгрузить(Товар,1); |
|||
28
Господин ПЖ
19.09.08
✎
10:40
|
(22) Группировка Товар без Групп;
этого хватит |
|||
29
YHVVH
19.09.08
✎
10:44
|
(27) что там отладчиком делать то?
Запрос.Выгрузить(Товар,1); - занимает меньше секунды проверял. |
|||
30
Heckfy
19.09.08
✎
10:44
|
Смысл этого в чем?
|Группировка Товар без Групп; |Условие (Товар.ЭтоГруппа() = 0); |
|||
31
YHVVH
19.09.08
✎
10:45
|
(27) не работает быстрей в 7 раз медленей работает. Что (19) и что (8) работают медленей чем перебор.
(16) не проерял еще, потомучто не знаю где эту хрень писать. |
|||
32
YHVVH
19.09.08
✎
10:46
|
(3) забей убрал я это, всеравно медленно.
|
|||
33
dk
19.09.08
✎
10:47
|
а теперь поставь условие на вхождение в парочку групп
и еще раз сделай замер, хотя ... |
|||
34
YHVVH
19.09.08
✎
10:48
|
(33) проблема в том что без условий надо.
|
|||
35
Господин ПЖ
19.09.08
✎
10:47
|
>>|Группировка Товар без Групп;
>>в 7 раз медленей работает группировки в клюшках собираются во временных таблицах на клиенте... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |