Имя: Пароль:
1C
1С v8
Механика соединений в запросе
,
0 AXZ
 
10.08.22
09:50
Народ привет! Вопрос на засыпку: по каком принципу работает левый (внутренний, правый) джойнты к документам/регистрам/итдитп?
Например левый джойнт к справочнику по реквизиту сначала формирует полную таблицу, а уже потом подставляет к основной? Или формирует каждый раз новую таблицу с отбором из ПО? Или же берет список значений основной таблице и по ней формирует таблицу соединяемого документа, где есть все строки, подходящие условию?
1 АгентБезопасной Нацио
 
10.08.22
09:53
смотри в план запроса.
2 H A D G E H O G s
 
10.08.22
09:54
3 СеменовСемен
 
10.08.22
10:03
Nested Loop, Merge Join, Hash Join
4 AXZ
 
10.08.22
10:07
(3) Я имею ввиду левое соединение запроса
5 СеменовСемен
 
10.08.22
10:08
(4) это алгоритмы соединения. Какое левое или правое не имеет значения
6 AXZ
 
10.08.22
10:10
(5) И все же, по какому из алгоритмов достает данные 1Ска? ПО одному из или по каждому?
7 nicxxx
 
10.08.22
10:13
(0)джойнт? два раза. это не опечатка.
(6)вам уже ответили в 3 и 5
1С делает соединения так, как это делает СУБД, где она развернута
Можно тут почитать
https://www.red-gate.com/simple-talk/books/sql-server-execution-plans-third-edition-by-grant-fritchey/
8 АгентБезопасной Нацио
 
10.08.22
10:18
(7) и не у него одного  этот "джойнт"
>>1С делает соединения так, как это делает СУБД, где она развернута - а может, он именно про 1с-ную реализацию на файловой, например :-) хотя особо сути это не меняет.
9 nicxxx
 
10.08.22
10:24
(8)я бы такого на работу не взял :)
Сомневаюсь, что для файлового варианта ЗАО 1С придумала какой-то свой мега-алгоритм :)
10 АгентБезопасной Нацио
 
10.08.22
10:28
(9) может, как раз не "мега", а упрощенный... это у MSSQL/PG планировщики запроса шибко умные, а тут, может, примитивизировали (в ущерб производительности)?  не знаю.
11 Ненавижу 1С
 
гуру
10.08.22
10:51
(6) 1C отправляет запрос в СУБД. Каждая СУБД сама решает какой алгоритм использовать
12 Kassern
 
10.08.22
10:54
(11) искусственный интеллект субд?) Или все же есть четкие алгоритмы субд в каком случае какой план запроса строить?
13 Ненавижу 1С
 
гуру
10.08.22
10:56
(12) искусственный интеллект это тоже четкие алгоритмы
14 АгентБезопасной Нацио
 
10.08.22
10:56
(12) зависит от наличия индексов, статистики и т.п. Что немного описано в (2)
15 mikecool
 
10.08.22
10:58
(0) механика такова - поля в соединении это шестеренки, они скручивают таблицы
16 1Сергей
 
10.08.22
11:44
Зачем вам это?
17 Smallrat
 
10.08.22
11:48
(15) скручивают таблицы в джойнт
18 nicxxx
 
10.08.22
13:45
(12) не то, чтобы ИИ, но вполне себе ОС: https://blog.sqlauthority.com/2015/11/11/sql-server-what-is-sql-server-operating-system/
19 nicxxx
 
10.08.22
13:45
(17) пять баллов! :))
20 Chai Nic
 
10.08.22
13:49
Возможно, речь идет о файловом движке встроенной СУБД. Вряд ли в 1с придумали что-то своё. Скорее всего, взяли логику из какой-нибудь СУБД с открытым кодом и применили на свою структуру хранения.
21 alarm2020
 
10.08.22
14:28
(7) Есть такое слово joint
22 СеменовСемен
 
10.08.22
14:36
(21) это существительное, а join - глагол.
скл - это типа человеческой речи.
выбрать ..., присоединить слева ...
23 alarm2020
 
10.08.22
14:47
(22) "Как работает СОЕДИНЕНИЕ" звучит более грамотно, чем "как работает СОЕДИНИТЬ"
24 mistеr
 
10.08.22
14:50
(0) По-разному. В том числе и по описанным тобой вариантам. Зависит от СУБД, в которой хранится база и еще от многих факторов.
25 СеменовСемен
 
10.08.22
14:51
(23) так надо было и писать по-русски. там никаких соединить нет
26 bolder
 
10.08.22
15:17
(0) Пора бы к 21 дню изучения знать, что 1с - ники не управляют, каким образом джойнитьтаблицы в соединении -Nested Loop, Merge Join, Hash Join -СУБД сама решает в ходе составления плана запроса.Да, это полезно, но часто [это] бесполезное знание.Лучше разобрать стандарты разработки 1с, понимать значение индексов в ВТ.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший