file="foo"
if [[ -e "$file" ]]; then echo "File Exists"; fi;
Допустим, у вас есть представление, которое ограничивает таблицу определенными строками:
create view dbo.vw_HotProducts
as
select * from dbo.Products where Hot = 1
Теперь, если вы создаете индекс для этого представления, индекс будет содержать только горячие продукты. Вы можете сравнить это с сохранением результата просмотра во временной таблице. Это может быть очень полезно для сложных запросов с несколькими соединениями; в основном их вывод кэшируется.
Большой недостаток индексированных представлений состоит в том, что они воссоздаются каждый раз при изменении данных базовой таблицы. Это ограничивает использование индексированных представлений данными, которые не часто меняются, обычно в хранилище данных или в среде бизнес-аналитики.
См. http://msdn.microsoft.com/en-us/library/aa258260 (SQL.80) .aspx
. Создание уникального кластеризованного индекса для представление повышает производительность запросов, поскольку представление хранится в базе данных так же, как таблица с кластеризованным индексом.
Представление преобразуется из правильного представления в таблицу. Определение представления используется для обновления этой таблицы.
Oracle называет эти «материализованные взгляды».
Представление само по себе не является реальным или "постоянным" и не дает преимущества в производительности. Это просто расширенный макрос .
Добавьте индекс, и он физически существует (сохраняется), поэтому оптимизатор рассмотрит возможность его использования. Значит, это не макрос.
Я уверен, что Oracle называет их «материализованными представлениями», что является более подходящим названием.
Связанная информация: вычисляемый столбец имеет параметр PERSISTED, который делает то же самое ...