Вход | Регистрация


1С:Предприятие ::

Метки: 

ТаблицаЗначений.Найти() чем является с точки зрения платформы

Я
   yavasya
 
12.07.18 - 13:10
Добрый день коллеги!

Помогите решить спор, я считаю что в цикле делать ТаблицаЗначений.Найти() является непроизводительным - нужно сделать запрос к обеим таблицам значений.
ТаблицаЗначений.Найти() чем является с точки зрения платформы ?
 
 
   Вафель
 
1 - 12.07.18 - 13:13
в зависимости от того есть индекс или нет
   Вафель
 
2 - 12.07.18 - 13:13
если нет - то перебор
   Вафель
 
3 - 12.07.18 - 13:14
А еще можено мердж джойн написать
   Малыш Джон
 
4 - 12.07.18 - 13:15
таблица значений с точки зрения платформы является одной из структур для хранения данных в оперативной памяти компьютера
   МихаилМ
 
5 - 12.07.18 - 13:18
скд умеет делать левое соединение тз + фильтрация 
также фильтровать тз умеет построительзапроса.
   lodger
 
6 - 12.07.18 - 13:21
(0) вы правильно считаете. в рамках оптимизации можно этим заняться.
по вопросу ответы в (1) и (2)
   yavasya
 
7 - 12.07.18 - 13:22
всем спасибо
   Salimbek
 
8 - 12.07.18 - 13:23
(0) Быстрее тогда использовать Соответствие. То, чего ищешь - в Ключ, а остальные значения в Структуру в Значение. Или, если ТЗ уже есть, то в Значение - номер строки ТЗ
   Salimbek
 
9 - 12.07.18 - 13:25
(0) Но может быстрее запросами, 1-й уложить 1-ю ТЗ, 2-й - вторую (по ключевым полям желательно создать Индексы), 3-й запрос из них одним махом вытащит все, что нужно.
   МихаилМ
 
10 - 12.07.18 - 13:30
(9) попробуйте обработать тз в 100к строк запросом.
устанете ждать. запрос - самый медленный инструмент обработки тз.
 
 Рекламное место пустует
   pavig
 
11 - 12.07.18 - 13:32
(8)
Быстрее - индексировать. И никаких танцев.
(1), (2) + 100500
   yavasya
 
12 - 12.07.18 - 13:35
с точки зрения отладки мне тоже больше нравится результат запроса, иначе обе ТЗ в эксель выгружать и там соединять
   H A D G E H O G s
 
13 - 12.07.18 - 13:38
Ни один из ответов не является правильным, ну, кроме (3) :-)
   H A D G E H O G s
 
14 - 12.07.18 - 13:40
95% даже не поняли о чем в (3)
   yavasya
 
15 - 12.07.18 - 13:44
(14) расскажи пожалуйста в двух словах
   H A D G E H O G s
 
16 - 12.07.18 - 13:51
(15) Когда 2 таблицы КрайнеВелики - их проще обойти в одном цикле, предварительно отсортировав по ключам связи
   H A D G E H O G s
 
17 - 12.07.18 - 13:52
Когда одна таблица велика, а 2 - мала - проще в большой создать Индекс и обойти Циклом с поиском. Цикл по малой таблице, поиск по индексу большой.
   yavasya
 
18 - 12.07.18 - 13:53
(16) понятно !
   H A D G E H O G s
 
19 - 12.07.18 - 13:57
Ну и если на БольшуюТаблицу наложено допполе фильтра, попадающего в индекс, не принадлежащее условию связи, а условие связи на равенство - проще создать хэштаблицу поиска для малой таблицы, а при проходе по дереву индекса - сразу проверять строку индекса, удовлетворяющую условию допполя на вхождение в хэш таблицу. Так, в принципе, НАВЕРНОЕ, я надеюсь работает hash-join, но в 1С ты его не изобразишь.
   H A D G E H O G s
 
20 - 12.07.18 - 14:06
Так работает SQL, в самых лучших случаях.
   13_Mult
 
21 - 12.07.18 - 14:26
http://qps.ru/KYBEJ  Там почти на 1С написано :-)



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует