Avantage d'utiliser un instantané de base de données à des fins de génération de rapports


8

Quel est l'avantage en termes de performances de l'utilisation d'un instantané d'une base de données à des fins de génération de rapports?

À mon avis, cela dégraderait probablement les performances, car pour chaque écriture dans la base de données d'origine, une autre écriture devrait être effectuée pour l'instantané lui-même.

Je peux voir que vous utiliseriez des instantanés chaque fois que vous souhaitez faire des rapports de données jusqu'à ce point, mais cela ne tombe pas dans la catégorie de performance.

Encore une fois, y a-t-il un avantage de performance?

Réponses:


7

L'utilisation d'un instantané de base de données situé sur votre serveur OLTP de production va vraisemblablement aggraver les performances. Il y a deux principales raisons:

  1. Frais généraux d'écriture supplémentaires. Les instantanés sont des copies sur écriture, donc cela aura évidemment un impact sur les performances.

  2. Un instantané partagera les pages de l'ancienne base de données sur le disque, mais il utilise sa propre mémoire dans le pool de mémoire tampon. Si vous avez une grande table, elle finira par consommer de la mémoire pour la base de données OLTP et l'instantané, même pour les pages non modifiées. Vous pouvez vous retrouver avec beaucoup d'utilisation de mémoire supplémentaire à cause de cela, ce qui peut entraîner plus d'E / S disque si votre serveur n'a pas beaucoup de RAM libre.

Donc, si vous essayez de rendre les rapports moins intrusifs sur un seul serveur, vous feriez probablement mieux d'interroger la base de données OLTP et d'utiliser des indications WITH (NOLOCK), puis de régner les choses avec le gouverneur de ressources si nécessaire. Au-delà de cela, examinez une sorte de système évolutif (envoi de journaux, mise en miroir, etc.)


Je suis d'accord que l'instantané peut aggraver les choses, mais si vous utilisez 2008 R2, l'indice NOLOCK ne fait rien pour améliorer les performances OLTP lorsque vous signalez. stackoverflow.com/questions/15770402/…
James Jenkins

1

Le seul avantage en termes de performances que je peux constater en utilisant des instantanés de base de données est que les problèmes de verrouillage et de blocage sont considérablement réduits lors de l'utilisation d'un instantané pour la génération de rapports.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.