On Tue, 20 Nov 2007 11:30:25 +0300, Karabas Barabas 
<mike-J4Q8XBNcgOgedp2WBT/[EMAIL PROTECTED]> wrote:

>  W> Теперь я не только уверен, что гуру M$ нельзя переучить на
>  W> FB (это и раньше подозревал), но даже вижу причины этого.
>
> Огласи весь список - просто интересно :) Можно в пятницу :)

Весь список - бесполезно. Забанят за такое количество слов :)
Вот из последнего:

select *
   from (select distinct id, date from table1) p
        join table2 t on t.id = p.id
/*  where p.id+0 = t.id and p.date+0 = p.date */

Добавление закомментированного "бесполезного" условия ускоряет запрос в два 
раза!
В моём случае, когда это был один из подзапросов, весь запрос ускорился в 240 
раз.

Практически в любой, даже самой простой группировке, где группировка 
осуществляется по индексированным полям, типа
select date, count(1)
   from table1
   group by date

добавление "having date = date" ускоряет выполнение на 10%
Если же группировка более сложная, то запрос может ускоряться в разы!

В общем, я тихо охреневаю с M$.

ЗЫ: Где-то в форуме обещают консультацию от тамошних "гуру", как работают такие 
трюки (объяснение), но я до туда ещё не дорешал. Так что пока делаю так - 
добавляю самые дебильные с моей точки зрения условия, какие только могу 
придумать - и производительность как правило улучшается. Уже несколько раз 
занимал верхние места в рейтинге по задаче :)

-- 
Сергей Смирнов.

Ответить