KB2530913-FIX : "erreur : 17066" se produit lorsque vous créez un index non clusterisé partitionné dans SQL Server 2008 R2 si un plan d’exécution parallèle est utilisé

S’applique à : SQL Server 2008 R2 Service Pack 1SQL Server 2008 R2

Microsoft distribue les correctifs Microsoft SQL Server 2008 R2 sous la forme d’un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version de correctif SQL Server 2008 R2 antérieure.

Symptômes


Lorsque vous utilisez un plan d’exécution parallèle pour essayer de créer un index non clusterisé partitionné dans Microsoft SQL Server 2008 R2, un problème se produit et présente les symptômes suivants :
  • Les messages d’erreur suivants sont enregistrés dans le journal des erreurs SQL Server :
    Date et heure de <date> SPID<n> erreur : 17066, gravité : 16, État : 1. <date> SPID<3392,>. d’assertion :, CompareRow <. c>, ligne = Échec assertion = ' (rightPageRow, * m_pSEBindings, keyCnt, * pHobtAccess, PAGE_LEAF_LEVEL) '. Cette erreur est éventuellement liée au minutage. Si l’erreur persiste après avoir reexécuté l’instruction, utilisez DBCC CHECKDB pour vérifier l’intégrité structurelle de la base de données, ou redémarrez le serveur pour vérifier que les structures de données en mémoire ne sont pas endommagées.
  • Le plan d’exécution parallèle n’entraîne pas la création de l’index.
  • L’application cliente qui envoie l’instruction Create index peut recevoir une exception SQL Server.
  • La connexion entre le client et le serveur est fermée.
Remarque
  • Un plan d’exécution parallèle peut être utilisé dans les situations suivantes :
    • Vous définissez l’option d’indicateur de requête MAXDOP sur une valeur supérieure à 1.
    • Vous définissez l’option maximum de niveau de parallélisme sur 0 ou sur une valeur supérieure à 1 dans Configuration du serveur.
  • Ce problème ne se produit pas dans Microsoft SQL Server 2008.

Cause


Ce problème survient parce que au moins deux threads parallèles SQL Server effectuent la création d’index sur les plages de partitions Overlapped.

Résolution


Informations sur les mises à jour cumulatives

SQL Server 2008 R2 Service Pack 1

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 1. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2544793 Package de mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 1
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2567616 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 8. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2534352 Package de mise à jour cumulative 8 pour SQL Server 2008 R2
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
981356 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2

Solution de contournement


Pour contourner ce problème, appliquez l'une des méthodes suivantes :
  • Définissez l’option niveau maximal de parallélisme sur 1 dans la configuration du serveur avant de créer l’index.
  • Définissez l’option d’indicateur de requête MAXDOP sur 1 lors de la création de l’index.

Statut


Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Informations supplémentaires


Pour plus d’informations sur l’instruction Create index , visitez le site Web MSDN suivant : Pour plus d’informations sur l’instruction Create partition , consultez le site Web MSDN suivant :