CORRECTIF : Lorsque vous exécutez une requête qui utilise le MIN ou MAX fonction par rapport à une vue partitionnée dans SQL Server 2008, la requête s'exécute beaucoup plus lentement que lorsque vous exécutez la même requête dans SQL Server 2005

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: 973255
Microsoft distribue les correctifs de 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 de SQL Server 2008 version du correctif.
Symptômes
Dans Microsoft SQL Server 2008, vous créez une vue partitionnée. Vous exécutez une requête qui utilise la fonction d'agrégation MIN ou MAX sur la vue partitionnée. Cependant, vous pouvez trouver l'exécution de requête beaucoup plus lente dans SQL Server 2008 que si vous exécutez la même requête dans SQL Server 2005.

Si vous examinez le plan d'exécution de la requête, vous constatez que l'opérateur TOP présente dans le plan d'exécution dans SQL Server 2005. Toutefois, l'opérateur TOP ne présente pas dans le plan d'exécution dans SQL Server 2008.

Par exemple, le plan d'exécution dans SQL Server 2005 semblables aux suivantes :
  |--Stream Aggregate(DEFINE:([Expr1190]=MAX([partialagg1191])))       |--Concatenation            |--Top(TOP EXPRESSION:((1)))            |    |--Clustered Index Scan(OBJECT:([Server].[dbo].[Database].[PK]), ORDERED BACKWARD)            |--Top(TOP EXPRESSION:((1)))                 |--Clustered Index Scan(OBJECT:([Server].[dbo].[Database].[PK]), ORDERED BACKWARD)
toutefois, le plan d'exécution de la même requête dans SQL Server 2008 semblables aux suivantes :
  |--Stream Aggregate(DEFINE:([Expr1190]=MAX([partialagg1191])))       |--Concatenation            |--Stream Aggregate(DEFINE:([partialagg1191]=MAX([Server].[dbo].[Database].[Column])))            |    |--Index Scan(OBJECT:([Server].[dbo].[Database].[Index]))            |--Stream Aggregate(DEFINE:([partialagg1191]=MAX([Server].[dbo].[Database].[Column])))                 |--Index Scan(OBJECT:([Server].[dbo].[Database].[Index]))
Cause
Le moteur de base de données SQL présente une règle qui traduit les fonctions d'agrégation MIN et MAX pour utiliser TOP opérateur (1) et l'opérateur Index Seek sur le plan d'exécution. Toutefois, dans ce scénario, la règle ne fonctionne pas dans SQL Server 2008. Par conséquent, un index incorrect est utilisé sur la vue de partition. Cela provoque le problème de performances.
Résolution
Tout d'abord, le correctif de ce problème a été publié dans mise à jour cumulative 4 pour SQL Server 2008 Service Pack 1. Pour plus d'informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
973602Lot de mises à jour cumulatives 4 pour SQL Server 2008 Service Pack 1
Remarque Les versions étant cumulatifs, chaque nouvelle version de correctif contient l'intégralité des correctifs et tous les correctifs de sécurité inclus avec la précédente de SQL Server 2008 version du correctif. Microsoft vous recommande d'envisager l'application la plus récente version du 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 :
970365Versions de SQL Server 2008 publiées après SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 les correctifs sont créés pour les service packs pour SQL Server spécifiques. Vous devez appliquer un correctif SQL Server 2008 Service Pack 1 pour une installation de SQL Server 2008 Service Pack 1. Par défaut, aucun correctif fourni dans un service pack SQL Server est inclus dans le prochain service pack SQL Server.
Vous devez activer l'indicateur de trace 4199 pour ce correctif prennent effet.
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section "S'applique à".
Références
Pour plus d'informations sur le modèle ISM (Incremental Servicing Model) pour SQL Server, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
935897Un modèle ISM (Incremental Servicing Model) est disponible à partir de l'équipe SQL Server pour la fourniture des correctifs logiciels pour les problèmes signalés


Pour plus d'informations sur le schéma d'affectation de noms pour les mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
822499Nouveau modèle d'affectation de noms pour les packages de mises à jour logicielles de Microsoft SQL Server


Pour plus d'informations sur la terminologie de mise à jour de logiciel, 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

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 973255 - Dernière mise à jour : 09/22/2009 11:00:38 - Révision : 1.1

Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Workgroup

  • kbmt kbsurveynew kbfix kbqfe kbexpertiseadvanced KB973255 KbMtfr
Commentaires