2015-08-24 6 views
1

Я пытался выяснить, какие агрегаты я могу использовать для создания индексированного представления. FYI: Я мог бы создать его с SUM(). Я также обнаружил, что не могу создать индексированный вид с MIN, MAX и AVG. Как насчет других? Возможно? Я не мог найти никакой информации в Интернете, также не мог заставить ее работать на моем компьютере.Какие типы агрегатов я могу использовать для создания индексированного представления

ответ

1

Согласно TechNet, скалярные агрегаты поддерживаются в индексированных представлениях. Что касается того, почему Min/Max не поддерживается, см. this answer.

3

sqlmag.com говорит:

Do Index Сортировка, группировка и Агрегирование Колонны

Кроме того, необходимо рассмотреть вопрос о индексации столбцов, которые используются по заказу и те, которые вы используете в группировке выражения. Вам может быть полезно проиндексировать столбцы, которые используются для объединения данных в функции MIN(), MAX(), COUNT(), SUM() и AVG(). Когда вы используете функции MIN() и MAX(), SQL Server выполняет простой поиск минимального и максимального значений в столбце, соответственно. Если значения данных индекса расположены в порядке возрастания, SQL Server может считывать индекс, чтобы быстро определить правильные значения MIN() или MAX(). Запрос диапазона значений включает в себя фильтр или ограничение (выраженное в предложении SELECT запроса WHERE или HAVING), чтобы ограничить строки, возвращаемые запросом. Аналогично, если у вас есть индекс, вы можете оптимизировать сортировку данных (используя предложение ORDER BY) и группировку данных (используя предложение GROUP BY), особенно если в таблице или таблицах, которые вы запрашиваете, содержится много строк.

Смежные вопросы