REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW â замениÑÑ ÑодеÑжимое маÑеÑиализованного пÑедÑÑавлениÑ
СинÑакÑиÑ
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] имÑ
[ WITH [ NO ] DATA ]ÐпиÑание
REFRESH MATERIALIZED VIEW полноÑÑÑÑ Ð·Ð°Ð¼ÐµÐ½ÑÐµÑ ÑодеÑжимое маÑеÑиализованного пÑедÑÑавлениÑ. ÐÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑазÑеÑено вÑполнÑÑÑ ÑолÑко владелÑÑам маÑ. пÑедÑÑавлениÑ. СÑаÑое его ÑодеÑжимое пÑи ÑÑом аннÑлиÑÑеÑÑÑ. ÐÑли добавлено Ñказание WITH DATA (или Ð½ÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð³Ð¾), нижележаÑий запÑÐ¾Ñ Ð²ÑполнÑеÑÑÑ Ð¸ вÑдаÑÑ Ð½Ð¾Ð²Ñе даннÑе, Ñак ÑÑо маÑеÑиализованное пÑедÑÑавление оÑÑаÑÑÑÑ Ð² ÑканиÑÑемом ÑоÑÑоÑнии. ÐÑли Ñказано WITH NO DATA, новÑе даннÑе не вÑдаÑÑÑÑ, и оно оказÑваеÑÑÑ Ð² неÑканиÑÑемом ÑоÑÑоÑнии.
УказаÑÑ CONCURRENTLY вмеÑÑе Ñ WITH NO DATA нелÑзÑ.
ÐаÑамеÑÑÑ
CONCURRENTLYÐбновиÑÑ Ð¼Ð°ÑеÑиализованное пÑедÑÑавление, не блокиÑÑÑ Ð¿Ð°ÑаллелÑнÑе вÑбоÑки из него. Ðез данного паÑамеÑÑа обновление, заÑÑагиваÑÑее много ÑÑÑок, обÑÑно задейÑÑвÑÐµÑ Ð¼ÐµÐ½ÑÑе ÑеÑÑÑÑов и вÑполниÑÑÑ Ð±ÑÑÑÑее, но Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑепÑÑÑÑвоваÑÑ ÑÑÐµÐ½Ð¸Ñ ÑÑого маÑеÑиализованного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´ÑÑгими ÑеанÑами. ÐÑи ÑÑом даннÑй Ñежим Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±ÑÑÑÑее пÑи неболÑÑом колиÑеÑÑве ÑÑÑок.
ÐаннÑй паÑамеÑÑ Ð´Ð¾Ð¿ÑÑкаеÑÑÑ, ÑолÑко еÑли в маÑеÑиализованном пÑедÑÑавлении еÑÑÑ Ñ Ð¾ÑÑ Ð±Ñ Ð¾Ð´Ð¸Ð½ индекÑ
UNIQUE, поÑÑÑоеннÑй ÑолÑко по именам ÑÑолбÑов и вклÑÑаÑÑий вÑе ÑÑÑоки (Ñо еÑÑÑ ÑÑо не должен бÑÑÑ Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾ вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ индекÑ, ÑодеÑжаÑийWHERE).ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½ÐµÐ»ÑÐ·Ñ Ð¸ÑполÑзоваÑÑ, когда маÑеÑиализованное пÑедÑÑавление еÑÑ Ð½Ðµ наполнено.
Ðаже Ñ ÑÑим паÑамеÑÑом в один Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени допÑÑкаеÑÑÑ ÑолÑко одно обновление (
REFRESH) маÑеÑиализованного пÑедÑÑавлениÑ.имÑÐÐ¼Ñ (возможно, дополненное ÑÑ ÐµÐ¼Ð¾Ð¹) маÑеÑиализованного пÑедÑÑавлениÑ, подлежаÑего обновлениÑ.
ÐÑимеÑаниÑ
ÐÑли в запÑоÑе, опÑеделÑÑÑем маÑеÑиализованное пÑедÑÑавление, еÑÑÑ Ð¿Ñедложение ORDER BY, иÑÑ
одное ÑодеÑжимое маÑеÑиализованного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ ÑпоÑÑдоÑено ÑказаннÑм обÑазом; но REFRESH MATERIALIZED VIEW не гаÑанÑиÑÑÐµÑ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑÑого поÑÑдка.
ÐÑимеÑÑ
ÐÑа команда заменÑÐµÑ ÑодеÑжимое маÑеÑиализованного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ order_summary, иÑполÑзÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¸Ð· опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¼Ð°ÑеÑиализованного пÑедÑÑавлениÑ, и оÑÑавлÑÐµÑ ÐµÐ³Ð¾ в ÑканиÑÑемом ÑоÑÑоÑнии:
REFRESH MATERIALIZED VIEW order_summary;
ÐÑа команда оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´Ð°ÐµÑ Ð¿ÑоÑÑÑанÑÑво, ÑвÑзанное Ñ Ð¼Ð°ÑеÑиализованнÑм пÑедÑÑавлением annual_statistics_basis, и оÑÑавлÑÐµÑ ÑÑо пÑедÑÑавление в неÑканиÑÑемом ÑоÑÑоÑнии:
REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;
СовмеÑÑимоÑÑÑ
REFRESH MATERIALIZED VIEW â ÑаÑÑиÑение Postgres Pro.