Comment faire pour générer un script des métadonnées de la base de données nécessaires pour créer une base de données statistiques uniquement dans SQL Server

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 914288
INTRODUCTION
L'optimiseur de requête dans Microsoft SQL Server utilise les types d'informations suivants pour déterminer un plan de requête optimal :
  • Les métadonnées de la base de données
  • L'environnement matériel
  • L'état de session de base de données
En règle générale, vous devez simuler ces mêmes types d'informations si vous souhaitez reproduire le comportement de l'optimiseur de requêtes sur un système de test.

Services de Support technique Microsoft peut vous demander de générer un script des métadonnées de base de données. Services de Support technique Microsoft utilise ce script des métadonnées de base de données pour étudier un problème de l'optimiseur. Cet article décrit les étapes pour générer le script des statistiques. Cet article décrit également comment l'optimiseur de requête utilise les informations.
Plus d'informations
Si vous utilisez SQL Server 2005, avant de suivre les étapes pour générer le script, assurez-vous que SQL Server Management Studio est la version de SQL Server 2005 Service Pack 2 ou une version ultérieure. Si vous utilisez des versions antérieures de SQL Server Management Studio dans SQL Server 2005, l'Assistant de Script ne contient pas toutes les options nécessaires à la procédure décrite dans cet article fonctionne correctement.

Script de la base de données entière

Lorsque vous générez une base de données statistiques seule de clone, il peut être plus facile et plus fiable à la base de données entière plutôt que des objets de script de script. Lorsque le script de la base de données entière, vous bénéficiez des avantages suivants :
  • Vous évitez les problèmes sans les objets dépendants qui sont nécessaires pour reproduire le problème.
  • Vous avez besoin beaucoup moins d'étapes pour sélectionner les objets nécessaires.
Remarque Si vous générez un script pour une base de données et les métadonnées de la base de données contient des milliers d'objets, le processus de script consomme des ressources UC importantes. Il est recommandé de générer le script pendant les heures creuses. Ou bien, vous pouvez utiliser la deuxième option pour générer le script des objets individuels.

Pour chaque base de données qui est référencé par la requête de script, procédez comme suit :
  1. Ouvrez SQL Server Management Studio.
  2. Dans l' Explorateur d'objets, développez bases de donnéeset recherchez la base de données que vous voulez générer un script.
  3. Avec le bouton droit de la base de données, pointez sur tâches, puis cliquez sur Générer des Scripts.
  4. Dans l'Assistant de Script, vérifiez que la base de données correct est sélectionné. Activez la case à cocher Script tous les objets dans la base de données sélectionnée , puis cliquez sur suivant.
  5. Dans la boîte de dialogue Choisir les Options de Script , modifier les paramètres suivants à partir de la valeur par défaut à la valeur qui est répertoriée dans le tableau suivant.
    Option de scriptValeur à sélectionner
    Remplissage ANSITrue
    Continuer sur les erreurs de scriptTrue
    Générer un Script pour les objets dépendantsTrue
    Inclure les noms de contraintes systèmeTrue
    Classement de scriptTrue
    Création de la base de données de scriptTrue
    Connexions de scriptTrue
    Script des autorisations au niveau objetTrue
    Statistiques de scriptGénérer un script des statistiques et des histogrammes
    Script pour les indexTrue
    Déclencheurs de scriptTrue
    Remarque L'option Connexions de Script et l'option Autorisations de niveau objet Script peut-être pas nécessaires, sauf si le schéma contient des objets qui sont détenus par les connexions d'accès autre que dbo.
  6. Cliquez sur suivant.
  7. Cliquez sur l'option de Script au fichier et entrez un nom de fichier.
  8. Cliquez sur Terminer.

Objets de script individuels

Vous pouvez uniquement des objets de script qui sont référencés par une requête spécifique au lieu de la base de données complète de script. Toutefois, à moins que tous les objets de base de données ont été créés à l'aide de la clause WITH SCHEMABINDING, les informations de dépendance dans la table système sys.depends ne peuvent pas toujours être précises. Cette imprécision peut provoquer les problèmes suivants :
  • Le processus de script un script pas un objet dépendant.
  • Le processus de script peut objets de script dans un ordre incorrect. Pour exécuter le script, vous devez modifier manuellement le script généré.
Par conséquent, nous ne recommandons pas générer le script des objets individuels, sauf si la base de données a beaucoup d'objets et scripts seraient sinon trop longue. Si vous devez utiliser des objets de script, procédez comme suit :
  1. Dans SQL Server Management Studio, développez bases de donnéeset recherchez la base de données que vous voulez générer un script.
  2. Avec le bouton droit de la base de données, pointez sur Script de base de données, pointez sur créer à, puis cliquez sur fichier.
  3. Entrez un nom de fichier, puis cliquez sur Enregistrer.

    Le conteneur de base de données est scripté. Ce conteneur inclut des fichiers, groupes de fichiers, la base de données et propriétés.
  4. Avec le bouton droit de la base de données, pointez sur tâches, puis cliquez sur Générer des Scripts.
  5. Assurez-vous que la base de données correcte est sélectionnée, puis cliquez sur suivant.
  6. Dans la boîte de dialogue Choisir les Options de Script , modifier les paramètres suivants à partir de la valeur par défaut à la valeur qui est répertoriée dans le tableau suivant.
    Option de scriptValeur à sélectionner
    Remplissage ANSITrue
    Continuer sur les erreurs de scriptTrue
    Inclure les noms de contraintes systèmeTrue
    Générer un Script pour les objets dépendantsTrue
    Classement de scriptTrue
    Connexions de scriptTrue
    Script des autorisations au niveau objetTrue
    Statistiques de scriptGénérer un script des statistiques et des histogrammes
    Script de base de données d'utilisationTrue
    Script pour les indexTrue
    Déclencheurs de scriptTrue
    Remarque L'option Connexions de Script et l'option Autorisations de niveau objet Script peut-être pas nécessaires, sauf si le schéma contient des objets qui sont détenus par les connexions d'accès autre que dbo.
  7. Dans la boîte de dialogue Choisir les Types d'objet , sélectionnez tous les types d'objet de base de données qui fait référence à la requête qui pose problème.

    Par exemple, si la requête référence uniquement les tables, sélectionnez <b00> </b00>tableaux. Si la requête fait référence à une vue, sélectionnez les Tables et les vues. Si la requête qui pose problème utilise une fonction définie par l'utilisateur, sélectionnez fonctions.
  8. Lorsque vous avez sélectionné tous les types d'objets qui sont référencés par la requête, cliquez sur suivant.
  9. Une boîte de dialogue s'affiche pour chaque type d'objet de base de données que vous avez sélectionné à l'étape 7. Dans chaque boîte de dialogue, sélectionnez les tables spécifiques, des vues, des fonctions ou des autres objets de base de données, puis cliquez sur suivant.
  10. Cliquez sur l'option de Script au fichier et ensuite spécifier le même nom de fichier que vous avez entré à l'étape 3.
  11. Cliquez sur Terminer pour démarrer le script.
Lorsque le script est terminé, envoyez le fichier de script à l'ingénieur du support Microsoft. Le technicien du support technique Microsoft peut également demander les informations suivantes :
  • La configuration matérielle, notamment le nombre de processeurs et la quantité de mémoire physique existe
  • Les options SET qui étaient actives lors de l'exécution de la requête
Remarque Vous avez peut-être déjà fourni ces informations en envoyant un rapport SQLDiag ou une trace du Générateur de profils SQL. Vous avez peut-être également utilisé une autre méthode pour fournir cette information.

Comment les informations sont utilisées.

Les tableaux suivants vous aider à comprendre comment l'optimiseur de requête utilise ces informations pour sélectionner un plan de requête.

Métadonnées

ContraintesL'optimiseur de requête utilise fréquemment des contraintes pour détecter les contradictions éventuelles entre la requête et le schéma sous-jacent. Par exemple, si la requête comporte un « col WHERE = clause 5 » et « vérification (col< 5)"="" check="" constraint="" exists,="" the="" query="" optimizer="" knows="" that="" no="" rows="" will="">

L'optimiseur de requête rend les types similaires de déductions sur la possibilité de valeur null. Par exemple, la clause « Où col est NULL » est connue pour être true ou false en fonction de la possibilité de valeur null de la colonne et si la colonne est à partir de la table externe d'une jointure externe. La présence de contraintes de clé étrangère est utile pour déterminer l'ordre de jointure approprié et la cardinalité. L'optimiseur de requêtes peut utiliser les informations de contrainte à éliminer les jointures ou à simplifier les prédicats. Ces modifications peuvent supprimer la nécessité d'accéder aux tables de base.
StatistiquesLes informations statistiques contient un histogramme qui affiche la répartition de la première colonne de la clé d'index et de statistiques et densité. Selon la nature du prédicat, l'optimiseur de requêtes peut utiliser densité et l'histogramme pour estimer la cardinalité d'un prédicat. Les statistiques à jour sont nécessaires pour les estimations de cardinalité précis. Les estimations de cardinalité sont utilisées en tant qu'entrée dans l'estimation du coût d'un opérateur. Par conséquent, vous devez avoir de bonnes estimations de cardinalité pour obtenir des plans de requête optimaux.
Taille du tableau (nombre de lignes et de pages)L'optimiseur de requête utilise les histogrammes et densité pour calculer la probabilité qu'un prédicat donné est true ou false. L'estimation de cardinalité finale est calculée en multipliant la probabilité par le nombre de lignes qui sont retournées par l'opérateur child.Le nombre de pages dans la table ou l'index est un facteur dans l'estimation de coût d'e/s. La taille du tableau est utilisée pour calculer le coût d'une analyse, et il est utile lorsque vous estimez le nombre de pages qui vont être consultées au cours d'une recherche d'index.
Options de base de donnéesPlusieurs options de base de données peuvent affecter l'optimisation. Les options AUTO_CREATE_STATISTICS et AUTO_UPDATE_STATISTICS affectent si l'optimiseur de requête va créer les nouvelles statistiques ou mise à jour des statistiques qui sont obsolètes. Le niveau de paramétrage affecte la façon dont la requête d'entrée est paramétrée avant la requête d'entrée est transmise à l'optimiseur de requêtes. Paramétrage peut affecter l'estimation de cardinalité et peut également empêcher la correspondance avec les vues indexées et d'autres types d'optimisations. Le paramètre DATE_CORRELATION_OPTIMIZATION provoque l'optimiseur recherche des corrélations entre les colonnes. Ce paramètre affecte l'estimation de cardinalité et le coût.

Environnement

DÉFINIR les options de sessionANSI_NULLS si la définition a une incidence sur la « NULL = NULL "expression a la valeur True. Estimation de cardinalité pour les jointures externes peut-être changer en fonction du paramètre en cours. En outre, les expressions ambiguës peuvent également changer. Par exemple, le « col = NULL "expression évalue différemment en fonction du paramètre. Cependant, le "col IS NULL" expression aboutit toujours la même façon.
Ressources matériellesLe coût pour les opérateurs de tri et de hachage dépend de la quantité relative de mémoire disponible pour SQL Server. Par exemple, si la taille des données est plus grande que le cache, l'optimiseur sait que les données doivent toujours être mis en attente sur le disque. Toutefois, si la taille des données est beaucoup plus petite que le cache, l'opération est susceptible d'être effectuées dans la mémoire. SQL Server prend également en compte les optimisations différentes si le serveur possède plusieurs processeurs, et si le parallélisme n'a pas été désactivé à l'aide d'un indicateur de « MAXDOP » ou de l'option de configuration degré max. de parallélisme .
clone de base de données

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 914288 - Dernière mise à jour : 01/27/2015 20:57:00 - Révision : 1.0

Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, 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, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems

  • kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo kbmt KB914288 KbMtfr
Commentaires