Il peut être pas suffisamment de mémoire virtuelle lorsque vous avez un grand nombre de bases de données dans SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 316749 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Peut il ne pas être suffisamment espace d'adressage virtuel disponible dans le processus de Microsoft SQL Server si toutes les conditions suivantes sont remplies lorsque vous exécutez SQL Server avec la valeur par défaut les valeurs de configuration :
  • Le serveur dispose de 2 Go ou plus de mémoire vive (RAM).
  • Il existe un nombre important de bases de données sur le système (par exemple, plus de 500).
  • La plupart des bases de données est mises à jour (par exemple, les bases de données ne pas avoir un état « lecture seule).
  • Il sont suffisamment connexions utilisateur actives simultanément aux utiliser la plupart des 255 threads de SQL Server.
SQL Server peut générer des messages d'erreur suivants s'affiche après que l'espace d'adressage virtuel de 2 Go tout est utilisé jusqu'à (ou après que l'espace d'adressage virtuel 3 Go entier est utilisé jusqu'à sur SQL Server Enterprise Edition avec le /3 GB commutateur dans le fichier Boot.ini).

Le message 1

Erreur : 17802, gravité : 18, état: 3
Impossible de créer le thread d'événements serveur.

Message 2

SQL Server peut générer pas process_loginread thread.

Le message 3

Avertissement : Effacement cache de procédure pour libérer la mémoire contiguë.

Distribution de la mémoire tampon : occultées = 3454 gratuits = 2540 procédures = 138
Inram = 0 = intègre 1108 actualisation = 35
J'ai/O=0, Latched = 0, autre = 214821
Nombre de mémoire tampon : engagée = cible 222096 = 222096 haché = 215964
InternalReservation = ExternalReservation 547 = 0 min gratuits = 512
Cache de procédure : TotalProcs = TotalPages 8 = InUsePages 138 = 138
Gestionnaire de mémoire dynamique : occultées = 3556
Système d'exploitation = grand 497 = 1706
Plan de requête = Optimiseur 755 = 0
Utilitaires = connexion 9 = 1583
Objets mémoire global : ressource = 1119 verrous = XDES 163 = 1 SQLCache = 90 réplication = 5 LockBytes = ServerGlobal 2 = 20
Autorise le Gestionnaire de mémoire de requête: = 0 en attente = 0 maximum = 164370 disponible = 164370

Cause

Pour chaque base de données mis à jour SQL Server alloue au moins un bloc de 64 Ko pour une utilisation dans mise en forme enregistrements du journal avant qu'ils sont écrits sur le disque. Cette répartition se produit lorsque le premier enregistrement de journal est généré pour la base de données, tels que pendant une instruction INSERT, UPDATE ou DELETE. En fonction de l'activité et la taille des enregistrements journal généré, les modifications suivantes peuvent déclencher l'allocation d'autres allocations de 64 Ko. SQL Server 7.0 est allouer plus de trois blocs de 54 Ko. Dans SQL Server 2000, le nombre supérieur d'affectations pour chaque base de données est une fonction du nombre de processeurs que SQL Server est configuré pour utiliser.

Contournement

Utilisez la -g paramètre de démarrage pour laisser supplémentaire non réservée mémoire virtuelle disponible pour ces de base de données ventilations. Le -g paramètre est documentée dans le ReadMe.txt de SQL Server 7.0 service pack et en ligne de SQL Server 2000. Le « plus d'informations » section de cet article contient les paramètres recommandés par Microsoft vous utiliser pour déterminer la valeur appropriée pour ce paramètre.

Plus d'informations

Sur un ordinateur 2 Go ou plusieurs de mémoire vive (RAM), SQL Server réserve tous les mais 256 Mo (SQL Server 7.0) ou 384 Mo (SQL Server 2000) d'espace d'adressage virtuel pendant le processus de démarrage pour une utilisation par le pool de tampons. En outre, au stockage du cache de données et la procédure, SQL Server utilise la mémoire de pool de mémoire tampon pour la plupart des autres demandes de mémoire de processus SQL Server qui sont inférieures à 8 Ko. La mémoire non réservée restante est destinée aux autres allocations qui ne peut pas être traitée du pool de mémoire tampon. Ces ventilations incluent, mais existe pas limitées à :
  • Piles et le bloc d'environnement thread associé pour les threads qui crée de SQL Server. Après que SQL Server crée tous les threads 255, cela est d'environ 140 Mo.
  • Allocations qui sont apportées par les autres DLL ou de processus qui exécutent dans l'espace d'adressage SQL Server (qui varie de système), telles que :
    • Fournisseurs OLE DB à partir de n'importe quel serveurs liés.
    • Objets COM qui sont chargés par utiliser le système sp_OA procédures stockées ou procédures stockées étendues.
  • Procédures stockées toutes les images (.exe ou .dll) qui sont chargés dans l'espace d'adressage, qui souvent appliquer 20 à 25 Mo, mais peut-être plus si vous utilisez serveurs liés, sp_OA , ou étendu.
  • Le segment du processus et les autres segments SQL Server peut créer. Pendant le processus de démarrage, il est généralement 10 Mo, mais peut être plus si vous utilisez serveurs liés, sp_OA et les procédures stockées étendues.
  • Allocations de processus SQL Server qui sont supérieures à 8 Ko, telles que celles requises pour les plans de requête importante, envoyez et recevez tampons si l'option de configuration réseau de taille de paquet est proche 8 Ko et ainsi de suite. Pour afficher ce numéro, recherchez la valeur réservée du système d'exploitation qui est signalée dans DBCC MEMORYSTATUS et qui est signalée comme nombre de pages de 8 Ko. Valeurs standard pour ce sont 5 Mo.
  • Un tableau pour suivre les informations de statut pour chaque mémoire tampon qui se trouve dans le pool de tampons. Il s'agit généralement environ 20 Mo, sauf si SQL Server est exécuté avec adresse fenêtrage Extensions (AWE) activé, auquel cas il peut être beaucoup plu.
Sur les systèmes qui ont un grand nombre de bases de données, les allocations de 64 Ko sont requises pour journal de mise en forme peuvent occuper toute la mémoire virtuelle restante. À ce stade, les affectations suivantes peuvent échouer, entraînant une ou plusieurs des erreurs qui sont répertoriés dans la « Symptômes » de cet article section de cet article.

À l'aide de la -g paramètre de démarrage, vous pouvez indiquer à SQL Server pour conserver mémoire virtuelle supplémentaire disponible pour la combinaison de ces affectations liées de journal et autres allocations normales ne s'exécute pas hors de l'espace d'adressage virtuel.

Suivantes table listes certains suggérés début points pour le -g valeur suivant sur le nombre de bases de données et la version du serveur :
Réduire ce tableauAgrandir ce tableau
Bases de donnéesSQL Server 7.0SQL Server 2000
250-g134 N / A
500-g185 N / A
750-g237 N / A
1000-g288 -g288
1250-g340 -g340
1500-g392 -g392
Cette table a été calculée à l'aide les valeurs standard qui sont répertoriées et il est également basé sur l'hypothèse aucune activité du serveur lié, sp_OA ou les procédures stockées étendues sont en cours d'utilisation. Il est également basé sur l'hypothèse que vous n'utilisez pas les extensions de fenêtrage d'adresse (AWE, Address Windowing Extensions) et ce générateur de profils n'est pas en cours d'utilisation. Une de ces conditions pouvant vous obliger à augmenter la valeur de -g .

Microsoft vous recommande d'appliquer grave considération avant d'exécuter un serveur avec plusieurs bases de données que cela car la surcharge est requise pour avoir ce nombre de bases de données sur le système prend beaucoup de mémoire virtuelle du pool de mémoire tampon, qui peut entraîner faibles performances pour le système dans son ensemble loin de.

En outre, création de beaucoup de bases de données a pour effet plus significative de mémoire virtuelle. Il existe également par base de données allocations de mémoire qui peuvent provoquer une condition tampon pool de mémoire insuffisante. Par exemple, vous pouvez recevoir le message d'erreur suivantes :
Erreur : 701, gravité : 17, état : 123.
Mémoire système insuffisantes pour exécuter cette requête est.
Ce type de condition de mémoire insuffisante peut être plus courant dans SQL Server 2005 car SQL Server 2005 effectue le suivi plus par base de données de métadonnées que les versions antérieures de SQL Server.

Lorsque vous suivez l'utilisation de l'index en utilisant la procédure sys.dm_db_index_usage_stats stockées, l'opération peut nécessiter une quantité significative de mémoire. L'opération nécessite une quantité significative de mémoire si chaque base de données comporte beaucoup d'index.

Propriétés

Numéro d'article: 316749 - Dernière mise à jour: mercredi 28 février 2007 - Version: 11.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 7.0 Standard
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
Mots-clés : 
kbmt kberrmsg kbtshoot kbnofix kbprb KB316749 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 316749
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com