Здравствуйте, _d_m_, Вы писали:
___>Здравствуйте, alico, Вы писали:
A>>A>>SELECT a.id, a.type, a.type_id, a.some_specific_fields,
A>> a.text AS a_text
A>> a.date AS a_date,
A>> g.text AS g_text,
A>> g.date AS g_date,
A>> n.text AS n_text,
A>> n.date AS n_date
A>>FROM archive p
A>>LEFT OUTER JOIN group_archive g ON (p.type_id = g.id AND p.type = 1)
A>>LEFT OUTER JOIN news_archive n ON (p.type_id = n.id AND p.type = 2)
A>>WHERE ISNULL(ISNULL(a.date, g.date), n.date) > 'December 01, 2006 00:00'
A>>ORDER BY p.id DESC
A>>
___>Ну вот здесь железно table-scan обеспечен
Во-первых задачи оптимизации не стояло. Может у него 200 записей на все таблицы — тогда овчинка оптимизации выделки не стоит.
Во-вторых можно отрезать заведомо неподходящие записи в условиях джойнов
В-третьих я бы копал структуру, а не запрос
ЗЫ. По моему имхо, Ваш вариант запроса тоже не избежит полного сканирования результата джойна