Режим обновления по запросу для индексированного представления (=материализованные представления) на SQL Server?

Я знаю, что Oracle предлагает несколько вариантов режима обновления для своих материализованных представлений (по требованию, при фиксации, периодически). Предлагает ли Microsoft SQLServer такие же функции для своих индексированных представлений?

Если нет, то как еще я могу использовать индексированные представления на SQLServer, если моя цель состоит в том, чтобы экспортировать данные ежедневно + по требованию и я хочу избежать проблем с производительностью? Существует ли обходной путь?


person MOLAP    schedule 12.05.2010    source источник


Ответы (1)


Материализованное представление в SQL Server всегда актуально, с дополнительными затратами на операции INSERT/UPDATE/DELETE, которые влияют на представление.

Я не совсем уверен в том, что вам нужно, ваш вопрос мне не совсем ясен. Однако, если вам нужны накладные расходы только один раз, on a daily+ on-demand basis , я предлагаю вам удалить индекс, когда он вам не нужен, и воссоздать его, когда он вам понадобится. Индекс будет создан, когда вы его создадите, и тогда он будет актуальным. Когда индекс удален, ваши команды INSERT/UPDATE/DELETE не будут накладными.

person KM.    schedule 12.05.2010
comment
Спасибо за ответ. Чего я действительно хочу, так это той же функции в SQL Server, что и в Oracle. Это вариант обновления только по запросу, чтобы избежать накладных расходов. Но, насколько я понял, SQL-сервер не может этого поддерживать. Ваше предложение кажется выполнимым. Большой вопрос, конечно, заключается во времени построения нового индексированного представления каждый раз, когда я его создаю. Знаете ли вы, есть ли у SQL Server разные методы сборки на выбор? (Я знаю, что Oracle 1) заполняется при создании или 2) заполняется следующей операцией обновления) Я полагаю, что оператор DROP выполняется довольно быстро? - person MOLAP; 17.05.2010