Mise à jour de la vue matérialisée lorsque urderlying changement de tables

J'ai une vue matérialisée définie de cette manière:

CREATE MATERIALIZED VIEW M_FOO
REFRESH COMPLETE ON COMMIT
AS
    SELECT FOO_ID, BAR
    FROM FOO
    WHERE BAR IS NOT NULL
    GROUP BY FOO_ID, BAR
/

COMMENT ON MATERIALIZED VIEW M_FOO IS 'Foo-Bar pairs';

Je l'ai écrit comme une sorte de cache: la table source est énorme, mais le nombre de paires différentes est assez petite. J'ai besoin de ces paires pour les obtenir est Joint à d'autres tables. So far So good: il absolument des vitesses de requêtes.

Mais je veux faire en sorte que la vue ne contient pas de données obsolètes. La table sous-jacente est modifié de quatre ou cinq fois par mois, mais je n'ai pas forcément de savoir quand. Je comprends qu'une vue matérialisée peut être défini de telle sorte qu'il met à jour lorsque les tables source de changement. Cependant, les docs obtenir assez compliquer.

  1. Quelle est la syntaxe exacte j'ai besoin de
    utilisez?
  2. Dois-je créer un matérialisé
    afficher le journal?
  3. Quelle est la différence entre la vitesse
    et complet de rafraîchissement?

OriginalL'auteur | 2010-01-08