powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
32 сообщений из 32, показаны все 2 страниц
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34785669
Nike85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Доброго времени суток участникам форума!

Сегодня «открыл» для себя такой факт, что от выбора основной таблицы (к которой будут присоединяться join-ами другие таблицы) очень даже зависит производительность запроса. Пример:

Код: plaintext
1.
2.
3.
select s1.rsrprice, max(s1.dord),K.barkod,K.Name  from sporder s1
left join katmc K on s1.cmc=K.nrec
WHERE s1.dord>='2005-01-01' And s1.vidorder= 0 
group by s1.rsrprice, K.barkod,K.Name

выполняется намного быстрее, чем:

Код: plaintext
1.
2.
3.
SELECT K.Name, K.barkod, s1.rsrprice, max(s1.dord) FROM katmc K
LEFT JOIN sporder s1 on k1.nrec=s1.cmc
WHERE s1.dord>='2005-01-01' And s1.vidorder= 0 
group by s1.rsrprice, K.barkod,K.Name

Первый отработал за ~3 минуты, выгрузив все ~82000 записей; второй (ради интереса я оставил его на выполнение) за 2 часа!! выгрузил только ~200 записей.

Насколько я понимаю, производительность в данном случае зависит от расположения таблиц по сторонам отношения LEFT JOIN, состава этих таблиц и индексов, входящих в них.
Вот, по сути, что и меня интересует – от чего в данном случае зависит скорость выполнения? Для чего служат и чем различаются LEFT, RIGHT, INNER, OUTER JOIN-ы?
Разъясните на пальцах, может кто-нибудь выложит ссылки на литературу/источники с описанием сабжа. Хотелось бы, конечно, обсудить это здесь, на форуме, но другие источники - тоже хорошая вещь (может блажь в голову взбредет, и в свободное время почитаю :))
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34785711
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nike85 wrote:
> Для чего служат и чем различаются LEFT, RIGHT,
> INNER, OUTER JOIN-ы?
Пока что это - главное, что должно Вас волновать.
После осознания того, что у Вас - два РАЗНЫЙ запроса, которые,
соответственно ДОЛЖНЫ возвращать РАЗНЫЕ результаты, которые выполняются
ПО РАЗНОМУ....
Вот тогда то...

зы В первом случае у вас left join, во втором - неявный inner join....
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34786224
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nike85
Код: plaintext
1.
FROM katmc K
LEFT JOIN sporder s1 on k1.nrec=s1.cmc
lockyво втором - неявный inner join?
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34786294
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft Nike85
Код: plaintext
1.
FROM katmc K
LEFT JOIN sporder s1 on k1.nrec=s1.cmc
lockyво втором - неявный inner join?
k1 ???
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34786382
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовk1 ???я полагаю, что k1 -это опечатка и должно быть просто k, т.к. более k1 нигде в запросе не упоминается.

Кажется я понял, что имел ввиду locky. Если в таблице katmc поле nrec гарантированно ссылается на существующую запись в таблице sporder, то запрос будет эквивалентен INNER JOIN-у. Правда, этой гарантии в том, что написал автор темы я не вижу.
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34786871
Nike85Здравствуйте! Доброго времени суток участникам форума!

Сегодня «открыл» для себя такой факт, что от выбора основной таблицы (к которой будут присоединяться join-ами другие таблицы) очень даже зависит производительность запроса. Пример:

Код: plaintext
1.
2.
3.
select s1.rsrprice, max(s1.dord),K.barkod,K.Name  from sporder s1
left join katmc K on s1.cmc=K.nrec
WHERE s1.dord>='2005-01-01' And s1.vidorder= 0 
group by s1.rsrprice, K.barkod,K.Name

выполняется намного быстрее, чем:

Код: plaintext
1.
2.
3.
SELECT K.Name, K.barkod, s1.rsrprice, max(s1.dord) FROM katmc K
LEFT JOIN sporder s1 on k1.nrec=s1.cmc
WHERE s1.dord>='2005-01-01' And s1.vidorder= 0 
group by s1.rsrprice, K.barkod,K.Name

Первый отработал за ~3 минуты, выгрузив все ~82000 записей; второй (ради интереса я оставил его на выполнение) за 2 часа!! выгрузил только ~200 записей.

Насколько я понимаю, производительность в данном случае зависит от расположения таблиц по сторонам отношения LEFT JOIN, состава этих таблиц и индексов, входящих в них.
Вот, по сути, что и меня интересует – от чего в данном случае зависит скорость выполнения? Для чего служат и чем различаются LEFT, RIGHT, INNER, OUTER JOIN-ы?
Разъясните на пальцах, может кто-нибудь выложит ссылки на литературу/источники с описанием сабжа. Хотелось бы, конечно, обсудить это здесь, на форуме, но другие источники - тоже хорошая вещь (может блажь в голову взбредет, и в свободное время почитаю :))

Я рад, что Вы открыли для себя истину Декартова Произведения множеств, план выполнения запросов и оптимизацию....
Если говорить "по-простому", то:
LEFT JOIN - левая таблица join'a "отдаст" все свои записи, а правая - только по совпадающему ключу; для ненайденного в правой таблице ключа левой таблицы будет выдаваться NULL.
Аналогично для RIGHT JOIN ("левая" надо заменить на "правая").
OUTER JOIN - полное соединение = полное декартово произведение множеств - выбираются все сочетания ключей связанных таблиц
INNER JOIN - внутреннее соединение - выбираются записи таблиц с совпадающим значением ключа (когда пишем: Where a.abc=b.abc это и есть INNER JOIN "по умолчанию").
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34786975
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nike85 пишет:
> Сегодня «открыл» для себя такой факт, что от выбора основной таблицы (к
> которой будут присоединяться join-ами другие таблицы) очень даже зависит
> производительность запроса. Пример:

Это ты заблуждаешься. Т.е. у тебя первая стадия. Ты уже понял, что
выбор плана зависит от порядка JOIN-ов, но еще не понял, что зависимость
эта случайна.

> Вот, по сути, что и меня интересует – от чего в данном случае зависит
> скорость выполнения? Для чего служат и чем различаются LEFT, RIGHT,
> INNER, OUTER JOIN-ы?
> Разъясните на пальцах, может кто-нибудь выложит ссылки на
> литературу/источники с описанием сабжа. Хотелось бы, конечно, обсудить
> это здесь, на форуме, но другие источники - тоже хорошая вещь (может

Ага, много вопросов - и мало ответов. Опять на лицо все признаки первой
стадии. Но возникает естественный вопрос -- при чем здесь db-design ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34786977
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky пишет:

> Пока что это - главное, что должно Вас волновать.
> После осознания того, что у Вас - два РАЗНЫЙ запроса, которые,

А что, афтар топега еще и не соблюдает семантическую эквивалентность
запросов ? Уууу как все запущено ...
Тогда это даже не первая стадия. 0.5.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34787923
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft wrote:
> Кажется я понял, что имел ввиду locky. Если в таблице katmc поле nrec
> гарантированно ссылается на существующую запись в таблице sporder, то
> запрос будет эквивалентен INNER JOIN-у. Правда, этой гарантии в том, что
> написал автор темы я не вижу.
нет
Код: plaintext
1.
2.
LEFT JOIN sporder s1 on k1.nrec=s1.cmc
WHERE s1.dord>='2005-01-01' And s1.vidorder= 0 
в клаузе where стоит ограничениение (s1.dord>='2005-01-01' And
s1.vidorder=0) на "левую" таблицу, что сводит left join к inner join
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34787948
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyнет
Код: plaintext
1.
2.
LEFT JOIN sporder s1 on k1.nrec=s1.cmc
WHERE s1.dord>='2005-01-01' And s1.vidorder= 0 
в клаузе where стоит ограничениение (s1.dord>='2005-01-01' And
s1.vidorder=0) на "левую" таблицу, что сводит left join к inner joinТочнее, на "правую". Но в целом согласен. Про where я как-то не подумал...
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34787966
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft wrote:
> Точнее, на "правую".
Да, сорри. Хотя - как посмотреть...
"левая" - потому что присоеднияется "левым внешним"

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34788004
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
miksoft wrote:
> Точнее, на "правую".
Да, сорри. Хотя - как посмотреть...
"левая" - потому что присоеднияется "левым внешним"так присоедияется-то справа. А "левой внешней" таблицей будет katmc.
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34788175
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Велика Сила Веры. :)
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34788183
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовВелика Сила Веры. :)а? я что-то пропустил?
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34788674
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft locky
miksoft wrote:
> Точнее, на "правую".
Да, сорри. Хотя - как посмотреть...
"левая" - потому что присоеднияется "левым внешним"так присоедияется-то справа. А "левой внешней" таблицей будет katmc.Точнее "внешним" (сохраняющим нестыкованные записи) будет тот кто слева / справа / оба по тексту запроса.
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34789995
Фотография optimizer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С...кий
OUTER JOIN - полное соединение = полное декартово произведение множеств - выбираются все сочетания ключей связанных таблиц.

здесь вы ошибаетесь. декартово произведение называется cross join.
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34790198
Ivanov Oleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Ты уже понял, что
выбор плана зависит от порядка JOIN-ов, но еще не понял, что зависимость
эта случайна.


Можно поспорить о случайности этой зависимости... Все зависит от СУБД и типа оптимизатора
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34790838
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv wrote:
> Это ты заблуждаешься. Т.е. у тебя первая стадия. Ты уже понял, что
> выбор плана зависит от порядка JOIN-ов, но еще не понял, что зависимость
> эта случайна.
Вроде как справедливо для CE, для прочих - зависит тупизны
оптимизатора/данных/метаданных.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34790954
Demion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Nike85 :
посмотри в документации "SQL Server Books Online", я сам оттуда познал предназначение джойнов :)
и вообще полезная дока
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34791624
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто ты заблуждаешься. Т.е. у тебя первая стадия. Ты уже понял, что
выбор плана зависит от порядка JOIN-ов, но еще не понял, что зависимость
эта случайна.
Странная формулировка.

Если "выбор планов зависит от порядка join-ов", это очень плохо и показывает несовершенство оптимизатора. Хотя, помнится, в беседе об ansi синтаксисе join-ов некоторые коллеги рассматривали это как преимущество.

Однако, "случайная зависимость" - этот термин меня заинтриговал. Нельзя ли дать ему какое-либо мало-мальски формальное определение.
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34791953
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer MasterZivслучайна.
Если "выбор планов зависит от порядка join-ов", это очень плохо и показывает несовершенство оптимизатора. Хотя, помнится, в беседе об ansi синтаксисе join-ов некоторые коллеги рассматривали это как преимущество.

Однако, "случайная зависимость" - этот термин меня заинтриговал. Нельзя ли дать ему какое-либо мало-мальски формальное определение.гм. софтваре, вы действительно не въезжаете, что цытируемое - шутка юмора? Или настолько не понимаете [ansi синтаксисе join-ов] чтобы не увидеть, что там оптимизатору предлагаются разные запросы? (по поводу чего видимо шутка юмора и случилась)
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34792073
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assaгм. софтваре, вы действительно не въезжаете, что цытируемое - шутка юмора? Или настолько не понимаете [ansi синтаксисе join-ов] чтобы не увидеть, что там оптимизатору предлагаются разные запросы? (по поводу чего видимо шутка юмора и случилась)
Хм. assa, отрадно видеть человека, который верит в свои теории несмотря на явное противоречие фактам. В данном случае - Ваша теория опирается на гипотезу "автор пошутил, поскольку увидел что разные запросы", в то время как задокументирован факт - автор узнал об этом расхождении после публикации своего сообщения.
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34792553
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer assaгм. софтваре, вы действительно не въезжаете, что цытируемое - шутка юмора? Или настолько не понимаете [ansi синтаксисе join-ов] чтобы не увидеть, что там оптимизатору предлагаются разные запросы? (по поводу чего видимо шутка юмора и случилась)
Хм. assa, отрадно видеть человека, который верит в свои теории несмотря на явное противоречие фактам. В данном случае - Ваша теория опирается на гипотезу "автор пошутил, поскольку увидел что разные запросы", в то время как задокументирован факт - автор узнал об этом расхождении после публикации своего сообщения.уууу, как всё запущено.
мне например очевидно наличие 2-х полседовательно выданных мастазивом шуток йумора. поскольку вы полагаете, что первая произошла до осознания отсутсвия семантической инвариантности, можно думать что вторая явно показывает несерьезность и первой. (на чем я ,впрочем споткнувшись, не особо фиксировался по прочтении, но шутку тады оценил (давно это было, т.ч. извините, не пересмотрел контекст нонче - писал по памяти, "вспылил").
теперь теряюсь в догадках - то ли оценивать ваше Ч.Ю. на где-то запредельном для меня уровне, то ли - напротив.


зы. вот ту недавно наткнулся на трактат беклемишева по женской логике. что интересно - редкий педант (т.е. - зануда - с общеупотребительной т.з.), вернее даже - редкостный, - а какое, оказывается, ч.ю.
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34792689
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assaуууу, как всё запущено.
мне например очевидно
Угу.

1. "Очевидное утверждение - утверждение, которое автору так и не удалось доказать"
2. "Если факты противоречат теории - тем хуже для фактов".
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34793948
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer assaуууу, как всё запущено.
Угу.

1. "Очевидное утверждение - утверждение, которое автору так и не удалось доказать"
2. "Если факты противоречат теории - тем хуже для фактов".вы таки йуморисд.

(единственный способ зануде стать йумориздом - оставаться последовательным занудой. ничего смешнее в жизни видимо не бывваит)

по поводу "не удалось", и вообще "преклонения мущщин перед самим процессом логического вывода" -

щербаков(с)В ту пору часто, закрыв учебник,
я от амбиций моих ущербных
провозглашал решённым вопрос любой.
И заключал, что двойного смысла
иметь не могут слова и числа,
и пребывал отчаянно горд собой .
Но проходила неделя, две ли,
слова смещались куда хотели,
как А и Б, сидевшие на трубе.
И числа вновь обретали сложность.
И сознавал я свою ничтожность,
и изнывал от ненависти к себе...

вопрос тут не в "удалось" - "не удалось", а в исходных посылках. а вот поскольку они тут произвольны -, то "самоочевидные" вещи как раз и могут быть приняты в их качестве. т.ч. никакой потребности в изображении длинной "логической" цепочки из стоь же потолочных соображений, единственно с целью потрясть оппа-нента, я тут не испитывайу
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34794311
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assa
по поводу "не удалось", и вообще "преклонения мущщин перед самим процессом логического вывода" -

щербаков(с)
По поводу непреклонного отстаивания однажды выстроенного Михаил Константинович высказался следующим образом:

щербаков(c)
...

Мастерство свое утроить можешь, Бог с тобою.
А ломать - оно не строить. Так же и с судьбою.
Скажем, вышла неплохая крепкая обитель,
но изъяны различает только сам строитель.

Если он принципиальный, даже средь оваций,
даже если шум похвальный будет раздаваться,
гонор свой подальше сунет, не внимая гвалту,
отойдёт, посмотрит, сплюнет и возьмёт кувалду...

Был бы я такой же честный, я б не сомневался,
Я б за свой домишко тесный этак не держался,
Я размел его дотла бы и построил новый.
Но такой, видать, я слабый, али бестолковый.

Не гнетет меня какая злость или обида.
Просто дом я подпираю, как кариатида.
Только выдержка мужская, а иных манер - шиш.
Ни на миг не отпускает свод, который держишь…

...
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34794361
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerщербаков хороший
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34794759
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer пишет:

> Странная формулировка.
>
> Если "выбор планов зависит от порядка join-ов", это очень плохо и
> показывает несовершенство оптимизатора. Хотя, помнится, в беседе об ansi

Ничуть. Это не плохо и не хорошо, это есть так. Сложность задачи оптимизации
JOIN-ов скажем 16 таблиц представляешь себе ?

> синтаксисе join-ов некоторые коллеги рассматривали это как преимущество.

Здрасте, в традиционном JOIN-е с WHERE всё то же самое, порядок таблиц может
быть задан и воспринят оптимизатором. В чем преимущество ? Да нет его.
Т.е. оно есть конечно, но не в этом.

> Однако, "случайная зависимость" - этот термин меня заинтриговал. Нельзя
> ли дать ему какое-либо мало-мальски формальное определение.

В контексте данного топика нет нужды. На самом деле я хотел сказать,
что странно радоваться, когда понимаешь что разные запросы дают разные
планы. Это ж достаточно очевидно. Ну и хотел предостеречь автора от
преждевременных выводов. Ну конечно она не абсолютно случайная.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34794829
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНичуть. Это не плохо и не хорошо, это есть так. Сложность задачи оптимизации
JOIN-ов скажем 16 таблиц представляешь себе ?
Представляю. И с пониманием отношусь к несовершенству оптимизатора, из-за которого не могу об этом забыть.

MasterZiv> синтаксисе join-ов некоторые коллеги рассматривали это как преимущество.

Здрасте, в традиционном JOIN-е с WHERE всё то же самое, порядок таблиц может
быть задан и воспринят оптимизатором. В чем преимущество ? Да нет его.
Т.е. оно есть конечно, но не в этом.
Ну, "есть конечно" - это фантастика.

Преимущества действительно нет, во всяком случае, как я сказал, лично я такой эффект, если он где-то есть, рассматриваю как недостаток.

Различие в "семантике формы записи" между ansi- и where- join-ами таки есть. В ansi явно задается порядок операций (хотя никто не мешает оптимизатору его эквивалентно поменять). В where явного порядка нет; есть порядок таблиц во from (который в принципе можно рассматривать как аналог "порядка join-ов", но не стоит - можно написать запрос, в котором таблицы "в порядке следования" вообще не join-ятся) и есть набор условий, которые могут быть раскиданы в произвольном порядке.
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34795392
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer пишет:

> Различие в "семантике формы записи" между ansi- и where- join-ами таки
> есть. В ansi явно задается порядок операций (хотя никто не мешает
> оптимизатору его эквивалентно поменять).

Да нет никакого явного порядка JOIN-ов ни там, ни там. В ANSI семантика
самого JOIN-а задается без противоречий. В этом их преимущество.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34795425
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДа нет никакого явного порядка JOIN-ов ни там, ни там.
В выражении 1+2+3+4+5 порядок операций задан или нет? В выражении 1+(2+3)+(4+5)?

MasterZivВ ANSI семантика самого JOIN-а задается без противоречий. В этом их преимущество.
Такое впечатление, что если раскопать, что Вы называете "без противоречий", то придем как раз к однозначному порядку в тех случаях, когда он имеет значение (то есть в outer join-ах).
...
Рейтинг: 0 / 0
ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
    #34795984
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer пишет:

> В выражении 1+2+3+4+5 порядок операций задан или нет? В выражении
> 1+(2+3)+(4+5)?

Ну тут и задан, и не задан. Полная аналогия с JOIN-ами.
Если знаешь, что сложение можно выполнять в любом порядке,
то можно выполнять вычисление как угодно, не обращая
внимания даже на скобки. Например 2+3 = 5, +5 =10 + (4+1) = 15.
или (5+1)*2 + 3. Т.е. наиболее оптимальным способом.

Ну да ладно.

> Такое впечатление, что если раскопать, что Вы называете "без
> противоречий", то придем как раз к однозначному порядку в тех случаях,
> когда он имеет значение (то есть в outer join-ах).

Нет. Имеется в виду ссылки в запросе на значения полей до и после JOIN-а.

Я уже не понимаю, о чем мы спорим. И я и ты - мы оба все прекрасно понимаем
(я чувствую ). Чего спорить - то ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ПРОИЗВОДИТЕЛЬНОСТЬ запроса или что такое JOINы??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]