У меня есть запрос:Как создать индекс для КТР
With Cte as (some code)
Select *
from Cte
order by id
Могу ли я создать индекс для этого КТР?
Я использую ms SQL Server 2005
Спасибо.
У меня есть запрос:Как создать индекс для КТР
With Cte as (some code)
Select *
from Cte
order by id
Могу ли я создать индекс для этого КТР?
Я использую ms SQL Server 2005
Спасибо.
Как указано выше Индексы не могут быть добавлены в CTE.
Однако в CTE выбор добавления предложения ORDER BY на объединенные поля может сократить время выполнения.
Вам необходимо также ДОБАВИТЬ ВЫБРАТЬ ТОП 100 ПРОЦЕНТОВ, чтобы разрешить выбор ORDER BY в CTE.
Вы можете рассмотреть возможность использования материализованного/индексированного представления в качестве underlyer вместо CTE. Это потребует, чтобы вы создали DDL заранее, но если производительность запроса важна, это может быть помощь. Кроме того, имейте в виду, что вы не сможете изменить базовые таблицы из-за требования к схемам.
Вы не можете добавить индекс в cte. http://stackoverflow.com/questions/3995958/adding-an-index-to-a-cte –
Вы не можете, CTE как динамический вид внутри оператора. Вероятно, вам нужно создать временную таблицу и проиндексировать ее. –
CTE не создает временную таблицу или что-то, что можно проиндексировать. он будет использовать индексы таблицы во время ее выполнения. –