Question

Quelqu'un peut-il s'il vous plaît me expliquer en anglais simple, comment un index sur une des œuvres de vue? J'ai une compréhension assez simple d'index sur les tables; comment serait l'indexation d'un travail de vue différent de simplement laisser les index sur les tables sous-jacentes faire leur chose naturellement?

Était-ce utile?

La solution

Disons que vous avez une vue qui limite la table à certaines lignes:

create view dbo.vw_HotProducts
as
select * from dbo.Products where Hot = 1

Maintenant, si vous créez un index sur ce point de vue, l'index ne contient que des produits chauds. Vous pouvez le comparer à stocker le résultat de la vue dans une table temporaire. Cela peut être très utile pour les requêtes complexes avec plusieurs jointures; essentiellement leur production est mise en mémoire cache.

Le grand inconvénient de vues indexées est qu'ils sont recréés à chaque fois que les données changent de table sous-jacente. Cela limite l'utilisation des vues indexées aux données qui ne change pas souvent, généralement dans un environnement d'entrepôt de données ou de business intelligence.

Autres conseils

Voir http://msdn.microsoft.com/ fr-fr / bibliothèque / aa258260 (SQL.80) .aspx

  

Création d'un index ordonné en clusters unique sur un   vue d'améliorer les performances des requêtes   parce que la vue est stockée dans la   base de données de la même manière une table avec   un index cluster est stocké.

La vue se transforme d'une vue correcte dans une table. La définition de la vue est utilisée pour mettre à jour ce tableau.

Oracle appelle ces "vues matérialisées".

Une vue par lui-même est pas réelle ou « persiste », et ne présente aucun avantage de performance. Il est tout simplement une macro que ça élargi.

Ajoutez un index et il existe physiquement (persisté), de sorte que le Optimiseur envisager de l'utiliser. Ce n'est pas une macro alors.

Je suis sûr que Oracle les appelle « vues matérialisées », qui est un meilleur nom.

Pour votre information liée: une colonne calculée a une option PERSISTED qui fait la même chose ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top