Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Configuration de la mémoire et le dimensionnement des considérations dans SQL Server 2012 et les versions ultérieures

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 2663912
Résumé
Microsoft SQL Server effectue une gestion basée sur les besoins de mémoire actuels des composants internes de SQL Server et la charge de travail sur le système de mémoire automatique et dynamique. SQL Server offre également des options de configuration liées à la mémoire à l'aide de réglage précis pour les modèles de comportement d'application spécifique et des demandes spécifiques. Les différentes options de configuration sont les suivants :
  • options de sp_configure (max server memory (Mo), min server memory (Mo)et avec awe activé)
  • paramètre de démarrage -g (mémoire_à_réserver)
  • pages verrouillées

Microsoft SQL Server 2012 introduit des modifications qui affectent la façon dont les administrateurs configurent ces options de mémoire dans le Gestionnaire de mémoire. Consultez les modifications qui sont décrites ici avant de vous mettre à niveau vers SQL Server 2012 ou avant de configurer une nouvelle installation de SQL Server 2012.

Remarque Cet article s'applique également à Microsoft SQL Server 2014.
Plus d'informations
SQL Server 2012 introduit également des modifications dans la façon dont les types d'allocations de mémoire spécifiques sont prises en compte et les options de configuration de mémoire qui contrôlent la quantité maximale de mémoire qui peut être utilisé par ces types d'allocations. Les modifications apportées à SQL Server 2012 sont spécifiques à des demandes d'allocation de mémoire de SQL CLR et des allocations multi-page. SQL Server 2012 a un allocateur de page nouvelle qui gère les allocations de page unique ou de plusieurs pages (inférieur à 8 Ko et plus de demandes d'allocation 8 Ko). Il n'est par conséquent, aucune catégorie distincte « allocations multi-page » dans SQL Server 2012.

Modifications apportées à "max server memory (Mo)" et "min server memory (Mo)"

Dans les versions antérieures de SQL Server (SQL Server 2005, SQL Server 2008 et SQL Server 2008 R2), les options de configuration suivantes déterminé les limites de mémoire physique que le pool de tampons utilisé. Notez que nous parlons de mémoire physique dans ce cas, la mémoire physique qui est validée par le processus du moteur de base de données SQL Server :
  • max server memory (Mo)
  • min server memory (Mo)
Thisconfiguration option inclus généralement seulement les allocations de mémoire qui est inférieure ou égale à 8 Ko dans le processus SQL Server. Ces allocations werealso appelé « single_page_allocations », car le Gestionnaire de mémoire SQL Server utilisé une taille de page de 8 Ko. Cette configuration n'offrait pas les demandes d'allocation de mémoire suivantes :
  • Allocations multi-page à partir de SQL Server : il s'agit des allocations qui demandent plus de 8 Ko.
  • Allocations de CLR : ces allocations comprennent le CLR SQL tas et ses allocations globales qui sont créées lors de l'initialisation du CLR.
  • Allocations de mémoire pour les piles de threads dans le processus SQL Server.
  • Les demandes d'allocation de mémoire effectuées directement à Windows : ceux-ci incluent l'utilisation du tas de Windows et des allocations virtuelles directes effectuées par des modules qui sont chargés dans le processus SQL Server. Exemples de telles demandes d'allocation de mémoire allocations à partir de procédures stockées étendues DLL, les objets qui sont créés à l'aide de procédures d'automatisation (appels sp_OA) et allocations à partir de fournisseurs de serveur lié.

À partir de SQL Server 2012, allocations multi-page et allocations de CLR sont également incluses dans les limites de mémoire qui sont contrôlées par l'option max server memory (Mo) et min server memory (Mo). Cette modification fournit une capacité de redimensionnement plus précise pour toutes les demandes de mémoire passent par le Gestionnaire de mémoire de SQL Server. Examinez attentivement vos valeurs max server memory (Mo) et min server memory (Mo) en cours une fois que vous mettez à niveau vers SQL Server 2012. Vous devez vérifier ces valeurs, car SQL Server 2012 maintenant inclut les comptes et pour plusieurs allocations de mémoire par rapport aux versions antérieures. Ces modifications s'appliquent aux versions 32 bits et de 64 bits de SQL Server 2012.

Le tableau suivant indique si un type spécifique d'allocation de mémoire est contrôlé par les options de configuration max server memory (Mo) et min server memory (Mo).
Type d'allocation de mémoireSQL Server 2005, SQL Server 2008, SQL, Server 2008 R2SQL Server 2012, SQL Server 2014
Allocations de page uniqueOuiOui, consolidées dans les allocations de page « taille »
Allocations multi-pageNonOui, consolidées dans les allocations de page « taille »
Allocations de CLRNonOui
Mémoire de piles de threadNonNon
Allocations directes à partir de WindowsNonNon
SQL Server 2012 et les versions ultérieures peuvent allouer plus de mémoire que celle qui est spécifiée dans le paramètre del'option max server memory. Ce problème peut se produire lorsque la valeur de laMémoire totale du serveur (Ko)a déjà atteint le paramètre deMémoire du serveur cible (Ko)(comme spécifié parl'option max server memory). Si contigue libre la mémoire est insuffisante pour répondre à la demande de demandes de mémoire de plusieurs pages (plus de 8 Ko) en raison de la fragmentation de la mémoire, SQL Server peut effectuer surengagement au lieu de rejet de la demande de la mémoire.

Dès que cette répartition est effectuée, le moniteur de ressources commence à libérer la mémoire allouée et essaie de mettre la belowthe de valeur des spécifications de Mémoire du serveur cible (Ko)De mémoire totale du serveur (Ko). Par conséquent, l'utilisation mémoire de SQL Server a pu brièvement définie de la exceedthe mémoire maximale du serveur. Dans ce cas, la lecture de compteur de performancesMémoire totale du serveur (Ko)dépassent lamémoire maximale du serveuret les paramètres de laMémoire du serveur cible (Ko) .

Ce comportement est généralement observé pendant les opérations suivantes :
  • Grandes requêtes d'index Columnstore
  • L'index ColumnStore (re) crée, des volumes importants de mémoire qui permet d'effectuer des opérations de hachage et de tri
  • Opérations de sauvegarde qui nécessitent des tampons de mémoire de grande capacité
  • Suivi des opérations qui ont pour stocker des paramètres d'entrée importants

Mise à jour cumulative 8 pour SQL Server 2014 et Mise à jour cumulative 1 pour SQL Server 2014 SP1introduit une amélioration apportée à la version de mémoire plus rapide, comme décrit dans la rubrique de présentation. En outre,Mise à jour cumulative 9 pour SQL Server 2014résoudre un problème d'allocation de mémoire qui implique le surengagement. Pour plus d'informations, consultez les articles suivants de la Base de connaissances Microsoft :
Pour plus d'informations sur les parties de la mémoire qui sont contrôlés par le paramètre del'option max server memory, voir le Options de Configuration de serveur de mémoire serveur Rubrique de documentation en ligne.

Modifications apportées à « mémoire_à_réserver »


Dans les versions antérieures de 32-bit SQL Server (SQL Server 2005, SQL Server 2008 et SQL Server 2008 R2), le Gestionnaire de mémoire SQL Server jachère une partie de l'espace d'adressage virtuel du processus pour une utilisation par les requêtes d'allocation suivantes :
  • Allocations multi-page à partir de SQL Server : il s'agit des allocations qui demandent plus de 8 Ko.
  • Allocations de CLR : ces allocations comprennent le CLR SQL tas et ses allocations globales qui sont créées lors de l'initialisation du CLR.
  • Allocations de mémoire pour les piles de threads dans le processus SQL Server.
  • Les demandes d'allocation de mémoire effectuées directement à Windows : ces demandes d'allocation incluent l'utilisation du tas de Windows et des allocations virtuelles directes effectuées par des modules qui sont chargés dans le processus SQL Server. Exemples de telles demandes d'allocation de mémoire allocations à partir de procédures stockées étendues DLL, les objets qui sont créés à l'aide de procédures d'automatisation (appels sp_OA) et allocations à partir de fournisseurs de serveur lié.

L'espace d'adressage virtuel réservé pour ces allocations est déterminé par l'option de configuration mémoire_à_réserver . SQL Server utilise la valeur par défaut est de 256 Mo. Pour substituer la valeur par défaut, utilisez le paramètre de démarrage de SQL Server -g . Cette partie de l'espace d'adressage virtuel est également appelé « Mémoire à laisser » ou « Région du Pool de tampons non-».

Étant donné que SQL Server 2012 a nouveau l'allocateur de page « taille » qui gère les allocations supérieures à 8 Ko, la valeur de mémoire_à_réserver n'inclut pas les allocations de plusieurs pages. À l'exception de cette modification, tout le reste demeure identique avec cette option de configuration.

Le tableau suivant indique si un type spécifique d'allocation de mémoire se situe dans la région mémoire_à_réserverde l'espace d'adressage virtuel du processus SQL Server.
Type d'allocation de mémoireSQL Server 2005, SQL Server 2008, SQL Server 2008 R2SQL Server 2012, SQL Server 2014
Allocations de page uniqueNonNon, consolidées dans les allocations de page « taille »
Allocations multi-pageOuiNon, consolidées dans les allocations de page « taille »
Allocations de CLROuiOui
Mémoire de piles de threadOuiOui
Allocations directes à partir de WindowsOuiOui

Modifications apportées aux autres options de configuration liées à la mémoire

Si vous avez configuré SQL Server 2005, SQL Server 2008 ou SQL Server 2008 R2 pour utiliser l'option « awe activé », veuillez consulter l'article suivant pour comprendre les modifications importantes pour cette option de configuration :

Si vous avez configuré SQL Server 2005, SQL Server 2008 ou SQL Server 2008 R2 pour utiliser la fonctionnalité « pages verrouillées », veuillez consulter l'article suivant pour comprendre les modifications importantes pour cette option de configuration :

Utilisation de la mémoire maximale pour les différentes éditions de SQL Server

Différentes éditions de SQL Server ont des limites maximales de diverses ressources, qu'ils peuvent utiliser. Il existe des limites appliquées sur l'utilisation de mémoire maximale pour les différentes éditions de SQL Server. Par exemple, une instance de SQL Server 2008 R2 Standard Edition peut utiliser uniquement une mémoire maximale de 64 Go. Pour plus de détails, accédez à la page Web MSDN suivante :À partir de SQL Server 2012, ces limites de mémoire sont appliquées uniquement pour le cache de base de données (pool de mémoire tampon). Le reste des caches dans le Gestionnaire de mémoire de SQL Server peut utiliser plus de mémoire que celle spécifiée par ces limites d'édition. Par exemple, une édition de SQL Server 2012 Express peut utiliser uniquement une taille maximale de 1,4 Go pour son cache de base de données. Autres caches (par exemple, le cache de procédure, le cache des métadonnées et ainsi de suite) peuvent consommer de la mémoire jusqu'à la taille spécifiée par la configuration « max server memory ».

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 2663912 - Dernière mise à jour : 11/06/2015 21:16:00 - Révision : 6.0

Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2014 Enterprise

  • kbtshoot kbmt KB2663912 KbMtfr
Commentaires
cript> y: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">p;did=1&t=">