Question

J'ai plusieurs grandes tables que je dois copier dans des copies partitionnées sur une base de données transactionnelle.

Je suis inquiet du coup que cela causera de la performance de mes applications de production.

Pour tenter d'atténuer cela, je regarde le gouverneur de ressources.Je vais mettre mon script pour utiliser un pool de ressources limité à un processeur et de mémoire maximum de 5%.

La seule partie à ce sujet que je ne suis pas sûr d'être l'effet sur PLE.

Si je comprends bien, le choix de la table lit la valeur dans le cache.Cela va forcer quelque chose d'autre qui était dans le cache.(Le concept de base du PLE.) Mais les éléments «forcés» seront limités au 5% que j'ai spécifié?

Signification Après avoir utilisé les 5% de la mémoire, ne fermez-t-il que des articles mis en cache dans les mêmes 5%? (laissant les 95% non affectés.)

Une autre façon de demander ceci est la suivante: est la limite de mémoire de 5% de même que de dire une limite de cache de 5%?

Était-ce utile?

La solution

Cette page MSDN indique que les paramètres de mémoire n'affectent que la mémoire de la requête:

Piscine de ressources du gouverneur de ressources

min_memory_percent et max_memory_percent

Ces paramètres sont la quantité minimale et maximale de la mémoire réservée au pool de ressources qui ne peuvent pas être partagées avec d'autres pools de ressources. La mémoire référencée ici est la mémoire d'exécution de la requête, pas la mémoire de pool tampon (par exemple, les pages de données et d'index). Définition d'une valeur de mémoire minimale pour une piscine signifie que vous garantissez que le pourcentage de mémoire spécifié sera disponible pour toutes les demandes pouvant exécuter dans ce pool de ressources. Ceci est un différenciateur important par rapport à MIN_CPU_PERCENT, car dans ce cas, la mémoire peut rester dans le pool de ressources donné, même lorsque la piscine n'a aucune demande dans les groupes de charges de travail appartenant à ce pool. Par conséquent, il est crucial que vous soyez très prudent lors de l'utilisation de ce paramètre, car cette mémoire ne sera pas disponible pour une utilisation par tout autre pool, même lorsqu'il n'y a pas de demande active. Réglage d'une valeur de mémoire maximale pour une piscine signifie que lorsque les demandes sont exécutées dans ce pool, elles n'auront jamais plus que ce pourcentage de la mémoire.

Ce qui précède indique que le pool tampon est exclu des limitations de pool de ressources. Par conséquent, si vous souhaitez effectuer des actions pouvant être vidées de l'ensemble du pool tampon afin d'exécuter votre processus, vous voudrez peut-être vous assurer que le processus est couru pendant les heures excessives.

Ce qui suit est un extrait du blog MSDN, SQL Server Server Evénity :

page Espérance de vie (PLE) est la meilleure indication de la volatille de votre piscine tampon (BP). C'est un compteur de perfon, trouvé dans l'objet SQL Server: Buffer Manager Perfmon. Il existe également le nœud tampon: compteur d'espérance de vie de la page qui doit être pris en compte pour les systèmes NUMA, à l'aide de la même logique par nœud, car on le ferait sur un système non numa.

La volatilité est mesurée en prenant la moyenne de "vie" d'une page dans la piscine tampon (en secondes). Si une page est écrasée ou vieillie, elle commence une nouvelle vie.

Donc, si de nombreuses pages sont écrasées avec de nouvelles données très souvent, le PLE moyen sera faible et notre volatilité BP sera élevée.

Inversement Si la plupart des pages de notre BP restent là pendant une longue période sans être écrasée, le PLE moyen sera élevé et la volatilité BP sera faible.

Alors, pourquoi nous soucions-nous de la volatilité BP et du PLE? Que peut savoir la volatilité de BP pour nous? Qu'est-ce qu'un "bon" et "mauvais" figure Ple?

PLE peut être une mesure de la quantité physique io de votre serveur SQL. Espérons que j'ai attiré votre attention, car l'IO physique est une préoccupation majeure des performances, à la fois pour la lecture et l'écriture.

des questions dans les commentaires ici:

quelle est la "mémoire de la requête" et comment est-il différent du cache?

La mémoire de requête est utilisée pour l'exécution de requêtes. Il est temporairement utilisé pour des choses comme des sortes, Bitmap Create, des tables de hachage, etc. Le cache contient des données de table en mémoire.

Cela ressemble à la réponse à ma question est que le PLE ne sera pas protégé par le gouverneur des ressources du tout. Est-ce que ça sonne bien?

correct. L'espérance de vie de la page est tout sur la longue des pages de données dans la mémoire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top