Изменения

Перейти к: навигация, поиск

Представления и их обновление

72 байта добавлено, 18:24, 23 декабря 2021
Комментарии в текст: примеры
== Синтаксис ==
<font color = blue>create view <font color = red>имя<font color = blue> as <font color = red>запрос<font color = green> -- объявление представления </font>
<font color = blue>drop view <font color = red>имя<font color = green> -- удаление представления по его имени</fontcolor = black>
==== Примеры ====
<font color = green> -- Представление для подсчета текущих средних цен в магазинах: </font> <font color = blue>create view <font color = black>AveragePrice(ShopId, AvgPrice) <font color = blue>as select <font color = black>ShopId, avg(Price) <font color = blue>from <font color = black>Prices</fontcolor = black>
<font color = green> -- Представление для получения названия магазина </font> <font color = green> -- с текущими ценами, на каждом из товаров: </font>
<font color = blue>create view <font color = black>ShopItem(SN, PN, P) <font color = blue>as select <font color = black>s.Name, i.Name, p.Price</font>
<font color = blue>from <font color = black>Shops s <font color = blue>natural join <font color = black>Prices p <font color = blue>natural join <font color = black>Items i<font color = black></font>
{{Определение
|id=def2
|definition='''Материализованное представление''' (МП) {{---}} в отличие от [[#def1 | представления]], является «слепком» данных на определенный момент времени, который хранящимся физически в виде отдельной таблицы и не изменяется при изменении базовой версии.
}}
Преимущества:
* быстрота выборки: МП материализованное представление может быть сформировано на основе сложного подзапроса, и, из-за того, что данные будут сохранены, этот запрос не будет пересчитываться повторно;
* возможность «фиксации» данных;
Недостатки:
* для работы с актуальными данными, появляется необходимость обновления МПматериализованное представление;
* физически хранимые данные могут занимать большие объемы памяти;
* <code>demand</code>: при вызове команды <code>refresh materialized view</code>;
<font color=blue>refresh materialized view <font color=red>имя</fontcolor = black>
==== Пример ====
<font color = green> -- МП Материализованное представление для подсчета текущих средних цен в магазинах, обновляемое раз в день:</font>
<font color=blue>create materialized view <font color=black>AveragePrice</font>
<font color=blue>refresh next <font color=black>dateadd(day, now(), 1)</font>
436
правок

Навигация