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