Je connais les vues indexées SQL Server (ou Oracle Materialized Views), nous les utilisons dans nos applications OLAP. Ils ont la caractéristique vraiment cool d'être capable d'usurper un plan d'exécution et de le remapper à la vue indexée sans avoir à changer le code existant.Vues indexées dans les tables OLTP?
IE. Disons que j'ai eu un SPROC qui était une jointure vraiment chère.
SELECT [QUELQUES COLONNES]
FROM Table1 INNER JOIN Table2 [Détails]
INNER JOIN Table3 [BUNCH PLUS REJOINT] ...
Si j'Authored une vue indexée qui a tenu une jeu de résultats similaire alors l'optimiseur de requête enverra très probablement le SPROC à ma vue indexée par opposition aux tables de base et j'obtiens une grande augmentation de la performance.
Dites maintenant que je voulais utiliser des vues indexées dans un OLTP !? Je veux dire que la plupart des OLTP (comme ce site) sont relativement lourdes en lecture, s'ils ont des jointures coûteuses alors nous pourrions les accélérer d'une tonne ET potentiellement réduire les conflits de verrouillage (http://www.codinghorror.com/blog/archives/001166.html). Mieux encore, vous n'avez pas besoin de changer de code, mais créez simplement la vue indexée.
Mais cela signifie aussi la base de données devient de plus car nous avons besoin de conserver une copie de ces données dans la vue indexée ...
Quelqu'un at-il déjà utilisé des vues indexées pour résoudre les problèmes de contention ou de vitesse dans un OLTP? Comment se fait-il que je n'ai jamais vu cela en cours d'utilisation?
Ces vues matérialisées ont-elles été créées dans le conteneur OLTP ou ont-elles été stockées ailleurs? Si elles ont été créées dans le système OLTP, quel a été l'impact sur la taille et les performances de la base de données? Est-ce que l'un de ces OLTP était sous une lourde charge ** avant que ** les vues matérialisées aient été placées? – Tyler
Ils étaient dans l'OLTP. Surtout parce que pousser tout sur le réseau sur un DBLink était encore pire que le coup sur les avoir sur le OLTP. L'utilisation devenait moche, et c'est pourquoi nous les avons construits. Ca s'est beaucoup mieux passé après qu'ils étaient en place. –