Использование индексированных представлений для извлечения данных - PullRequest
0 голосов
/ 22 марта 2011

Наше приложение имеет более сотни таблиц в своей базе данных SQL Server. Теперь мы хотим предоставить пользователям возможность писать запросы для определенных областей и извлекать данные. Поскольку текущая архитектура базы данных слишком сложна, я планирую создать набор упрощенных индексированных представлений и предоставить пользователям эти представления для написания запросов к ним.

Данные в таблицах меняются очень часто. Можно ли использовать индексированные представления для таких таблиц? Я не хочу делать эту функцию накладной на текущую функциональность.

Можете ли вы предвидеть какие-либо проблемы с этой процедурой?

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Любое индексированное представление приведет к увеличению производительности при вставке / обновлении таблиц (вставленные / обновленные данные также должны сохраняться в индексированном представлении).Исходя из вашего описания ваших требований, я бы начал с обычного представления и рассмотрел бы индексирование представления только в том случае, если это оправдано выполнением этих пользовательских запросов.

0 голосов
/ 24 марта 2011

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

Я выполнил запрос на обновление, который обновил 15000 записей.С индексированным представлением - 550 мс -650 мс
Без кластерного индекса - 250 мс - 280 мс

В нашей базе данных нет 100-секундной экономии в минуту.Поэтому я думаю, что индексированные представления подходят для нашего случая.

Спасибо!

...