SQL возвращается к таблице для извлечения данных при запросе индексированного представления - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь получить данные из таблицы, в которой 13 миллионов записей, используя нумерацию страниц.Я создал представление, которое отфильтровывает данные, которые я никогда не буду искать, и которое уменьшит количество записей до 1,2 млн.

    SELECT (...select fields),
    (SUM(...Value fields)),
    COUNT_BIG(*)
FROM TableA
INNER JOIN TableB ON TableB.column2 = TableA.Column1
    AND TableB.Type IN (0, 1, 2, 5)
    AND TableB.Status = 10
INNER JOIN TableC ON TableC.Column1 = TableB.Column3
INNER JOIN TableD ON TableD.Column1 = TableC.Column2
INNER JOIN TableE ON TableE.Column4 = TableD.Column2
INNER JOIN TableF ON TableF.Column1 = TableD.Column2
    WHERE TableA.Column5 = 5
    AND TableA.Column6 > convert(datetime, '2019-05-6', 120)
    GROUP BY (...select fields)

. Затем я проиндексировал его с помощью столбца первичного ключа TableA и первичного ключа.столбец таблицы B

CREATE UNIQUE CLUSTERED INDEX [IX_TRD_LTD_LiabilityTradeData] ON [dbo].[vw_TRD_LD_LiabilityData_v2]
(
[TradeTicket] ASC,
[MaturityDate] ASC,
[SecurityID] ASC,
OptionType ASC,
Portfolio ASC,
IndexDate ASC,
LegalEntity ASC,
DerLegalEntity
)

Индекс создан, и число извлекаемых записей составляет 1,2 миллиона записей.

Пока я читаю данные из этого представления с включенным планом выполнения запроса,План выполнения показывает, что для извлечения данных читается фактическая таблица.

Как настроить, чтобы не переходить к базовым таблицам и получать данные из представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...