Доброго времени суток!
Разбираюсь с базой, пытаюсь оптимизировать некоторые узкие места. Наталкиваюсь всюду на конструкцию вида:
SELECT
t.[Field],
SUM(t.[SUM1]) AS [SUM1],
SUM(t.[SUM2]) AS [SUM2]
FROM (
SELECT
t1.Field1 AS [Field],
SUM(t1.Field2) AS [SUM1],
0 AS [SUM2]
FROM Table1 t1
GROUP BY t1.Field1
UNION ALL
SELECT
t2.Field12 AS [Field],
0 AS [SUM1],
SUM(t2.Field22) AS [SUM2]
FROM Table2 t2
GROUP BY t2.Field12
) t
GROUP BY t.[Field]
Т.е. из нескольких таблиц берутся некие агрегированные показатели, и из них составляется новая таблица. Насколько это грамотно сделано, нельзя ли постороить нечто подобное более оптимальным способом (избавится от агрегации на вернем этаже, например)?
Заранее спасибо!