2009-10-06 7 views
2

Oracle, quels sont les avantages et les inconvénients de l'utilisation de vues matérialisées et d'espaces de travail analytiques? Quelles sont les meilleures pratiques entourant l'utilisation de ces fonctionnalités?Vues matérielles Oracle et espaces de travail analytiques

Nous avons un système OLTP, mais aimerions également accéder à des informations récapitulatives dans des rapports et des outils interactifs d'aide à la décision.

Répondre

3

Je n'ai jamais utilisé d'espaces de travail analytiques non plus, mais il y a quelques inconvénients réels aux MV (bien que nous les utilisions). Choses de couple:

  1. ce sont, en effet, des tables. Cela signifie qu'ils prennent de l'espace. Dans certaines de nos situations, nous les utilisons pour aider à accéder aux données distantes sur des tables contenant des millions de lignes. Les vues sont des résultats de requête et virtuelles. Les MV sont réels (il y a de vraies lignes, pas de structures de mémoire). L'un des autres problèmes que nous avons rencontrés est que, souvent, lorsqu'un MV échoue à l'actualisation, il n'essaie plus jamais de se régénérer.
    Pour nous, nous pensons que cela se passe dans deux situations:

    • dans le cas d'un système distant, si la connexion à ce système à distance est tombé lors d'un rafraîchissement, le MV ne peut jamais rafraîchir à nouveau et peut-être être abandonné et reconstruit.
    • La même chose semble se produire si l'une des tables du MV est basée sur la structure des changements. Ainsi, par exemple, j'ai un MV qui est construit en utilisant la requête "select * from mywork". À un certain point, j'émets une commande alter pour changer la colonne FirstName de varchar2 (100) à varchar2 (150). À ce stade, nous voyons souvent les rafraîchissements MV échouer et ne jamais récupérer.

Les détails ne sont pas vraiment importants, ce qui est important est que vous aurez certainement à surveiller vos MVs pour vous assurer que leurs données sont à jour.

1

Je n'ai pas utilisé d'espaces de travail analytiques, donc je ne peux pas leur parler. Cependant, les vues matérialisées peuvent être très utiles. Ils sont essentiellement des résultats de vue en cache que vous pouvez faire des choses telles que la construction d'index sur. Selon la façon dont ils sont configurés (avec ou sans journaux), ils peuvent devenir obsolètes par rapport aux données «en direct», mais ils sont nettement plus rapides (en fonction de vos données et requêtes).

Si vous traitez avec des données distantes (liens de base de données), les vues matérialisées vous permettent de mettre en cache les données localement. Si vous effectuez des calculs lents sur les données, les vues matérialisées peuvent vous permettre de mettre en cache les résultats (qui peuvent être obsolètes).

Les vues matérialisées peuvent être très utiles, elles doivent simplement être mises en œuvre judicieusement.

Questions connexes