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

Traductions disponibles Traductions disponibles
Numéro d'article: 914288 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

INTRODUCTION

L'optimiseur de requête dans Microsoft SQL Server 2005 ou Microsoft SQL Server 2008 utilise les types d'informations suivants pour déterminer un plan de requête optimal :
  • Les métadonnées de 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 tous ces types d'informations mêmes si vous souhaitez reproduire le comportement de l'optimiseur de requête sur un système de test.

Services de support technique Microsoft peut vous demander pour générer un script des métadonnées de base de données. Microsoft client support services utilise ce script des métadonnées de base de données pour rechercher un problème d'optimisation. Cet article décrit les étapes pour générer le script de statistiques. L'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 script ne propose pas toutes les nécessaires options pour les étapes de cet article pour fonctionner correctement.

Script de la base de données entière

Lorsque vous générez une base de données statistiques-uniquement clone, il peut être plus facile et plus fiable script de la base de données entière au lieu d'objets individuels de script. Lorsque vous un script pour la base de données entière, vous recevez les avantages suivants :
  • Vous éviter des problèmes avec manquant objets dépendants sont nécessaires pour reproduire le problème.
  • Vous demander beaucoup moins d'étapes pour sélectionner les objets nécessaires.
note 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 importante de ressources de processeur. Nous vous recommandons que vous générez le script pendant les heures creuses. Ou, vous pouvez utiliser la deuxième option pour générer le script d'objets individuels.

Pour chaque base de données qui est référencée par votre 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ées et recherchez la base de données que vous souhaitez script.
  3. Cliquez avec le bouton droit sur la base de données, pointez sur tâches et puis cliquez sur Générer des scripts .
  4. Dans l'Assistant script, vérifiez que la base de données appropriée est activée. Activez la case à cocher script tous les objets de la base de données sélectionnée , puis cliquez sur suivant .
  5. Dans la boîte de dialogue Choisir les options de script , modifiez les paramètres suivants de la valeur par défaut à la valeur est répertoriée dans le tableau suivant.
    Réduire ce tableauAgrandir ce tableau
    Option de scriptValeur à sélectionner
    marges intérieures ANSI Cette propriété a la valeur True
    continuer le script sur erreur Cette propriété a la valeur True
    Générer des scripts pour les objets dépendants Cette propriété a la valeur True
    Inclure les noms de contrainte système Cette propriété a la valeur True
    Assemblage de script Cette propriété a la valeur True
    Création de base de données de script Cette propriété a la valeur True
    connexions de script Cette propriété a la valeur True
    autorisations de niveau script, objet Cette propriété a la valeur True
    Statistiques de script Statistiques et des histogrammes de script
    Index de script Cette propriété a la valeur True
    déclencheurs de script Cette propriété a la valeur True
    note L'option connexions script et l'option script des autorisations au niveau objet peuvent ne pas être requis, sauf si le schéma contient des objets qui appartiennent à ouvertures de session autre que dbo .
  6. Cliquez sur suivant .
  7. Cliquez sur l'option de script dans un fichier , puis entrez un nom de fichier.
  8. Cliquez sur Terminer .

Les objets individuels de script

Vous pouvez uniquement script individuels objets 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, sauf si tous les objets de base de données créées à l'aide de la clause WITH SCHEMABINDING, les informations de dépendance de la table de système sys.depends peut ne pas toujours être précises. Cette Inexactitude peut provoquer un des problèmes suivants :
  • Le processus de script ne pas un script pour un objet dépendant.
  • Le processus de script peut script des objets dans un ordre incorrect. Pour exécuter le script correctement, vous devez modifier manuellement le script généré.
Par conséquent, nous vous déconseillons de vous script des objets individuels, à moins que la base de données comporte de nombreuses objets et de script effectuerait normalement trop long. Si vous devez utiliser des objets individuels de script, procédez comme suit :
  1. Dans SQL Server Management Studio, développez bases de données et recherchez la base de données que vous souhaitez script.
  2. Cliquez avec le bouton droit sur la base de données, pointez sur script de base de données sous , pointez sur CREATE à et puis cliquez sur le fichier .
  3. Entrez un nom de fichier, puis cliquez sur Enregistrer .

    Le conteneur de base de données principal va être scripté. Ce conteneur inclut des fichiers, groupes de fichiers, la base de données et propriétés.
  4. Cliquez avec le bouton droit sur la base de données, pointez sur tâches et puis cliquez sur Générer des scripts .
  5. Assurez-vous que la base de données appropriée est activée, puis cliquez sur suivant .
  6. Dans la boîte de dialogue Choisir les options de script , modifiez les paramètres suivants de la valeur par défaut à la valeur est répertoriée dans le tableau suivant.
    Réduire ce tableauAgrandir ce tableau
    Option de scriptValeur à sélectionner
    marges intérieures ANSI Cette propriété a la valeur True
    continuer le script sur erreur Cette propriété a la valeur True
    Inclure les noms de contrainte système Cette propriété a la valeur True
    Générer des scripts pour les objets dépendants Cette propriété a la valeur True
    Assemblage de script Cette propriété a la valeur True
    connexions de script Cette propriété a la valeur True
    autorisations de niveau script, objet Cette propriété a la valeur True
    Statistiques de script Statistiques et des histogrammes de script
    script de base de données d'utilisation Cette propriété a la valeur True
    Index de script Cette propriété a la valeur True
    déclencheurs de script Cette propriété a la valeur True
    note L'option connexions script et l'option script des autorisations au niveau objet peuvent ne pas être requis, sauf si le schéma contient des objets qui appartiennent à ouvertures de session autre que dbo .
  7. Dans la boîte de dialogue types d'objets choisir , sélectionnez tous les types d'objet base de données de la requête problématique fait référence.

    Par exemple, si la requête fait uniquement référence tables, sélectionnez les tables . Si la requête fait référence à un affichage, sélectionnez des tables et vues . Si la requête problématique utilise une fonction définie par l'utilisateur, sélectionnez fonctions .
  8. Lorsque vous avez sélectionné tous les types objet 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 sélectionné dans l'étape 7. Dans chaque boîte de dialogue, sélectionnez les tables spécifiques, vues, fonctions ou autres objets de base de données, puis cliquez sur suivant .
  10. Cliquez sur l'option de script dans un fichier , puis spécifiez le même nom de fichier saisi dans l'étape 3.
  11. Cliquez sur Terminer pour démarrer le script.
Lorsque le script est terminé, envoyer le fichier script sur le technicien du support technique Microsoft. L'ingénieur de support 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
note 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 informations.

Comment les informations sont utilisées

Les tableaux suivants permettent d'expliquer comment l'optimiseur de requête utilise ces informations pour sélectionner un plan de requête.

Les métadonnées

Réduire ce tableauAgrandir ce tableau
ContraintesL'optimiseur de requête utilise fréquemment les contraintes pour détecter des contradictions entre la requête et le schéma sous-jacent. Par exemple, si la requête contient un " WHERE col = 5 » clause et un « CHECK (col < 5)" contrainte check existe, l'optimiseur de requête sait qu'aucune ligne correspondra.

L'optimiseur de requête permet de types de déductions sur nullability similaires. Par exemple, la clause « WHERE col est NULL » est connue pour être true ou false selon le nullability de la colonne et si la colonne provient de la table externe d'une jointure externe. La présence de contraintes FOREIGN KEY est utile pour déterminer l'ordre de jointure approprié et la cardinalité. L'optimiseur de requête pouvez utiliser les informations de contrainte pour éliminer des jointures ou simplifier prédicats. Ces modifications peuvent supprimer la nécessité d'accéder aux tables de base.
StatistiquesLes informations statistiques contient densité et un histogramme indique la répartition de la colonne gauche de la clé d'index et les statistiques. Selon la nature du prédicat, l'optimiseur de requête peut utiliser densité, l'histogramme ou les deux pour estimer la cardinalité d'un prédicat. Statistiques à jour sont nécessaires pour les estimations de cardinalité précis. Les estimations de cardinalité sont utilisées comme une entrée dans l'estimation le coût d'un opérateur. Par conséquent, vous devez avoir bonnes estimations de cardinalité pour obtenir des plans de requête optimaux.
Taille du tableau (nombre de lignes et des pages)L'optimiseur de requête utilise les histogrammes et la densité pour calculer la probabilité qu'un prédicat donné se VRAI ou FAUX. L'estimation de cardinalité final est calculée en multipliant la probabilité par le nombre de lignes renvoyées par l'opérateur enfant. Le nombre de pages dans la table ou l'index est un facteur dans l'estimation du 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 estimer le nombre de pages qui sera accessible pendant 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 crée nouvelles statistiques ou mise à jour les statistiques qui sont obsolètes. Le niveau de PARAMÉTRAGE affecte comment la requête entrée est paramétrée avant que la requête entrée est transmises à l'optimiseur de requête. Paramétrage peut affecter l'estimation de cardinalité et pouvez aussi empêcher la correspondance contre les vues indexées et les autres types d'optimisations. Le paramètre DATE_CORRELATION_OPTIMIZATION provoque l'optimiseur rechercher des corrélations entre les colonnes. Ce paramètre affecte l'estimation de cardinalité et coût.

Environnement

Réduire ce tableauAgrandir ce tableau
Options SET de session ANSI_NULLS paramètre détermine si le « NULL = NULL " expression est évaluée à VRAI. Estimation de cardinalité pour les jointures externes peut-être varient selon le paramètre en cours. En outre, les expressions ambigues peuvent également changer. Par exemple, le « col = NULL " expression est évaluée différemment selon le paramètre. Toutefois, le « col IS NULL " expression toujours possède la même manière.
Ressources matériellesLe coût pour les opérateurs tri et le hachage dépend de la quantité relative de mémoire disponible pour SQL Server. Par exemple, si la taille des données est plus grand que le cache, l'optimiseur de requête sait que les données doivent toujours être transmises sur le disque. Toutefois, si la taille des données est beaucoup plus petite que le cache, l'opération est probable à effectuer dans la mémoire. SQL Server prend également en compte optimisations différentes si le serveur possède plusieurs processeurs et si le parallélisme a été désactivé en utilisant une indication « MAXDOP » ou l'option de configuration degré maximum de parallélisme .
SQL Server stock maintien de l'unité de stockCertaines fonctionnalités sont activées uniquement sur spécifiques éditions de SQL Server 2005 ou de SQL Server 2008. Par exemple, correspondant à une requête sur les vues indexées seulement survient dans SQL Server 2005 Enterprise Edition. De même, la correspondance contre les guides de planification est limité à SQL Server 2000 Standard Edition et SQL Server 2005 Enterprise Edition.

Propriétés

Numéro d'article: 914288 - Dernière mise à jour: mardi 7 avril 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 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
  • 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 kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo KB914288 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: 914288
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