join в MS SQL Server 7

Юмор, шутки, приколы (в пятницу).

Модератор: kdv

Ответить
Burzum
Сообщения: 14
Зарегистрирован: 28 окт 2004, 09:50

join в MS SQL Server 7

Сообщение Burzum » 16 дек 2004, 11:31

Сотрудник склепал запрос (точно воспроизвести не смогу) вида
select *
from table1
left join table2 on ...
left join table3 on ...
left join table4 on ...

Все объединилось и САМО отсортировалось, хотя order by никто не писал и после on поле не упоминалось.
Как это можно объяснить?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: join в MS SQL Server 7

Сообщение Merlin » 16 дек 2004, 12:05

Burzum писал(а):Сотрудник склепал запрос (точно воспроизвести не смогу) вида
select *
from table1
left join table2 on ...
left join table3 on ...
left join table4 on ...

Все объединилось и САМО отсортировалось, хотя order by никто не писал и после on поле не упоминалось.
Как это можно объяснить?
Ежели мартышку посадить за пишущую машинку, то за 100 мульёнов лет у неё есть хорошие шансы случайно напечатать "Евгения Онегина". Так сложились циклы работы оптимизатора и расположение записей на страницах слабофрагментированной базы.

Burzum
Сообщения: 14
Зарегистрирован: 28 окт 2004, 09:50

Re: join в MS SQL Server 7

Сообщение Burzum » 16 дек 2004, 13:24

Merlin писал(а): Ежели мартышку посадить за пишущую машинку, то за 100 мульёнов лет у неё есть хорошие шансы случайно напечатать "Евгения Онегина". Так сложились циклы работы оптимизатора и расположение записей на страницах слабофрагментированной базы.
Это не совпадение. Вывод: Билл Гейтс - матрышка?

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 16 дек 2004, 13:53

По чему хоть отсортировалось? Всем полям выборки? Тут часом кластерные индексы не повлияли?

Burzum
Сообщения: 14
Зарегистрирован: 28 окт 2004, 09:50

Сообщение Burzum » 16 дек 2004, 14:39

dimitr писал(а):По чему хоть отсортировалось? Всем полям выборки? Тут часом кластерные индексы не повлияли?
Только по одному полю (Фимилия имя отчество) из Table2, по нему есть индекс.
Последний раз редактировалось Burzum 17 дек 2004, 08:18, всего редактировалось 1 раз.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 16 дек 2004, 16:24

Если не было группировки/сортировки, то см. пост Merlin'а ;-)

fraks
Сообщения: 12
Зарегистрирован: 03 дек 2004, 15:41

Сообщение fraks » 17 дек 2004, 07:49

Если не указывать ЯВНО order by то сервер ничего не гарантирует. Он может выдавать данные стабильно в отсортированном виде но закладываться на это нельзя т.к. это просто особенности текущей реализации и никто никому не будет должен если в следующей версии этот порядок изменится.

Нет order by - нет и гарантии упорядочения.
[/b]

Ответить