Nouvelle simultanéité d'exécution et planification des diagnostics ont été ajoutés à SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 319892 - Voir les produits auxquels s'applique cet article
BOGUE #: 102179 (SQLBUG_70)
BOGUE #: 356317 (SQLBUG_80)
Agrandir tout | Réduire tout

Sommaire

Résumé

Reste hautement dynamiques, SQL Server contient plusieurs processus internes pour garantir la stabilité. Par exemple, le moniteur de verrou que vous pouvez utiliser pour identifier et résoudre les situations de blocage.

SQL Server 7.0 Service Pack 4 (SP4) et SQL Server 2000 Service Pack 3 (SP3) ont ajoutés améliorée processus santé surveillance. Améliorations de surveillance de santé ont eu lieu dans les domaines suivants :
  • Blocage
  • Des problèmes de réseau
  • Entrée/sortie (e / S)
  • Mémoire
  • PROCESSEUR
Lorsque SQL Server détecte les problèmes de santé, une série de nouveaux messages d'erreur, telle que la suivante, sont enregistrés dans le journal d'erreur SQL Server. Pour plus de détails sur ces conditions message d'erreur, reportez-vous à la « Informations supplémentaires" section de cet article.

SQL Server 7.0

Erreur 1223:: ID de processus % d: %d ne peut pas acquérir verrouillage %s sur ressource %s car un blocage potentiel existe sur le planificateur %d de la ressource. Processus ID %d %d détient un verrou « %h » sur cette ressource.

SQL Server 2000

Erreur 1229: ID de processus % d: %d possède des ressources qui bloquent processus sur planificateur %d.
Les nouveaux messages d'erreur incluent les séries suivantes.

étendu détection de verrou : 1223, 1229
Planificateur de traitements bloqués détection : 17881, 17883
bloqués tous les planificateurs détection : 17882, 17884
Avertissement Notez qu'un problème lié fonctionnement est souvent le résultat d'une condition qui a été rencontré précédemment. Vous devez étudier le journal des erreurs SQL Server et les journaux des événements système avec soin pour déterminer la cause racine réel.

Par exemple, un message d'erreur 17883 peut indiquer un problème de planificateur de traitements. Toutefois, le journal des erreurs peut afficher une exception antérieure qui incorrectement laissé le processus SQL Server dans un état médiocre ou l'application peut avoir provoqué une condition de blocage grave.
note Microsoft tente de conserver tout le contenu à jour avec les conditions 17883 plus récentes. Toutefois, la message d'erreur 17883 est un message de détection intégrité qui peut être déclenché pour de nombreuses raisons. Microsoft n'a pas uniquement corrigé problèmes connus avec le produit logiciel SQL Server mais a également rencontré l'erreur 17883 dans diverses situations sont pas associées aux logiciels SQL Server. Par exemple, l'erreur avec consommation D'UC application externe et défaillances matérielles. Vous devez déterminer la cause initiale de la message d'erreur 17883 si vous souhaitez éviter une périodicité indésirable de l'erreur.

Plus d'informations

Cette section décrit les améliorations de santé et les messages Erreur associée qui peuvent être consignés le journal des erreurs SQL Server.

UMS

Pour mieux comprendre des diagnostics intégrité supplémentaire, vous devez tout d'abord comprendre comment SQL Server utilise un fichier d'assistance ums.dll planification de mode utilisateur (UMS).

SQL Server 7.0 et Microsoft SQL Server 2000 utilisent tous deux planificateurs logiques. Ces planificateurs permettent de vous assurer que SQL Server agrandit Utilisation des ressources de système d'exploitation par rapport aux chemins d'accès de base de données clé action. La couche UMS assure que SQL Server utilise correctement événements Win32 pour contrôler strictement thread et fibre (ou les deux) planification visibilité pour le système d'exploitation. En contrôlant strictement threads les fibres qui peuvent exécuter, SQL Server peut-il maximiser l'utilisation du processeur par rapport à primitives de base de données tels que le verrouillage.

Par exemple, logique de planification permet verrou waiters en veille (WaitForSingleObject sur un événement de Win32) jusqu'à ce que le propriétaire de verrou libère le verrou et les signaux (SetEvent) à réveiller.

Détection de verrou étendu

Le moniteur de verrou a été étendu pour détecter un scénario de blocage au niveau de ressources de thread de travail. Si un SPID possède en file un verrou est en d'attente pour le planificateur de traitements, parce que toutes les les threads de travail affectées ont été créées et toutes les les threads de travail affectées sont dans un état d'attente un-resolvable, le message d'erreur suivante est écrite dans le journal des erreurs SQL Server :

SQL Server 7.0

Erreur 1223:: ID de processus % d: %d ne peut pas acquérir verrouillage %s sur ressource %s car un blocage potentiel existe sur le planificateur %d de la ressource. Processus ID % d: % d détient un verrou « %h » sur cette ressource.
Description du paramètre :
  1. En attente SPID
  2. En attente ECID (ID de l'exécution de processus Sub)
  3. Nom du mode verrouillage
  4. Nom de la ressource
  5. ID du planificateur UMS logique
  6. Propriétaire SPID
  7. Propriétaire ECID
  8. Possession du nom de la ressource

SQL Server 2000

Erreur 1229: ID de processus % d: %d possède des ressources qui bloquent processus sur planificateur %d.
Paramètre description :
  1. Propriétaire SPID
  2. Propriétaire ECID (ID de l'exécution de processus Sub)
  3. Propriétaire logique UMS planificateur ID

Indicateurs de suivi

SQL Server contient un indicateur de suivi pour désactiver cette déclaration d'intégrité.

Pour désactiver le comportement de génération d'états, appliquez l'une des méthodes suivantes :
  • Établir un paramètre de démarrage (-T ### )
  • Utilisez DBCC traceon ( ### )
SQL Server 7.0 :-T1216

SQL Server 2000 :-T1261

note Ce n'est pas une erreur typographique. -T1216 sur SQL Server 2000 est déjà utilisé en tant que l'indicateur de suivi associé sortie de blocage. Par conséquent, 1261 est utilisé à la place.

exemple de scénario

Client 1 se connecte à SQL Server.

Client 1 s'exécute une commande Transact-SQL qui démarre une transaction et effectue la modification de données.

Par exemple :
begin tran
update authors set au_lname = 'test'
client 1 devient IDLE, affiche les qu'en mode veille et en attente d'une commande avec une transaction en cours de la table système sysprocesses .

Clients 2 à 255 : approximativement 254 davantage de clients se connecter à SQL Server et émettre un SELECT de la table auteurs. Ces clients sont tous devenir bloquées sur la mise à jour d'origine.

Client 1 tente de valider la transaction, mais est en attente car tous les threads de travail sont liés par les clients 2 à 255.

Blocage

Cette message d'erreur indique généralement une situation de blocage étendue. Chaque fois que le moniteur de verrou s'exécute (environ toutes les 5 secondes), les messages peuvent être ajoutés au journal des erreurs SQL Server.

note Un message est enregistré pour chaque SPID/ECID qui rencontre le problème de ressource. Par conséquent, plusieurs messages peuvent être enregistrés pendant le l'itération de moniteur même verrou.

SQL Server ne résout pas automatiquement cette situation. Toutefois, elle indique le problème comme un message d'erreur (1223 ou 1229) en conséquence. Lorsque ce problème se produit, vous pouvez résoudre en de différentes manières.

Verrouiller ou délai d'expiration de requête

Si les requêtes utiliser un verrou ou d'un délai d'expiration de la requête, la situation est généralement résoudre lui-même lorsque le délai d'expiration se produire. Toutefois, la situation justifie investigation, car il indique une réduction de l'application induits par de simultanéité d'accès aux données.

Transact-SQL KILL

Si l'administrateur est capable d'interroger la table système sysprocesses , ils peuvent utiliser la commande Transact-SQL KILL pour terminer le SPID BLOCAGE et pour terminer la SPIDS BLOQUÉ approprié pour libérer des threads de travail et revenir le système à un état normal.
251004 Comment surveiller le blocage de SQL Server 7.0
271509 Comment surveiller le blocage de SQL Server 2000
263889 Verrouille SQL bloquer en raison de [[COMPILATION]]

Prise en charge l'assistance

Si vous ne pouvez pas obtenir les informations de table système sysprocesses , obtenez un vidage de processus du processus (sqlservr.exe) puis contactez le support Microsoft SQL Server pour plus d'investigation.

Requêtes parallèles

Dans de rares cas, cette message d'erreur peut se produire en raison d'une sélection de plan mauvaise requête parallèle. Si la requête parallèle choisit utiliser un nombre significatif de SQL Server des employés pour exécuter la requête, il peut épuiser le pool de traitement SQL Server. La table de système sysprocesses contient une colonne ECID pour indiquer le nombre d'employés qui sont en cours d'utilisation de part le SPID individuel. Si la valeur ECID est élevée en relation avec les processeurs physiques sur l'ordinateur, il est généralement une indication d'une requête mal connectée. Examinez le plan de requête et l'option de requête degré maximum de parallélisme (MAXDOP) à optimiser correctement la requête en question.

Importe des planificateurs

Le nombre de planificateurs logiques est important. Lorsque SQL Server démarre, le paramètre de thread de travail maximale est aussi divisé parmi les planificateurs logiques. Comme le nombre d'unités centrales disponibles pour le serveur SQL augmente la file d'attente de travail est divisée plus. Une application qui présente les activités de transactions indésirable d'étendue peut manifeste scénarios de pénurie de ressources plus rapide lorsque plusieurs processeurs sont impliquées. Pour ce type de scénario, l'étendue de transaction applications est immédiatement corrigé.

Le tableau suivant les affectations de pool travail selon le nombre d'UC si le sp_configure stockée paramètre procédure de max de threads de travail est égale à 255.
Réduire ce tableauAgrandir ce tableau
blocage de l'UC longueur de chaîne
1255
2128
464
832
1616
Nous vous recommandons de conserver le paramètre de thread de travail maximale à la valeur par défaut de 255. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
319942 Comment déterminer les paramètres de configuration de SQL Server appropriées

Santé UMS

Une nouvelle routine interne a été ajoutée pour vérifier l'intégrité de la logique planificateur toutes les 60 secondes. Si le planificateur de traitements est jugé comme bloqué, ou il a cessé de répondre, le message d'erreur approprié est enregistré pour le journal des erreurs SQL Server. Une erreur est consignée toutes les 60 secondes jusqu'à ce que le problème soit résolu.

Comme nous l'avons vu précédemment, ces messages sont souvent une indication d'un événement précédent. Consultez attentivement les journaux SQL Server erreur journal et application événements pour vous aider à déterminer la cause racine du problème.

note Un instantané est pris toutes les 60 secondes. Il peut donc 120 secondes avant que la condition est tout d'abord détectée.

SQL Server 7.0

Erreur : 17881 - le planificateur de %1! ld! semble être bloqué. Services de support technique Microsoft 0 x %2!p!, UE 0 x % 3! p!, contexte UMS 0 x %4!p!
17882 - D'erreur : les verrous mortels potentiels existent sur tous les planificateurs

Indicateurs de suivi

Vous pouvez désactiver ces vérifications deux si vous démarrez SQL Server 7.0 avec le -T1217 paramètre de démarrage.

SQL Server 2000 Service Pack 3

8.00.760 (SP3)
Erreur : 17883 - le planificateur de %1! ld! semble être bloqué. SPID %2! ld!, ECID %3 ! %ld!, contexte UMS 0 x %4!p!

8.00.765

Démarrer avec le 8.00.765 chaud résoudre, le message a été modifié à être plus descriptifs.
Erreur : 17883 - traitement %1! ld!: %2! ld! (%3! lx!) Contexte UMS 0 x %4!p! semble être non offrant sur planificateur %5! ld!

Exemple :
serveur 08:22:20.27 2003-03-21 erreur : gravité 17883,: 1, état: 0
serveur 08:22:20.27 2003-03-21 51:0 processus (dbc) contexte UMS 0x018DA930 semble non offrant sur le planificateur de 0.
2003-03-21 08:22:22.45 serveur pile signature pour l'image est 0 x 00000000
17884 - D'erreur : les verrous mortels potentiels existent sur tous les planificateurs

Indicateurs de suivi

Vous pouvez désactiver ces vérifications deux si vous démarrez SQL Server avec le - paramètre de démarrage T1260.

Fichier MiniDump de SQL Server 2000

À partir de SQL Server 2000 SP3, la possibilité de capturer un processus MiniDump a été implémentée. Commençant par créer 8.00.765, un fichier MiniDump est généré lorsque SQL Server détecte tout d'abord un planificateur bloqué.

Pour éviter la génération continue des fichiers MiniDump pour ces messages d'erreur (and17884 17883), le comportement par défaut est pour générer un fichier MiniDump unique pour la durée de vie du processus SQL Server. Pour activer un fichier MiniDump toutes les occurrences des messages, activer sur Indicateur de suivi - T1262.

Le fichier MiniDump est généré dans le journal des dossiers et est SQLDmpr ### .mdmp. Ce fichier MiniDump peut être évalué par le support Microsoft pour aider à déterminer la cause racine du problème.

Erreur 17881 et erreur 17883

Ces messages indiquent un seul planificateur UMS a rencontrer un problème rendement. La surveillance d'état a détecté ce qui semble être un planificateur avec un thread de travail qui autorise les autres employés avancement, et le planificateur de traitements est signalé comme non réactif. Une planification qui a cessé de répondre est généralement un bogue avec le produit SQL Server ou un composant externe (XProc, objet COM, et ainsi de suite).

Voici quelques exemples de conditions 17833 connues. Assurez-vous que vous rechercher la base de connaissances Microsoft pour les articles associés. Si votre système exige un correctif mis à jour, vous pouvez l'appliquer en conséquence.
815056 CORRECTIF : processus point de contrôle peut retarder l'activité de base de données SQL Server et ne génèrent pas planificateur correctement à l'origine Erreur : 17883 se produit
810885 Sous-systèmes de disque haut de gamme peuvent rencontrer l'erreur 17883
Si vous ne pouvez pas déterminer la cause racine immédiatement, consultez le journal des erreurs pour les problèmes et participer efforts de prise en charge étendue.

Lorsqu'un planificateur ne répond pas correctement, il peut réduire d'accès concurrentiel global pour SQL Server. SQL Server peut également s'afficher pour être bloqué ou il peut cesser de répondre.

Erreur 17882 et 17884

Ces messages indiquent que tous les planificateurs UMS ont connu génèrent des problèmes. Cela indique un problème de largeur de système SQL Server et SQL Server s'affichent à ont cessé de répondre. Comme avec les messages 17881 et 17883, consultez le journal des erreurs et la base de connaissances Microsoft pour plus d'informations. Si nécessaire, participer efforts de prise en charge étendue.

Propriétés

Numéro d'article: 319892 - Dernière mise à jour: mercredi 18 mai 2005 - Version: 8.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Service Pack 3
  • Microsoft SQL Server 7.0 Service Pack 4
Mots-clés : 
kbmt kbsample kberrmsg kbbug kbfix kbinfo KB319892 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: 319892
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