DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 897284 - Dernière mise à jour: mercredi 5 août 2009 - Version: 3.0

 

Sommaire

Résumé

Un système de gestion de la base de données (SGBD), telles que SQL Server, s'appuie sur l'opportunité d'entrée de fichier et de sortie (e/S) opérations. L'un des éléments suivants peut-être créer bloqué ou bloqué des problèmes d'e/S. Ces problèmes peuvent avoir rapidement un impact négatif sur réactivité de SQL Server et les performances :
  • Matériel défectueux
  • Matériel qui n'est pas configuré correctement
  • Paramètres du microprogramme
  • Les pilotes de filtre
  • Compression
  • Bogues
  • Autres conditions dans le chemin d'accès e/S
Ces problèmes d'e/S peuvent provoquer le comportement suivant se produit :
  • Blocage
  • Contention de verrou et les délais d'expiration
  • Temps de réponse lent
  • Étirement des limites des ressources
À partir de SQL Server 2000 Service Pack 4 (SP4), SQL Server comprend logique qui vous aide à détecter bloqué et bloqué des conditions de lectures e/S de base de données et les écritures et lectures e/S de fichier journal et écrit. Lorsqu'une opération d'e/S a été en attente pendant 15 secondes ou plus, SQL Server exécute les étapes suivantes :
  1. Détecte que l'opération a été en attente.
  2. Écrit un message d'information dans le journal des erreurs de SQL Server. Le texte du message est semblable au suivant :

    2004-11-11 00:21:25.26 spid1 SQL Server a rencontré 192 occurrence (s) de demandes d'e/S nécessite plus de 15 secondes de fin sur le fichier [E:\SEDATA\stressdb5.ndf] dans la base de données [stressdb] (7). Le handle de fichier du système d'exploitation est 0x00000000000074D4. Le décalage de la dernière e/S long est : 0x00000000022000 respectez.

Explication du message d'information

Réduire ce tableauAgrandir ce tableau
Texte du messageDescription
Number d'occurrence (s)Nombre de demandes d'e/S qui n'a pas terminé la lecture ou l'opération d'écriture en moins de 15 secondes.
Informations sur les fichiersNom de fichier complet, le nom de la base de données et le numéro d'identification (ID) de la base de données.
HandleHandle de système d'exploitation du fichier. Vous pouvez utiliser le handle du système d'exploitation avec les débogueurs ou d'autres utilitaires pour suivre les demandes de paquets demande d'e/S.
DécalageBloqué de l'offset de la dernière opération d'e/S ou bloqué de la dernière opération d'e/S. Vous pouvez utiliser l'offset avec débogueurs ou d'autres utilitaires pour suivre les demandes IRP.

Remarque Lorsque le message d'information est écrites dans le journal des erreurs de SQL Server, l'opération d'e/S peut plus être bloquée ou bloquée.
Ce message d'information indique que la charge actuelle peut être rencontre une des conditions suivantes :
  • La charge de travail dépasse les capacités de chemin d'accès e/S.
  • La charge de travail dépasse les capacités du système en cours.
  • Le chemin d'accès e/S a logiciel ne fonctionne pas correctement ; par exemple un microprogramme ou un problème de pilote.
  • Le chemin d'accès e/S possède des composants matériel défectueux.
Pour plus d'informations sur les modèles d'e/S de SQL Server 2000, site Web Microsoft suivant :
http://technet.microsoft.com/en-us/library/cc966500.aspx (http://technet.microsoft.com/en-us/library/cc966500.aspx)

Plus d'informations

E/S bloqué et bloquée e/S

E/S bloqué

E/S bloqué est défini comme une demande d'e/S qui n'est pas effectuée. E/S bloqué est souvent un IRP bloqué. Pour résoudre une condition d'e/S bloquée, vous généralement devez redémarrer l'ordinateur ou effectuer une action similaire. Une condition d'e/S bloquée indique généralement une des options suivantes :
  • Matériel défectueux.
  • Un bogue dans un composant de chemin d'accès e/S.

E/S bloquée

E/S bloquée est défini comme une demande d'e/S qui se termine. Toutefois, l'opération d'e/S prend trop de temps. Problème d'e/S bloquée généralement est dû une des raisons suivantes :
  • La configuration matérielle.
  • Les paramètres du microprogramme.
  • Un problème de pilote de filtre qui nécessite de l'aide du matériel ou le revendeur de logiciels afin de trace et de résoudre.

SQL Server bloqué d'e/S et bloqué des e/S l'enregistrement et de rapports

Prise en charge de SQL Server gère souvent chaque année qui impliquent des problèmes d'e/S bloqués ou bloquées. Comme indiqué plus loin, ces problèmes d'e/S s'affichent dans différentes façons. Problèmes d'e/S sont les problèmes plus difficiles à diagnostiquer et à déboguer. Problèmes d'e/S nécessitent beaucoup de temps et de ressources pour le débogage de Microsoft et du client. Les fonctionnalités de création de rapports qui ont été ajoutées pour SQL Server 2000 SP4 et versions ultérieures considérablement réduisent le temps est nécessaire pour identifier un problème d'e/S.

La génération d'états et l'enregistrement des demandes d'e/S sont conçus de manière par fichier. La détection et la déclaration de demandes d'e/S bloquées et bloqués sont deux actions distinctes.

L'enregistrement

Il existe deux emplacements dans SQL Server où action enregistrement avoir lieu. Le premier emplacement dans lequel l'enregistrement se produit, est où l'opération d'e/S se termine en réalité. Si une demande d'e/S prend plus de 15 secondes, une opération d'enregistrement se produit. Le second emplacement dans lequel l'enregistrement se produit, est lorsque l'écriture différée est exécuté. Lorsque l'écriture différée s'exécute, l'écriture différée vérifie toutes les données en attente et tous les journaux en attente de requêtes d'e/S de fichier. Si le seuil de 15 secondes a été dépassé, une opération d'enregistrement se produit.

Création de rapports

Création de rapports se produit dans intervalles 5 minutes ou plus, séparer. Création de rapports se produit lorsque la prochaine demande d'e/S est apportée sur le fichier. Si une action d'enregistrement s'est produite et 5 minutes ou plus se sont écoulés depuis le dernier rapport est produite, le message d'information qui est mentionné dans la section «Résumée» est écrit dans le journal des erreurs de SQL Server.

Le seuil de 15 secondes n'est pas réglable. Toutefois, vous pouvez désactiver bloquée et bloquée la détection d'e/S en utilisant l'indicateur de trace 830 mais nous ne recommandons pas effectuer cette opération.

Pour désactiver la détection au démarrage de SQL Server, utilisez l'option-paramètre de démarrage T830. À l'aide de l'option-T830 paramètre de démarrage va désactiver la détection chaque fois que SQL Server est démarré. Pour désactiver la détection d'une instance de SQL Server est en cours d'exécution, utilisez l'instruction suivante :

DBCC traceoff (830, -1)

Ce paramètre est uniquement efficace pendant la durée de vie du processus SQL Server.

Remarque Une demande d'e/S qui est bloquée ou bloquée est signalée seulement une seule fois. Si le message indique que 10 demandes d'e/S sont mis en attente, ces 10 rapports ne se produira à nouveau pas. Si le message suivant indique que 15 requêtes e/S sont mis en attente, cela signifie que 15 nouvelles demandes d'e/S ont deviennent bloqués.

Le paquet de demande d'e/S (IRP) de suivi

SQL Server utilise les appels d'API de Windows Microsoft standard pour lire et écrire des données. Par exemple, SQL Server utilise les fonctions suivantes :
  • WriteFile
  • ReadFile
  • WriteFileScatter
  • ReadFileGather
La lecture ou la demande d'écriture est gérée par Windows comme un paquet de demande d'e/S (IRP). Pour déterminer l'état de l'IRP, utilisez les deux opérations suivantes :
  • Assistance du support de plate-forme.
  • Le débogueur du noyau.
Pour plus d'informations IRP et IRP suivi, visitez le site Web de Microsoft et rechercher le mot clé "IRP" suivant :
http://support.microsoft.com (http://support.microsoft.com/)
Remarque Débogage du noyau peut être un processus invasif car débogage du noyau peut vous obliger à arrêter le système pour effectuer les actions de débogage. Nous recommandons que vous voir si des mises à jour sont disponibles pour les éléments suivants :
  • Le BIOS
  • Le microprogramme
  • Les autres composants de chemin d'accès e/S
Contactez vos fournisseurs de matériel avant d'effectuer des actions supplémentaires de débogage. La session de débogage serez certainement amené à un pilote tiers, du microprogramme ou un composant de pilote de filtre.

Actions de plan de performances du système et de requête

Global performances système peuvent jouer un rôle clé dans Traitement des e/S. Vous devez tenir l'état général du système lorsque vous étudiez les rapports d'opérations d'e/S bloquées ou bloquées. Charge excessive peut empêcher le système global est lente. Cela inclut le traitement des e/S. Le comportement du système au moment où que le problème se produit peut être un facteur clé de déterminer la cause du problème. Par exemple, si l'utilisation du processeur est élevée ou si l'utilisation du processeur reste élevée lorsque le problème se produit, cela peut indiquer qu'un processus sur le système utilise beaucoup l'UC qu'autres processus sont ne soit détériorés.

Les compteurs de performance

Pour surveiller les performances d'e/S, examinez les compteurs de performances suivants pour des informations de chemin d'accès e/S spécifiques :
  • Moyenne disque S/transfert
  • Longueur moyenne de file d'attente du disque
  • Longueur de file d'attente du disque actuel
Par exemple, la durée moyenne disque S/transfert sur un ordinateur qui exécute SQL Server est généralement inférieure à 15 millisecondes. Si la valeur moyenne disque S/transfert augmente, cela indique que le sous-système d'e/S n'est pas optimale suivi avec la demande d'e/S.

Soyez vigilant avec les compteurs de performances car SQL Server tire pleinement parti des capacités d'e/S asynchrones qui les longueurs de file d'attente de disque très. Par conséquent, plus longues de file d'attente disque seuls n'indiquent pas un problème.

Dans le Moniteur système Windows, vous pouvez consulter les compteurs "disque physique : octets disque/s"pour chaque disque affecté et comparez le taux d'activité sur les compteurs «processus: e/S données octets/S» et “ processus: e/S autre octets/s respectez pour chaque processus déterminer si un ensemble spécifique de processus génère un trop grand nombre d'e/S requêtes. Il existe diverses autres e/S liées compteurs disponibles dans le processus d'objet qui révèle des informations plus précises. Si vous déterminez qu'une instance SQL Server est responsable de la charge d'e/S excessive sur le serveur, consultez la section suivante sur “ index et parallélisme respectez. Pour une étude détaillée de détection et résolution des goulots d'étranglement d'e/S, consultez la section “ goulots d'étranglement d'e/S respectez dans le livre blanc MSDN Troubleshooting Performance Problems in SQL Server 2008 (http://msdn.microsoft.com/en-us/library/dd672789.aspx) ou le Troubleshooting Performance Problems in SQL Server 2005 (http://technet.microsoft.com/en-us/library/cc966540.aspx) .

Index et parallélisme

Souvent, rafales d'e/S se produire car un index est manquant. Ce comportement peut pousser le chemin d'accès e/S très. Un test avec l'Assistant d'activation de index (ITW) peut aider à résoudre pression d'e/S sur le système. Si une requête tire parti d'un index au lieu de à partir d'une analyse de table ou peut-être même utilise un tri ou de hachage, le système peut obtenir les avantages suivants :
  • Réduction d'e/S physiques pour terminer l'action qui correspond directement aux avantages de performances pour la requête.
  • Pages moins dans le cache de données doivent être activées. Par conséquent, les pages qui sont dans le cache de données restent aux requêtes actives.
  • Trie et les hachages sont utilisés car un index peut être manquant ou car les statistiques sont obsolètes. Vous pouvez réduire tempdb utilisation et la contention en ajoutant un ou plusieurs index.
  • Une réduction des ressources, une réduction des opérations en parallèle ou les deux. Étant donné que SQL Server ne garantit pas l'exécution de requêtes en parallèle, et que la charge sur le système est considéré comme, il est préférable d'optimiser toutes les requêtes pour l'exécution de série. Pour optimiser une requête, ouvrez l'Analyseur de requêtes et définir la valeur de sp_configure de l'option max degree of parallelism à 1. Si toutes les requêtes sont paramétrées pour exécuter rapidement une opération en série, l'exécution en parallèle est souvent simplement un meilleur résultat. Toutefois, plusieurs fois l'exécution en parallèle est activée car la quantité de données est importante uniquement. Pour un index manquant, un tri grand peut-être se produisent. Plusieurs employés sont effectuer l'opération de tri va créer une réponse plus rapide. Toutefois, cette action peut considérablement augmenter la pression sur le système. Grandes requêtes de lecture à partir de nombreux employés peuvent provoquer une rafale d'e/S avec une meilleure utilisation du processeur à partir de plusieurs employés. Nombre de fois où une requête peut être réglée à s'exécuter plus rapidement et à utiliser moins de ressources si un index est ajouté ou si une autre action réglage se produit.

Exemples pratiques de prise en charge de SQL Server

Les exemples suivants ont été gérés par prise en charge de SQL Server et plates-formes augmentation support. Ces exemples sont destinés à fournir un cadre de référence et un jeu aide vos attentes sur bloqué et bloqué des situations d'e/S et sur comment un système peut être affecté ou peut répondre. Aucun matériel spécifique ou un jeu de pilotes constituer ni un risque accru de risque spécifique sur un autre n'existe. Tous les systèmes sont identiques à cet égard.

Exemple 1: Écriture journal qui est bloqué pendant 45 secondes

Une tentative d'écriture SQL Server journal fichier périodiquement est devenu bloquée pendant environ 45 secondes. L'écriture de journal n'était pas fin dans un délai raisonnable. Ce comportement créé une condition de blocage qui conduit à des délais de client de 30 secondes.

L'application soumise à une validation à SQL Server et la validation a été bloquée en une écriture de journal en attente. Ce comportement dû la requête pour continuer maintient des verrous et pour bloquer les demandes entrantes des autres clients. Autres clients démarré puis, délai d'attente. Cela composé le problème car l'application n'a pas prévue pour restaurer les transactions ouvertes lors d'un délai de requête. Cette création des centaines de transactions ouvertes qui ont été maintient des verrous. Par conséquent, une situation de blocage grave s'est produite.

Pour plus d'informations sur les transactions Gestion et de blocage, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
224453  (http://support.microsoft.com/kb/224453/ ) Compréhension et résolution SQL Server 7.0 ou 2000 des problèmes de blocage
L'application service un site Web en utilisant le regroupement de connexion. En plus de connexions a été bloqués, le site Web créé davantage de connexions. Ces connexions a été bloquées et le cycle de suite.

Après environ 45 secondes, l'écriture de journal terminée. Cependant, à ce stade, des centaines de connexions ont été sauvegardées. Les problèmes de blocage a entraîné quelques minutes de temps de récupération pour SQL Server et l'application. Quand combiné avec les problèmes d'application, la condition d'e/S bloquée avait un effet très négatif sur le système.
Résolution
Le problème a été associé à une demande d'e/S bloquée dans un pilote de carte de bus hôte (HBA). L'ordinateur a plusieurs cartes HBA avec prise en charge du basculement. Lorsqu'un HBA a été derrière ou a été ne communique pas avec le réseau SAN (Storage Area Network), la valeur du délai d'attente «tentatives avant le basculement» a été configurée pour 45 secondes. Lorsque le délai d'attente a été dépassé, la requête d'e/S a été routée vers HBA deuxième. Le deuxième HBA traité la demande et rapidement terminé. Pour éviter de telles conditions place, le fabricant du matériel recommandé d'un paramètre «tentative avant le basculement» de 5 secondes.

Exemple 2 : Intervention de pilote de filtre

De nombreux programmes antivirus et produits de sauvegarde utilisent pilotes de filtre d'e/S. Ces pilotes de filtre d'e/S partie de la pile de demande d'e/S et ont accès à la demande IRP. Support technique Microsoft a constaté plusieurs problèmes de bogues créer bloqué les conditions d'e/S ou bloqué les conditions d'e/S dans une implémentation pilote de filtre.

Une telle condition était un pilote de filtre pour le traitement sauvegarde permettant une sauvegarde des fichiers qui étaient ouverts lors de la sauvegarde. L'administrateur système a inclus le répertoire de fichier de données SQL Server dans les sélections de sauvegarde de fichier. Lors de la sauvegarde s'est produite, la sauvegarde a tenté de recueillir l'image correcte du fichier au moment où la sauvegarde a commencé. Cette opération retardée de demandes d'e/S. Les demandes d'e/S ont été autorisés à un à la fois exécuter uniquement lorsqu'ils ont été gérés par le logiciel.

Lorsque la sauvegarde a commencé, les performances de SQL Server supprimés considérablement parce que les e/S de SQL Server a été forcé d'effectuez l'une à la fois. Composé le problème, la logique de «un à la fois» était que l'opération d'e/S Impossible d'effectuer en mode asynchrone. Par conséquent, lorsque SQL Server pour valider une demande d'e/S et continuer, le thread de travail a été bloqué dans la lecture ou l'appel d'écriture jusqu'à ce que la demande d'e/S est terminée. Tâches de traitement comme un serveur SQL Server lecture anticipée a été désactivés par les actions du pilote de filtre. En outre, un autre bogue dans le pilote de filtre laissé les actions «un à la fois» dans les processus, même lorsque la sauvegarde a été terminée. La seule façon de restaurer les performances de SQL Server était fermez, puis rouvrez la base de données, ou de redémarrer SQL Server afin que le handle de fichier a été publié et acquis à nouveau sans l'interaction de pilote de filtre.
Résolution
Pour résoudre ce problème, les fichiers de données SQL Server ont été supprimés du processus de sauvegarde de fichier. Le fabricant du logiciel également résolu le problème que le fichier en mode «un à la fois».

Exemple 3: Les erreurs masquées

De nombreux systèmes fin supérieures ont multicanal chemins d'accès e/S pour gérer équilibrage de charge ou activités similaires. Support technique a trouvé des problèmes avec le logiciel équilibrage de charge où une demande d'e/S échoue mais le logiciel ne gère pas correctement la condition d'erreur. Le logiciel peut essayer de tentatives infinies. L'opération d'e/S est bloquée et SQL Server ne peut pas terminer l'action spécifiée. Comme le journal d'écriture condition décrite plus haut, de nombreux comportements système médiocres peuvent se produire après qu'une telle condition wedges le système.
Résolution
Pour résoudre ce problème, redémarrez SQL Server est souvent nécessaire. Cependant, parfois vous devez redémarrer le système d'exploitation afin de restaurer traitement. Nous vous recommandons également de procurer une mise à jour de logiciel auprès du fournisseur d'e/S.

Exemple 4: Stockage à distance, la mise en miroir et RAID lecteurs

De nombreux systèmes utilisent la mise en miroir ou prendre des étapes similaires pour éviter la perte de données. Certains les systèmes qui utilisent la mise en miroir sont logiciel et des matérielles. La situation est généralement détectée par les services de support technique pour ces systèmes est latence accrue.

Une augmentation de la durée totale d'e/S se produit lorsque les e/S à accomplir sur le miroir avant des e/S est considérée comme terminée. Pour les installations à distance en miroir, réseau tentatives peuvent devenir impliqués. Lorsque lecteur défaillances et reconstruit le système raid, le modèle d'e/S peut également être interrompu.
Résolution
Paramètres de configuration Strict sont nécessaires pour réduire la latence de miroirs et raid reconstruction opérations.

Exemple 5: compression

Microsoft ne prend pas en charge Microsoft SQL Server 7.0 ou des fichiers de données Microsoft SQL Server 2000 et des fichiers journaux sur des lecteurs compressés. La compression NTFS n'est pas sécurisée pour SQL Server car la compression NTFS sauts protocole Write en enregistrement (WAL). La compression NTFS requiert également traitement accrue pour chaque opération d'e/S. Compression crée «un à la fois» comme comportement provoque des problèmes de performances graves se produit.
Résolution
Pour résoudre ce problème, décompressez les données et les fichiers journaux.

Points de données supplémentaires

Les informations de type attente qui sont fournies dans la table système sysprocesses peuvent être utiles pour diagnostiquer les goulots d'étranglement d'e/S. Mémoire tampon d'e/S verrou attente types et attend writelog est indicateurs clés pour étudier les performances de chemin d'accès e/S.

Pour plus d'informations sur les types d'attente, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
822101  (http://support.microsoft.com/kb/822101/ ) Description des colonnes waittype et lastwaittype de la table master.dbo.sysprocesses dans SQL Server 2000 et SQL Server 2005

Références

231619  (http://support.microsoft.com/kb/231619/ ) Comment utiliser l'utilitaire SQLIOStress pour mettre l'accent sur un sous-système de disque tel que SQL Server
826433  (http://support.microsoft.com/kb/826433/ ) Des diagnostics SQL Server supplémentaires ajoutés pour détecter les problèmes d'e/S non signalés
230785  (http://support.microsoft.com/kb/230785/ ) Enregistrement de SQL Server 7.0, SQL Server 2000 et SQL Server 2005 et les algorithmes de stockage de données étendent la fiabilité des données
SQL Server nécessite des systèmes pour la prise en charge ‘ garantie de remise aux médias stable ’ comme indiqué dans le programme de Microsoft SQL Server Always-On Storage Solutions révision. FOPour plus d'informations sur la configuration d'entrée et sortie requise pour le moteur de base de données SQL Server, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
967576  (http://support.microsoft.com/kb/967576/ ) Microsoft SQL Server Database Engine Input/Output requise

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Service Pack 4
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Mots-clés : 
kbmt kbinfo kbtshoot kbsqlserv2000sp4fea KB897284 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: 897284  (http://support.microsoft.com/kb/897284/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