Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Блог: Порядок соединений в запросе: миф или реальность?  [new]
Без регистрации
Guest
автор
Сам тезис заключался в том, что таблицы в запросе должны быть как бы отсортированы по количеству данных, т.е. сначала идти маленькие, потом все больше и больше.


Скрипт от автора блога создает 10 одинаковых таблиц - может изменить условия тестирования как в тезисе и продолжить проверку мифов ?

ЗЫ: К сожалению не могу оставит коммент в блоге - нет регистрации в контакте.
22 сен 11, 16:15    [11320363]     Ответить | Цитировать Сообщить модератору
 Re: Блог: Порядок соединений в запросе: миф или реальность?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
а какой смысл как-то сортировать таблицы в запросе, если нет FORCE ORDER?
22 сен 11, 16:22    [11320434]     Ответить | Цитировать Сообщить модератору
 Re: Блог: Порядок соединений в запросе: миф или реальность?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
Без регистрации
автор
Сам тезис заключался в том, что таблицы в запросе должны быть как бы отсортированы по количеству данных, т.е. сначала идти маленькие, потом все больше и больше.


Скрипт от автора блога создает 10 одинаковых таблиц - может изменить условия тестирования как в тезисе и продолжить проверку мифов ?

ЗЫ: К сожалению не могу оставит коммент в блоге - нет регистрации в контакте.


Миф! все надо смотреть в конкретном случае и писать запрос с максимально-оптимальным планом выполнения... а порядок выбора таблиц (по их величине) тут не при чем
22 сен 11, 16:35    [11320521]     Ответить | Цитировать Сообщить модератору
 Re: Блог: Порядок соединений в запросе: миф или реальность?  [new]
Без регистрации
Guest
Shakill,

на этот вопрос и пытался ответить автор блога
но условия тестирования выбраны на мой взгляд некорректно о чем я и написал.
22 сен 11, 16:36    [11320526]     Ответить | Цитировать Сообщить модератору
 Re: Блог: Порядок соединений в запросе: миф или реальность?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Без регистрации, о боже, не слушаейте разговоры спецов между собой, уверен что сам Дмитрий Костылев отговаривал бы лично вас от этой "практики".
IMXO, обсуждалось в ключе "Я тут покопался и нашёл закономерности", но на практике в 99,9% врятли даст основной прирост оптимизации. Проблема заключается ещё в том, что чем меньше явление наблюдается тем менее правдоподобно/правильно оно описывается и используется. А ещё когда сервера разные.

Помимо тематики "оптимизация" есть разработка/архитектура/подход/интерфейсы, при котором некоторые вещи и подходы по оптимизации не жизнеспособны.

Лично я никогда этого не придерживался, хотя постоянно наблюдаю как до этого сиквел сам допирает (статистика и всё такое). Вы просто ешё не знаете тех нелогичных тупостей которые есть в оптимизаторе скуля (и обсуждалось здесь на форуме), и которые, надеюсь, поправят лет через 10-100.
В моём подходе он несовместим.

Забейте, лучше своей головой думайте, сами иследуйте или забудте об этом.
22 сен 11, 17:00    [11320749]     Ответить | Цитировать Сообщить модератору
 Re: Блог: Порядок соединений в запросе: миф или реальность?  [new]
Без регистрации
Guest
Mnior,

Спасибо большое за совет. Сам в такие мифы не верю, зрю в корень т.е. в план - достаточно часто есть возможность - немного исправив запрос - помочь построить "правильный" план.
Вопрос в том что "развенчание" мифа уж больно криво выполнено - не выполнены явно сказанные требования к мифу - о чем написал на форуме т.к. нет регистрации в контакте, если уж автор и собирается развеивать мифы то надо хоть "исходные" условия соблюсти.
22 сен 11, 17:08    [11320826]     Ответить | Цитировать Сообщить модератору
 Re: Блог: Порядок соединений в запросе: миф или реальность?  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
В случае, если во FROMе джойнится много-много таблиц, сервер скорее всего не сумеет выбрать оптимальный план в смысле порядка джойнов.
Поэтому расстановка этих джойнов в порядке возрастания количества записей в таблицах
очень даже может повлиять на выполнение запроса в лучшую сторону.
Неоднократно сталкивался. И без FORCE ORDER.
22 сен 11, 17:10    [11320841]     Ответить | Цитировать Сообщить модератору
 Re: Блог: Порядок соединений в запросе: миф или реальность?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Без регистрации
собирается развеивать мифы
Этот "Миф" нельзя развеять. Оптимизатор это алгоритм (далеко не идеальный), под него можно подстраиваться. Думаю врятли дойдём до такого, что не будет существовать такого запроса и определённых условий, при котором план запроса всё равно не зависит от порядка. Это разве что сервер буде принудительно сортировать (по названию?), что глупо/уже не оптимально.

iap
джойнится много-много таблиц,
Неоднократно сталкивался.
Везло.
Самое важное, что это к мифу плохо относится. Т.к. миф касается общего подхода, а не частных случаев.
В общем случае постоянно думать так вредно, а для оптимизации тяжёлых запросов в тяжёлых условиях знание может быть полезно.

У меня критерий порядка логические, по причинности данных, от условий основного отбора. И я нормално смотрю на то, что фильтруюший "справочник" стоит в начале, а спрвочник для вывода дополнительных данных в конце.
Порядок наследоания view стоит далеко не на последнем месте (свойства у LEFT). Контроль логики приности больше неудобства, чем производительность.

Сложные запросы это цела тема, само по себе явление не желательное и больное. Пока мы только в начале, нарабатывем мировой опыт построения/проектирования "монстров". У меня часто при этом возникает желание - причесать всю шелуху.
Особенно интересно, каков приоритет использования индексированных вью, механизм позволяющий скрыть часть сложности.
И вспоминается тема про кеширование компиляционного процесса.
Тем более что интересна сторона автоматизации схемы, чем универсализации объектов, при котором количство таблиц и сложность запросов намного ниже.

Т.е. если обобщить - скулю стремится к идеалу, чтоб прогрммисты писали ЧТО, а не КАК. А прогерам не писать универсальных монстров.

----
PS: Вот демагог же, блин.
22 сен 11, 18:56    [11321676]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить