CORRECTIF : Lorsque vous exécutez une requête qui utilise l'option de table NOLOCK dans SQL Server 2005 ou dans SQL Server 2008 pour récupérer des données BLOB, la requête s'exécute très lentement

Traductions disponibles Traductions disponibles
Numéro d'article: 961049 - Voir les produits auxquels s'applique cet article
Microsoft distribue les correctifs Microsoft SQL Server 2005 sous la forme d'un fichier téléchargeable unique. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et tous les correctifs de sécurité inclus avec la précédente SQL Server 2005 version du correctif.
Microsoft distribue les correctifs Microsoft SQL Server 2008 sous la forme d'un fichier téléchargeable unique. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et tous les correctifs de sécurité inclus avec la précédente SQL Server 2008 version du correctif.
Agrandir tout | Réduire tout

Sommaire

Symptômes

Vous avez une requête qui utilise l'option de table NOLOCK dans Microsoft SQL Server 2005 ou Microsoft SQL Server 2008. La requête lit données objet binaire volumineux (BLOB) d'un des types de données suivants une grande table :
  • Le type de données texte
  • Le type de données nText
  • Le type de données image
Lorsque vous exécutez la requête, la requête s'exécute très lentement. Si vous examinez l'activité du disque qui génère la requête, vous remarquerez que le nombre de lectures logiques est très élevé.

Remarque Pour afficher les activités de disque, exécutez la requête en utilisant la clause ON SET STATISTICS IO.

Cause

Lorsque la requête qui utilise l'option de table NOLOCK lit les données BLOB, SQL Server vérifie que chaque page BLOB est allouée en examinant le plan d'allocation correspondant index (IAM). IAM est une liste liée de pages d'allocation. Chaque page IAM peut contenir environ 4 Go de données (taille de page de 8 Ko * 8 pages * 64 000 extensions). Si l'objet est volumineux, l'opération de vérification peut conduire à un trop grand nombre de lectures logiques.

Par exemple, vous disposez d'un objet volumineux mappé à un groupe de fichiers. La taille totale des fichiers dans le groupe de fichiers est de 700 Go. Dans ce cas, la page IAM de cet objet peut contenir jusqu'à 175 pages. Si vous exécutez maintenant une requête sur cet objet en utilisant l'option de table NOLOCK et que la requête accède à 10 000 pages BLOB, le nombre de lectures logiques sont liés aux pages IAM être 175 * 10 000 = 1,750,000 dans le pire des cas. Si SQL Server détecte que la page IAM correspondante en parcourant la moitié de la liste liée, le nombre moyen de lectures logiques sont liés aux pages IAM sera environ 1,750,000 / 2 = 875,000. C'est trop élevée une surcharge occasionnées par une requête accéder aux pages BLOB 10 000.

Résolution

Informations mises à jour cumulatives pour SQL Server 2005

Le correctif de ce problème a été tout d'abord publié dans mise à jour cumulative 3 pour SQL Server 2005 Service Pack 3. Pour plus d'informations sur l'obtention de ce package de mises à jour cumulatives pour SQL Server 2005, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
967909Lot mises à jour cumulatives 3 pour SQL Server 2005 Service Pack 3
Remarque Les versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et tous les correctifs de sécurité inclus avec la précédente SQL Server 2005 version du correctif. Nous vous recommandons d'envisager d'appliquer la dernière version de correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
960598Versions de SQL Server 2005 publiées après SQL Server 2005 Service Pack 3

Informations mises à jour cumulatives pour SQL Server 2008

Le correctif de ce problème a été publié tout d'abord en 5 mise à jour cumulatif pour SQL Server 2008. Pour plus d'informations sur l'obtention de ce package de mises à jour cumulatives pour SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
969531Lot mises à jour cumulatives 5 pour SQL Server 2008
Remarque Les versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et tous les correctifs de sécurité inclus avec la précédente SQL Server 2008 version du correctif. Nous vous recommandons d'envisager d'appliquer la dernière version de correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
956909Versions de SQL Server 2008 publiées après SQL Server 2008

Statut

Microsoft a confirmé le que de ce problème dans les produits Microsoft répertoriés dans la section «S'applique à».

Plus d'informations

Le correctif de ce problème utilise le cache IAM pour déterminer rapidement si une page BLOB est réellement allouée.

Pour plus d'informations sur les fichiers sont modifiés et pour les conditions requises pour appliquer le package de mise à jour cumulative qui contient le correctif logiciel qui est décrit dans cet article de base de connaissances d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
967909Lot mises à jour cumulatives 3 pour SQL Server 2005 Service Pack 3
Pour plus d'informations sur les fichiers sont modifiés et pour les conditions requises pour appliquer le package de mise à jour cumulative qui contient le correctif logiciel qui est décrit dans cet article de base de connaissances d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
969531Lot mises à jour cumulatives 5 pour SQL Server 2008

Références

Pour plus d'informations sur la liste de builds qui sont disponibles après SQL Server 2005 Service Pack 3, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
960598Versions de SQL Server 2005 publiées après SQL Server 2005 Service Pack 3
Pour plus d'informations sur la liste de builds qui sont disponibles après SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
956909Versions de SQL Server 2008 publiées après SQL Server 2008
Pour plus d'informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
935897Un modèle incrémentiel Servicing Model est disponible à partir de l'équipe SQL Server pour fournir des correctifs pour les problèmes signalés
Pour plus d'informations sur le schéma d'appellation des mises à jour SQL Server, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
822499Nouveau schéma d'affectation de noms pour les packages de correctifs Microsoft SQL Server
Pour plus d'informations sur la terminologie mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
824684Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Propriétés

Numéro d'article: 961049 - Dernière mise à jour: lundi 18 mai 2009 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Mots-clés : 
kbmt kbsurveynew kbhotfixrollup kbfix kbqfe kbexpertiseadvanced KB961049 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: 961049
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