У меня есть этот запрос, который выполняется вечно после объединения с запросом в представлении. До объединения требуется 2 минуты. Сам присоединенный запрос занимает 1 минуту. Вместе они шли по 20 с лишним минут.
Мои вопросы:
- Что можно сделать, чтобы этот запрос выполнялся быстрее, чем создание индекса для представления?
- Будет ли создание индекса выполнять этот запрос в разумные сроки?
Спасибо. Вот запрос:
DECLARE @year INT=2017;
WITH data AS (
SELECT M.Brand, M.SubBrand, M.Detail, S.Units, S.OB, [PRODUCTION_DATE] = RIGHT(S.DateId,2)
, [PRODUCTION_YEAR] = LEFT(S.DateId,4), [PRODUCTION_MONTH] = SUBSTRING(CONVERT(VARCHAR(10), S.DateId),5,2) FROM [fact].[Sales] V
LEFT JOIN [dim].[Material] M ON M.MaterialId = S.MaterialId
INNER JOIN (SELECT [MaterialId]
,[ROF]
,[OB]
FROM [Objectives].[load].[FactData_KPI_Sales_OB_ROF]
WHERE ROF > 0) RFOB ON RFOB.MaterialId = S.MaterialId
WHERE LEFT(S.DateId,4) > @year
)
SELECT Brand, SubBrand, Detail, [PRODUCTION_MONTH], [PRODUCTION_YEAR], OB, [01], [02], [03], [04], [05], [06], [07], [08], [09], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31]
FROM data
Pivot (
SUM(Units)
FOR [PRODUCTION_DATE] In
([01], [02], [03], [04], [05], [06], [07], [08], [09], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
) AS piv