DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 328551 - Dernière mise à jour: vendredi 13 mars 2009 - Version: 12.0

 
 
BOGUE #: 362099 (SHILOH_BUGS)

Sommaire

Symptômes

Lorsque la base de données tempdb est largement utilisée, SQL Server pouvez rencontrer contention lorsqu'il tente d'allouer des pages.

De la sortie de table système sysprocesses , la waitresource peut afficheront en tant que " 2: 1: 1 (PFS (Perfect Forward Secrecy) page) ou « 2: 1: 3" (page SGAM). Selon le degré de contention, cela peut également conduire à SQL Server affichage qui ne répond pas pour les périodes court.


Ces opérations utilisent beaucoup tempdb :
  • Répété créer et de dépôt de temporaire tables (locale ou globale).
  • Variables de table qui utilisent tempdb à des fins de stockage.
  • Utiliser tables associés aux curseurs.
  • Utiliser tables associés à une clause ORDER BY.
  • Utiliser tables associés à une clause GROUP BY.
  • Les fichiers associés HACHAGE PLANS de travail.
Épaisse et significatif Utilisation de ces activités peut conduire à des problèmes de contention.

Cause

Lors de la création d'objet, les deux (2) les pages doivent être allouées à partir d'une extension mixte et affectés au nouvel objet. Une page est pour l'index IAM (Allocation Table) et le second est de la première page de l'objet. SQL Server effectue le suivi mixtes étendues en utilisant le partagés global affectation carte (SGAM) page. Chaque page SGAM assure le suivi des 4 gigaoctets de données.

Dans le cadre d'affectation une page de l'étendue mixte, SQL Server doit analyser la page page libre espace (SECRECY) pour savoir quelle page mixte est libre d'être affecté. La clé PFS page effectue le suivi des espace libre disponible sur chaque page, et chaque page PFS (Perfect Forward Secrecy) suit environ 8 000 pages. Synchronisation approprié est conservée pour modifier les pages PFS (Perfect Forward Secrecy) et SGAM ; et qui peut place autres modificateurs pour les périodes court.

Lorsque SQL Server recherche d'une page mixte allouer, il démarre toujours l'analyse sur la page SGAM et même fichier. Il en résulte intense contention sur la page SGAM lorsque plusieurs mixtes page allocations sont en cours, qui peut provoquer les problèmes décrit dans la section « Symptômes » de cet article.

note Activités de-Allocation doivent également modifier les pages, qui peuvent contribuer à la contention accrue.

Pour en savoir plus sur les mécanismes de ventilation différents utilisés par SQL Server (SGAM GAM PFS (Perfect Forward Secrecy), IAM), reportez-vous à la section "Références" de cet article.

Résolution

Pour réduire la contention de ressource allocation de tempdb qui rencontre l'utilisation de grosse, procédez comme suit toutes les :
  1. Pour les serveurs qui exécutent SQL Server 2000 Service Pack 3 (SP3), appliqué le correctif 8.00.0765 ou la dernière sécurité corriger 8.00.0818. Pour les serveurs qui exécutent SQL Server SP2, appliquez le correctif 8.00.0702.

    Ces correctifs sont disponibles à partir des emplacements suivants :

    8.00.0765
    814916  (http://support.microsoft.com/kb/814916/ ) CORRECTIF : Agent de fusion pour une publication filtrée peut échouer
    8.00.0818
    http://www.microsoft.com/technet/security/bulletin/MS03-031.mspx (http://www.microsoft.com/technet/security/bulletin/MS03-031.mspx)
    8.00.0702
    328551  (http://support.microsoft.com/kb/328551/ ) CORRECTIF : les améliorations de simultanéité pour la base de données tempdb
  2. Implémenter l'indicateur de suivi -T1118 .

    note Indicateur de suivi -T1118 est également disponible et pris en charge dans Microsoft SQL Server 2005 et SQL Server 2008. Toutefois, si vous exécutez SQL Server 2005 ou SQL Server 2008, vous êtes inutile d'appliquer n'importe quel correctif.
  3. Augmentez le nombre des fichiers de données tempdb au moins égal au nombre de processeurs. En outre, créer les fichiers avec taille égale. Pour plus d'informations, reportez-vous à la section « Plus d'informations ».
note Ces étapes s'appliquent également à Microsoft SQL Server 7.0. La seule exception est qu'il n'y a aucun correctif pour SQL Server 7.0 ; par conséquent, l'étape 1 ne s'applique pas.

With regard to étape 2, l'utilisation de l'indicateur de suivi - T1118 pour Microsoft SQL Server 7.0, avant de pouvoir utiliser l'indicateur de trace, consultez l'article suivant dans la Base de connaissances :
813492  (http://support.microsoft.com/kb/813492/ ) CORRECTIF : créer des index échoue sur SQL Server 7.0 lorsque l'indicateur de suivi 1118 est activé

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le dernier service pack Microsoft SQL Server 2000. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
290211  (http://support.microsoft.com/kb/290211/ ) Comment obtenir le dernier pack de service SQL Server 2000

Informations sur le correctif

Correctif 8.00.0702

La version anglaise de ce correctif dispose les attributs de fichier (ou attributs de fichier version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est convertie en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet Fuseau horaire dans l'élément Date et heure du Panneau de configuration.
   Date         Time   Version         Size       File name
   ----------------------------------------------------------------
   30-Aug-2002  21:08                    786,432  Distmdl.ldf
   30-Aug-2002  21:08                  2,359,296  Distmdl.mdf
   09-Oct-2002  00:54                        544  Drop_repl_hotfix.sql
   02-Jul-2002  15:35  2000.80.650.0     107,088  Impprov.dll      
   19-Jul-2002  16:56                    774,516  Instdist.sql
   08-Oct-2002  23:56                     12,615  Inst_repl_hotfix.sql
   20-Aug-2002  16:24  2000.80.679.0     111,172  Logread.exe      
   07-Apr-2002  02:08  2000.80.606.0      62,024  Odsole70.dll     
   03-Jan-2002  01:59                     18,185  Qfe356326.sql
   20-Aug-2002  16:47  2000.80.679.0     135,748  Qrdrsvc.exe      
   26-Aug-2002  22:49  2000.80.679.0     406,088  Rdistcom.dll     
   04-Oct-2001  01:36                    437,302  Replcom.sql
   20-Aug-2002  16:33  2000.80.679.0     152,136  Replmerg.exe     
   19-Nov-2001  20:36                    993,945  Replmerg.sql
   05-Nov-2002  23:48  2000.80.700.0     221,768  Replprov.dll     
   04-Oct-2001  01:36                    986,906  Replsys.sql
   04-Oct-2001  01:36                    881,228  Repltran.sql
   26-Aug-2002  22:49  2000.80.679.0     283,208  Rinitcom.dll     
   16-Sep-2002  22:31                    390,045  Securityhotfix.sql
   26-Aug-2002  22:49  2000.80.679.0      28,672  Sqlagent.dll     
   26-Aug-2002  18:39  2000.80.679.0     311,872  Sqlagent.exe     
   28-Aug-2002  16:32  2000.80.679.0      49,152  Sqlagent.rll
   26-Aug-2002  22:49  2000.80.679.0      53,824  Sqlcmdss.dll     
   28-Aug-2002  16:40  2000.80.679.0      12,288  Sqlcmdss.rll
   24-Oct-2002  17:37  2000.80.695.0     176,696  Sqlmap70.dll     
   11-Nov-2002  09:52  2000.80.702.0   7,471,185  Sqlservr.exe     
   11-Nov-2002  09:51                 12,633,088  Sqlservr.pdb
   01-Nov-2002  18:56  2000.80.698.0      45,644  Sqlvdi.dll       
   01-Nov-2002  18:00  2000.80.697.0      82,492  Ssnetlib.dll     
   07-Apr-2002  02:08  2000.80.606.0      70,208  Xplog70.dll      
   07-Apr-2002  02:08  2000.80.606.0      53,828  Xpqueue.dll      
   07-Apr-2002  02:08  2000.80.606.0     156,228  Xprepl.dll       
   12-Jul-2002  01:00  2000.80.658.0     279,104  Xpstar.dll       
   16-Sep-2002  23:12  2000.80.686.0      98,872  Xpweb70.dll   
				
notes
  • En raison des dépendances de fichiers, la fonctionnalité qui contient les fichiers ou correctif plus récent peut également contenir des fichiers supplémentaires.
  • Le correctif 8.00.0702 est pour les ordinateurs où vous avez appliqué SQL Server 2000 SP2. Si vous avez installé SQL Server 2000 SP3, installez SQL Server 2000 SP3 version de correctif cumulatif 8.00.0765.

Statut

Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ». Ce problème a été corrigé dans Microsoft SQL Server 2000 Service Pack 4.

Plus d'informations

Comment correctif 8.00.0702 réduit la contention

Correctif 8.00.0702 présente un algorithme en répétition alternée pour les allocations pages mixte. Avec le correctif, le début fichier maintenant sera différent pour chaque affectation de page consécutifs mixte (si plusieurs fichiers existe). Cela évite le problème de contention en rupture du train qui s'est passé via les SGAMs dans l'ordre dans lequel chaque heure avec le même point de départ. L'algorithme affectation nouvelle SGAM est alternée pure et ne tient pas compte du remplissage proportionnel pour conserver la vitesse. Microsoft recommande de créer la tempdb fichiers de données avec la même taille.

Comment implémenter suivi indicateur - T1118 réduit la contention

Voici la liste d'utiliser des -T1118 réduit la contention :
  • -T1118 est un paramètre au niveau le serveur.
  • Inclure la -T1118 suivi indicateur dans les paramètres de démarrage pour SQL Server de sorte que l'indicateur de trace reste en vigueur même après que SQL Server est recyclé.
  • -T1118 supprime presque toutes les allocations de page unique sur le serveur.
  • En désactivant la plupart des allocations de page unique, vous réduire la contention sur la page SGAM.
  • Avec -T1118 activée ON, presque toutes les allocations de nouveau sont effectuées à partir un GAM page (par exemple, 2: 1: 2) qui alloue huit (8) pages (étendue 1) à la fois à un objet opposition à une seule page à partir d'une étendue pour les pages tout d'abord huit (8) d'un objet sans l'indicateur de trace.
  • Les pages IAM utilisent toujours les allocations de page unique à partir de la page SGAM, même avec -T1118 activée sur. Toutefois, lorsque vous combinés avec correctif 8.00.0702 et fichiers de données accrue tempdb , l'effet direct est une réduction de contention sur la page SGAM. Des problèmes d'espace, voir la « inconvénients » de cet article.
note Lorsque l'indicateur de trace 1118 est activé pour votre instance de SQL Server 2000, vous pourrez pas correctement restaurer une base de données SQL Server 7.0. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
837938  (http://support.microsoft.com/kb/837938/ ) Vous pouvez recevoir un message d'erreur lorsque vous essayez de restaurer une sauvegarde de base de données SQL Server 7.0 sur une instance de SQL Server 2000

Augmentez le nombre de fichiers de données tempdb avec taille égale

Si la taille du fichier données tempdb est de 5 Go, et la taille du fichier journal est de 5 Go, la recommandation est pour augmenter le même fichier de données à 10 (chacun de 500 Mo pour conserver le redimensionnement égal) et conserve le fichier journal comme. Avoir les fichiers de données différents sur des disques distincts serait bien. Toutefois, cela n'est pas nécessaire et ils peuvent coexister sur le même disque.

Le nombre optimal de fichiers de données tempdb dépend du degré de contention dans tempdb . Comme un point de départ, vous pouvez configurer la tempdb au moins égal au nombre de processeurs affecté pour SQL Server. Pour plus fin systèmes (par exemple, les procédure 16 ou 32), le numéro de départ pourrait être 10. Si la contention n'est pas réduite, vous devrez peut-être augmenter le nombre de fichiers de données plus.

note Un processeur bicœur est considéré comme deux processeurs.

La taille des fichiers de données égale est essentiel car l'algorithme de remplissage proportionnel est basé sur la taille des fichiers. Si les fichiers de données sont créés avec différents formats, l'algorithme de remplissage proportionnel essaie d'utiliser le fichier plus grand plus pour les allocations de GAM au lieu de diffuser les allocations entre tous les fichiers, ainsi defeating l'objectif de la création de plusieurs fichiers de données.

Le auto-grow des fichiers de données tempdb peuvent également interférer avec l'algorithme de remplissage proportionnel. Par conséquent, il peut être judicieux de désactiver la fonctionnalité auto-grow pour les fichiers de données tempdb . Si l'option auto-grow est désactivée, vous devez Assurez-vous de créer les fichiers de données afin qu'ils soient assez grande pour empêcher le serveur de rencontre un manque d'espace disque à tempdb .

Comment augmenter le nombre de données tempdb fichiers avec taille égale réduit la contention

Voici une liste de comment augmenter le nombre de fichiers de données tempdb avec taille égale réduit la contention :
  • Fichier de données une pour la tempdb , vous seulement comportent d'une GAM page et une page SGAM de chaque 4 Go d'espace de.
  • Augmentation du nombre de fichiers de données avec la même taille de tempdb efficacement crée une ou plusieurs GAM et SGAM pages pour chaque fichier de données.
  • L'algorithme d'allocation de GAM donne d'une étendue à la fois (huit pages contiguës) du nombre de fichiers d'une manière de répétition alternée tout en compte le remplissage proportionnel. Par conséquent, si vous avez 10 fichiers de taille égales, l'allocation de la première est de File1, le deuxième à partir de File2, le troisième à partir de File3 et ainsi de suite.
  • La contention de ressources de la page PFS (Perfect Forward Secrecy) est réduite car huit pages sont marqués comme complète à la fois comme GAM est Allocation les pages.

Inconvénients

Le seul inconvénient des recommandations mentionné plus haut est que vous pouvez voyez la taille des bases de données augmente lorsque les conditions suivantes sont remplies :
  • Nouveaux objets sont créés dans une base de données utilisateur.
  • Chacun des nouveaux objets occupent moins de 64 Ko d'espace de stockage.
Si ces conditions sont remplies, vous pouvez affecter 64 Ko (8 pages * 8 Ko = 64 Ko) pour un objet seulement nécessite 8 Ko d'espace, donc perdre 56 Ko d'espace de stockage. Toutefois, si le nouvel objet utilise plus de 64 Ko (8 pages) dans c'est la durée de vie, il n'est aucun inconvénient avec l'indicateur de suivi. Par conséquent, dans un scénario Pire cas, SQL Server risquez affectation sept (7) des pages supplémentaires pendant le la première affectation uniquement pour les nouveaux objets jamais dépasser un (1) la page.

Références

Pour plus d'informations GAM SGAM, PFS (Perfect Forward Secrecy) et IAM, consultez les rubriques en ligne de SQL Server 2000 suivantes :
  • « Gestion des espace utilisé par les objets »
  • « Gestion des allocations étendue et espace libre »
  • « Table et index Architecture »
  • Structures de tas

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Édition Développeur
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2000 Édition Entreprise
  • Microsoft SQL Server 2000 Édition Personelle
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Mots-clés : 
kbmt kbhotfixserver kbqfe kbsqlserv2000presp4fix kbfix kbbug KB328551 KbMtfr
Traduction automatiqueTraduction 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: 328551  (http://support.microsoft.com/kb/328551/en-us/ )
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.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store