Я знаком с SQL Server Indexed Views (или Oracle Materialized Views), мы используем их в наших приложениях OLAP. У них действительно отличная возможность узурпировать план выполнения и переназначить его в индексированное представление без изменения существующего кода.Индексированные представления в OLTPs?
IE. Предположим, у меня был SPROC, который был действительно дорогим соединением.
SELECT [Некоторые столбцы]
FROM Таблица1 INNER JOIN Table2 [ДАННЫЕ]
INNER JOIN [BUNCH Таблицу 3 MORE JOINS] ...
Если я автор индексированный мнение, что провел аналогичный набор результатов, то оптимизатор запросов, скорее всего, отправит SPROC в мое индексированное представление, а не в базовые таблицы, и я получаю большое увеличение производительности.
Теперь скажите, что я хотел использовать индексированные представления в OLTP !? Я имею в виду, что большинство OLTP (например, этот сайт) относительно прочны, если они имеют дорогостоящие соединения, тогда мы могли бы ускорить их до тонны и потенциально сократить конкуренцию блокировки (http://www.codinghorror.com/blog/archives/001166.html). Еще лучше, что вам не придется менять какой-либо код, просто создайте индексированное представление.
Но это также означает, что база данных становится больше, так как мы должны сохранить копию этих данных в индексированного представления ...
Кто-нибудь использовал индексированные представления для решения вопросов, разногласий или скорости в OLTP? Почему я никогда не видел этого в использовании?
Были ли эти материализованные представления созданы в OLTP или они были сохранены в другом месте? Если они были созданы в OLTP, это повлияло на размер и производительность базы данных. Если бы какой-либо из этих OLTP находился под большой нагрузкой ** до ** материализованные представления были подавлены? – Tyler 2008-09-11 19:51:04