![]() |
![]() |
![]() |
|
ЛЕВОЕ и ВНУТРЕННЕЕ СОЕДИНЕНИЕ | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
Ненавижу 1С
гуру
07.05.09
✎
12:52
|
понятно, что это 2 разные вещи, но допустим мы уверены (исходя из условий), что в результате получим одну и ту же выборку
что быстрее работает? |
||||||||||
1
Ненавижу 1С
гуру
07.05.09
✎
12:52
|
вроде как
Внутреннее |
||||||||||
2
skunk
07.05.09
✎
12:53
|
какие условия дают такую гарантию?
|
||||||||||
3
Ненавижу 1С
гуру
07.05.09
✎
12:59
|
(2) логика работы
допустим 2 регистра двигаются одним и тем же документом, набор товары и регистратор у них равные ИЗ РегистрНакопления.Регистр1 КАК Регистр1 ЛЕВОЕ (ВНУТРЕННЕЕ) СОЕДИНЕНИЕ РегистрНакопления.Регистр2 КАК Регистр2 ПО (Регистр1.Регистратор=Регистр2.Регистратор) и (Регистр1.Товар=Регистр2.Товар) |
||||||||||
4
hhhh
07.05.09
✎
12:59
|
если
мы уверены (исходя из условий), что в результате получим одну и ту же выборку Тогда и ПОЛНОЕ СОЕДИНЕНИЕ даст ту же выборку. Поэтому надо делать ПОЛНОЕ, потому что там проверок меньше. |
||||||||||
5
Ненавижу 1С
гуру
07.05.09
✎
13:00
|
(4) полное, имхо, медленнее всего работает
|
||||||||||
6
JustBeFree
07.05.09
✎
13:00
|
Потому что оно левое
Левое |
||||||||||
7
hhhh
07.05.09
✎
13:00
|
(5) с чего это?
|
||||||||||
8
eklmn
гуру
07.05.09
✎
13:00
|
imho
Левое |
||||||||||
9
Shurjk
07.05.09
✎
13:01
|
И что по итогам голосования выигравший механизм соединения будет признан самым быстрым?
|
||||||||||
10
H A D G E H O G s
07.05.09
✎
13:02
|
Потому что мозх использовать надо.
Левое |
||||||||||
11
H A D G E H O G s
07.05.09
✎
13:03
|
(4) Нет.
|
||||||||||
12
hhhh
07.05.09
✎
13:04
|
(7)+ в ЛЕВОМ и ВНУТРЕННЕМ присутствует проверка на наличие записей, а в ПОЛНОМ ничего не проверяется, сразу всё напрямую идет в конечную выборку. Значит ПОЛНОЕ быстрее, а самое тормозное ВНУТРЕННЕЕ, там 2 проверки.
|
||||||||||
13
H A D G E H O G s
07.05.09
✎
13:04
|
Хотяяя.
Может SQL и мудрее. Если мы делаем ВНУТРЕННЕЕ и выбираем только изх 1-ой таблицы, то он 2-ую фильтровать не будет??? |
||||||||||
14
Ненавижу 1С
гуру
07.05.09
✎
13:05
|
+ по полям соединения есть индексы
|
||||||||||
15
hhhh
07.05.09
✎
13:05
|
(14) в условии задачи про SQL ничего не сказано.
|
||||||||||
16
hhhh
07.05.09
✎
13:06
|
(15) к (13)
|
||||||||||
17
Ненавижу 1С
гуру
07.05.09
✎
13:06
|
+ база SQL
|
||||||||||
18
MSensey
07.05.09
✎
13:15
|
(12) какие две проверки во внутреннем соединении?
|
||||||||||
19
Найлло
07.05.09
✎
13:15
|
Потому как мало ли че. Вдруг по одному из регистров что-то не так пошло и там записи все таки нет. Как пример два регистра партий- по упр и бух учету. Регистраторы одни и те же, но по некоторым позициям движения могли не пройти из-за нехватка остатков.
К чему я- логика логикой, но всякое может быть. Поэтому лично я из двух по сути одинаковых регистров делаю один основным- а второй присоединяю слево. Левое |
||||||||||
20
Ненавижу 1С
гуру
07.05.09
✎
13:32
|
вообще при такой постановке разница между ними скорее всего отсутствует практически.
|
||||||||||
21
AHgpuXa
07.05.09
✎
13:37
|
Left join работает медленей Inner join, а inner join работает медленней обычного соединения через запятую, с вынесением условия в WHERE.
Поэтому в твоем случае как обычно |
||||||||||
22
acsent
07.05.09
✎
14:46
|
Указывая внутреннее соединение, оптимизатор может сам выбрать одну из таблиц основной
|
||||||||||
23
Ненавижу 1С
гуру
08.05.09
✎
12:38
|
смотрим
v8: Помогите с запросом так что 1С использует по возможности (для обязательных реквизитов) "ВНУТРЕННЕЕ" когда пишем через точку |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |