2016-08-25 14 views
1

У меня есть складской стол с около 600 000 строк и 20 столбцов. Количество рядов имеет тенденцию расти довольно быстро. Мне обычно нужно выполнить только этот запрос:Индекс столбцов в таблице склада при выборе всех столбцов

SELECT * FROM MyTable WHERE EventDate BETWEEN @Date1 AND @Date2 

В настоящее время у меня только что сгруппированный индекс на первичном ключе и не больше индексов. Этот запрос за год, который возвращает около 200 000 строк, выполняется около 6 минут, что для меня очень медленное. Может ли индекс columnstore помочь мне и по какому столбцу поставить его, какие столбцы включать?

+4

Не уверен, что это может помочь, но вы пробовали индексировать «EventDate»? – Moptan

ответ

0

Вы ищете кластерный индекс столбцов или индекс кластерного индекса в кластере? Если это индекс Clustered Columnstore, вы будете индексировать все столбцы. В нормальном сценарии вам может не потребоваться «Выбрать *», если вы хотите «выбрать *» для всех случаев? Тем не менее, если это кластерный столбец хранилища данных, то скорость работы будет быстрее.

Create clustered columnstore index CI_tbl on tablename 

Какую версию сервер sql вы используете? Эта функция доступна в SQL 2014, где в 2012 году вам может потребоваться использовать кластерный индекс столбцов.

+0

На самом деле я понял, что стандартный пользовательский уровень Azure, а индексы хранилища столбцов доступны только в классе премиум-класса. – bambi