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
Сообщения: 1498
Зарегистрирован: 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]

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость