Utilitaire dta

L'utilitaire dta constitue la version d'invite de commandes de l'Assistant Paramétrage du moteur de base de données. L'utilitaire dta est conçu pour permettre l'utilisation de l'Assistant Paramétrage du moteur de base de données dans des applications et des scripts.

À l'instar de l'Assistant Paramétrage du moteur de base de données, l'utilitaire dta analyse une charge de travail et recommande des PDS (Physical Design Structures) pour améliorer les performances du serveur pour cette charge de travail. La charge de travail peut être un cache du plan, un fichier de trace ou une table du SQL Server Profiler, ou un script Transact-SQL. Les PDS incluent des index, des vues indexées et un partitionnement. Après l'analyse d'une charge de travail, l'utilitaire dta produit une recommandation pour la conception physique des bases de données et peut générer le script nécessaire pour la mise en œuvre de la recommandation. Des charges de travail peuvent être spécifiées à partir de l'invite de commandes avec l'argument -if ou -it. Vous pouvez également spécifier un fichier d'entrée XML à partir de l'invite de commandes avec l'argument -ix. Dans ce cas, la charge de travail est spécifiée dans le fichier d'entrée XML.

Syntaxe

dta
[ -? ] |
[
      [ -S server_name[ \instance ] ]
      { { -U login_id [-P password ] } | –E  }
      { -D database_name [ ,...n ] }
      [ -d database_name ] 
      [ -Tl table_list | -Tf table_list_file ]
      { -if workload_file | -it workload_trace_table_name  | 
        -ip | -ipf }
      { -ssession_name | -IDsession_ID }
      [ -F ]
      [ -of output_script_file_name ]
      [ -or output_xml_report_file_name ]
      [ -ox output_XML_file_name ]
      [ -rl analysis_report_list [ ,...n ] ]
      [ -ix input_XML_file_name ]
      [ -A time_for_tuning_in_minutes ]
      [ -n number_of_events ]
      [ -m minimum_improvement ]
      [ -fa physical_design_structures_to_add ]
      [ -fi ]
      [ -fp partitioning_strategy ]
      [ -fk keep_existing_option ]
      [ -fx drop_only_mode ]
      [ -B storage_size ]
      [ -c max_key_columns_in_index ]
      [ -C max_columns_in_index ]
      [ -e | -e tuning_log_name ]
      [ -N online_option]
      [ -q ]
      [ -u ]
      [ -x ]
      [ -a ]
]

Arguments

  • -?
    Affiche les informations d'utilisation.

  • -A time_for_tuning_in_minutes
    Spécifie la limite de durée de réglage en minutes. dta utilise la limite de temps spécifiée pour régler la charge de travail et générer un script avec les modifications de conception physique recommandées. Par défaut, dta utilise une durée de réglage de 8 heures. La spécification de 0permet une durée de réglage illimitée. dta pourra éventuellement achever le réglage de toute la charge de travail avant l'expiration de la limite de durée. Cependant, pour vous assurer que toute la charge de travail est réglée, nous vous recommandons de spécifier une durée de réglage illimitée (-A 0).

  • -a
    Règle la charge de travail et applique la recommandation sans vous demander de confirmation.

  • -B storage_size
    Spécifie l'espace maximal (en mégaoctets) pouvant être consommé par l'index et le partitionnement recommandés. Lorsque plusieurs bases de données sont paramétrées, les recommandations pour toutes les bases de données sont prises en compte pour le calcul de l'espace. Par défaut, dta utilise la plus petite des tailles de stockage suivantes :

    • Le triple de la taille actuelle des données brutes, qui inclut la taille totale des segments et les index cluster des tables de la base de données.

    • L'espace libre sur tous les disques durs reliés plus la taille des données brutes.

    La taille de stockage par défaut ne comprend pas les index non-cluster et les vues indexées.

  • -C max_columns_in_index
    Spécifie le nombre maximal de colonnes dans les index proposés par dta. La valeur maximale est 1024. Par défaut, cet argument a la valeur 16.

  • -c max_key_columns_in_index
    Spécifie le nombre maximal de colonnes clés dans les index proposés par dta. La valeur par défaut est 16 (valeur maximale autorisée). dta peut également créer des index avec des colonnes incluses. Les index recommandés avec des colonnes incluses peuvent dépasser le nombre de colonnes spécifiées dans cet argument.

  • -D database_name
    Spécifie le nom de chaque base de données à paramétrer. La première base de données est la base de données par défaut. Vous pouvez spécifier plusieurs bases de données en séparant les noms de bases de données avec des virgules, par exemple :

    dta –D database_name1, database_name2...
    

    Vous pouvez également spécifier plusieurs bases de données en utilisant l'argument –D pour chaque nom de base de données, par exemple :

    dta –D database_name1 -D database_name2... n
    

    L'argument -D est obligatoire. Si l'argument -d n'a pas été spécifié, dta se connecte initialement à la base de données qui a été spécifiée avec la première clause USE database_name dans la charge de travail. Si la charge de travail ne comporte pas de clause USE database_name explicite, vous devez utiliser l'argument -d.

    Par exemple, si vous avez une charge de travail qui ne contient pas de clause USE database_name explicite et si vous utilisez la commande dta suivante, aucune recommandation n'est générée :

    dta -D db_name1, db_name2...
    

    Mais si vous utilisez la même charge de travail et employez la commande dta suivante qui utilise l'argument -d, une recommandation est générée :

    dta -D db_name1, db_name2 -d db_name1
    
  • -d database_name
    Spécifie la première base de données à laquelle dta se connecte lors du paramétrage d'une charge de travail. Une seule base de données peut être spécifiée pour cet argument. Par exemple :

    dta -d AdventureWorks2012 ...
    

    Si plusieurs noms de bases de données sont spécifiés, dta retourne une erreur. L'argument -d est facultatif.

    Si vous utilisez un fichier d'entrée XML, vous pouvez spécifier la première base de données à laquelle dta se connecte en utilisant l'élément DatabaseToConnect qui se trouve sous l'élément TuningOptions. Pour plus d'informations, consultez Assistant Paramétrage du moteur de base de données.

    Si vous ne réglez qu'une seule base de données, l'argument -d fournit une fonctionnalité similaire à l'argument -d de l'utilitaire sqlcmd, mais il n'exécute pas l'instruction USE database_name. Pour plus d'informations, consultez Utilitaire sqlcmd.

  • -E
    Utilise une connexion approuvée au lieu de demander un mot de passe. L'argument -E ou l'argument -U, qui spécifie un ID de connexion, doit être utilisé.

  • -e tuning_log_name
    Spécifie le nom de la table ou du fichier où dta enregistre les événements qu'il n'a pas pu régler. La table est créée sur le serveur où le réglage est effectué.

    Si une table est employée, spécifiez son nom selon le format : [database_name].[owner_name].table_name. Le tableau suivant indique les valeurs par défaut de chaque paramètre :

    Paramètre

    Valeur par défaut

    database_name

    database_name spécifié avec l'option –D

    owner_name

    dbo

    [!REMARQUE]

    owner_name doit être dbo. Si une autre valeur est spécifiée, l'exécution de dta échoue et il retourne une erreur.

    table_name

    Aucune

    Si un fichier est utilisé, spécifiez .xml comme extension. Par exemple, TuningLog.xml.

    [!REMARQUE]

    L'utilitaire dta ne supprime pas le contenu des tables du journal d'analyse définies par l'utilisateur si la session est supprimée. Il est recommandé de spécifier une table pour le journal d'analyse lorsque vous réglez des charges de travail très importantes. Le paramétrage de charges de travail importantes pouvant engendrer des journaux de paramétrage volumineux, il est plus rapide d'effacer les sessions lorsqu'une table est utilisée.

  • -F
    Permet à dta de remplacer un fichier de sortie existant. Si un fichier de sortie portant le même nom existe déjà et si -F n'est pas spécifié, dtaretourne une erreur. Vous pouvez utiliser -F avec -of, -or ou -ox.

  • -fa physical_design_structures_to_add
    Spécifie quels types de PDS (Physical Design Structures) dta doit inclure dans la recommandation. Le tableau suivant répertorie et décrit les valeurs pouvant être spécifiées pour cet argument. Lorsqu'aucune valeur n'est spécifiée, dta utilise la valeur par défaut -faIDX.

    Valeur

    Description

    IDX_IV

    Index et vues indexées.

    IDX

    Index uniquement.

    IV

    Vues indexées uniquement.

    NCL_IDX

    Index non-cluster uniquement.

  • -fi
    Spécifie que les index filtrés soient considérés pour de nouvelles recommandations. Pour plus d'informations, consultez Créer des index filtrés.

  • -fk keep_existing_option
    Spécifie les structures PDS (Physical Design Structures) que dta doit conserver lors de la génération de sa recommandation. Le tableau suivant répertorie et décrit les valeurs pouvant être spécifiées pour cet argument :

<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<thead>
<tr class="header">
<th><p>Valeur</p></th>
<th><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>NONE</p></td>
<td><p>Aucune structure existante</p></td>
</tr>
<tr class="even">
<td><p>ALL</p></td>
<td><p>Toutes les structures existantes</p></td>
</tr>
<tr class="odd">
<td><p>ALIGNED</p></td>
<td><p>Toutes les structures alignées sur les partitions.</p></td>
</tr>
<tr class="even">
<td><p>CL_IDX</p></td>
<td><p>Tous les index cluster sur les tables</p></td>
</tr>
<tr class="odd">
<td><p>IDX</p></td>
<td><p>Tous les index cluster et non-cluster sur les tables</p></td>
</tr>
</tbody>
</table>
  • -fp partitioning_strategy
    Spécifie si les nouvelles PDS (Physical Design Structures) (index et vues indexées) que dta propose doivent être partitionnées et de quelle manière. Le tableau suivant répertorie et décrit les valeurs pouvant être spécifiées pour cet argument :

    Valeur

    Description

    NONE

    Aucun partitionnement

    FULL

    Partitionnement complet (choisissez cette option pour améliorer les performances)

    ALIGNED

    Partitionnement aligné seulement (choisissez cette valeur pour simplifier la gestion)

    ALIGNED signifie que dans la recommandation générée par dta, chaque index proposé est partitionné exactement de la même manière que la table sous-jacente pour laquelle l'index est défini. Les index non-cluster sur une vue indexée sont alignés avec la vue indexée. Une seule valeur peut être spécifiée pour cet argument. La valeur par défaut est -fpNONE.

  • -fx drop_only_mode
    Spécifie que dta considère uniquement la suppression des PDS (Physical Design Structures) existantes. Aucune nouvelle PDS n'est considérée. Lorsque cette option est spécifiée, dta évalue l'utilité des PDS (Physical Design Structures) existantes et recommande la suppression des structures rarement utilisées. Cet argument ne prend aucune valeur. Il ne peut pas être utilisé avec les arguments -fa, -fp ou -fk ALL

  • -ID session_ID
    Spécifie un identificateur numérique pour la session de réglage. Si ce paramètre n'est pas spécifié, dta génère un numéro d'identification. Vous pouvez utiliser cet identificateur pour afficher des informations pour des sessions de réglage existantes. Si vous ne spécifiez pas de valeur pour -ID, un nom de session doit être spécifié avec -s.

  • -ip
    Spécifie que le cache du plan est utilisé comme charge de travail. Les 1 000 premiers événements du cache du plan pour les bases de données explicitement sélectionnées sont analysés. Cette valeur peut être modifiée à l'aide de l'option -n.

  • -ipf
    Spécifie que le cache du plan est utilisé comme charge de travail. Les 1 000 premiers événements du cache du plan pour toutes les bases de données sont analysés. Cette valeur peut être modifiée à l'aide de l'option -n.

  • -if workload_file
    Spécifie le chemin d'accès et le nom du fichier de charge de travail à utiliser comme entrée pour le réglage. Le fichier doit être dans l'un de ces formats : .trc (fichier trace du Générateur de profils SQL Server), .sql (fichier SQL) ou .log (fichier de trace de SQL Server). Un fichier de charge de travail ou une table de charge travail doit être spécifié.

  • -it workload_trace_table_name
    Spécifie le nom de la table contenant la trace de charge de travail pour le réglage. Le nom est spécifié au format : [database_name].[owner_name]**.**table_name.

    Le tableau suivant indique les valeurs par défaut de chaque paramètre :

    Paramètre

    Valeur par défaut

    database_name

    database_name spécifié avec l'option –D.

    owner_name

    dbo.

    table_name

    Aucun.

    [!REMARQUE]

    owner_name doit être dbo. Si toute autre valeur est spécifiée, l'exécution de dta échoue et une erreur est retournée. Notez également qu'une table de charge de travail ou un fichier de charge de travail doit être spécifié.

  • -ix input_XML_file_name
    Spécifie le nom du fichier XML contenant les informations d'entrée dta. Ce doit être un document XML valide, conforme à DTASchema.xsd. Les arguments conflictuels spécifiés à partir de l'invite de commandes pour les options de réglage remplacent la valeur correspondante dans ce fichier XML. Une seule exception : configuration spécifiée par l'utilisateur entrée dans le mode évaluation dans le fichier d'entrée XML. Par exemple, si une configuration est entrée dans l'élément Configuration du fichier d'entrée XML et si un élément EvaluateConfiguration est également spécifié comme l'une des options de réglage, les options de réglage spécifiées dans le fichier d'entrée XML sont prioritaires par rapport à toute option de réglage entrée à partir de l'invite de commandes.

  • -m minimum_improvement
    Spécifie le pourcentage minimal d'amélioration que la configuration recommandée doit satisfaire.

  • -N online_option
    Spécifie si des PDS (Physical Design Structures) sont créées en ligne. Le tableau suivant répertorie et décrit les valeurs pouvant être spécifiées pour cet argument :

    Valeur

    Description

    OFF

    Aucune PDS ne peut être créée en ligne.

    ON

    Toutes les PDS recommandées peuvent être créées en ligne.

    MIXED

    L'Assistant Paramétrage du moteur de base de données tente de recommander des PDS pouvant être créées en ligne lorsque cela est possible.

    Si des index sont créés en ligne, ONLINE = ON est ajouté à sa définition d'objet.

  • -n number_of_events
    Spécifie le nombre d'événements dans la charge de travail que dta doit régler. Si cet argument est spécifié et si la charge de travail est un fichier de trace qui contient des informations de durée, dta règle les événements en ordre décroissant de durée. Cet argument est utile pour comparer deux configurations de PDS. Pour comparer deux configurations, spécifiez le même nombre d'événements à régler pour les deux configurations, puis spécifiez une durée de réglage illimitée pour les deux de la manière suivante :

    dta -n number_of_events -A 0
    

    Dans ce cas, il est important de spécifier une durée de réglage illimitée (-A 0). Sinon, l'Assistant Paramétrage du moteur de base de données utilise par défaut une durée de réglage de 8 heures.

  • -of output_script_file_name
    Spécifie que dta écrit la recommandation sous la forme d'un script Transact-SQL sous le nom de fichier et à la destination spécifiés.

    Vous pouvez utiliser -F avec cette option. Assurez-vous que le nom de fichier est unique, surtout si vous utilisez -or et -ox.

  • -or output_xml_report_file_name
    Spécifie que dta écrit la recommandation dans un rapport de sortie XML. Si un nom de fichier est fourni, les recommandations sont écrites dans cette destination. Sinon, dta utilise le nom de session pour générer le nom de fichier et l'écrit dans le répertoire en cours.

Vous pouvez utiliser **-F** avec cette option. Assurez-vous que le nom de fichier est unique, surtout si vous utilisez **-of** et **-ox**.
  • -ox output_XML_file_name
    Spécifie que dta écrit la recommandation en tant que fichier XML sous le nom de fichier et à la destination fournis. Vérifiez que l'Assistant Paramétrage du moteur de base de données possède des autorisations d'écriture dans le répertoire de destination.

    Vous pouvez utiliser -F avec cette option. Assurez-vous que le nom de fichier est unique, surtout si vous utilisez -of et -or.

  • -P password
    Spécifie le mot de passe de l'ID de connexion. Si cette option est omise, dta demande d'entrer un mot de passe.

  • -q
    Active le mode silencieux. Aucune information n'est écrite sur la console, notamment les informations de progression et d'en-tête.

  • -rl analysis_report_list
    Spécifie la liste des rapports d'analyse à générer. Le tableau suivant répertorie les valeurs pouvant être spécifiées pour cet argument :

    Valeur

    Rapport

    ALL

    Tous les rapports d'analyse

    STMT_COST

    Rapport de coût d'instruction

    EVT_FREQ

    Rapport de fréquence d'événement

    STMT_DET

    Rapport détaillé d'instruction

    CUR_STMT_IDX

    Rapport de relation instruction-index (configuration actuelle)

    REC_STMT_IDX

    Rapport de relation instruction-index (configuration recommandée)

    STMT_COSTRANGE

    Rapport de fourchette de coûts d'instruction

    CUR_IDX_USAGE

    Rapport d'utilisation de l'index (configuration actuelle)

    REC_IDX_USAGE

    Rapport d'utilisation de l'index (configuration recommandée)

    CUR_IDX_DET

    Rapport détaillé d'index (configuration actuelle)

    REC_IDX_DET

    Rapport détaillé d'index (configuration recommandée)

    VIW_TAB

    Rapport de relation vue-table

    WKLD_ANL

    Rapport d'analyse de la charge de travail

    DB_ACCESS

    Rapport d'accès à la base de données

    TAB_ACCESS

    Rapport d'accès à la table

    COL_ACCESS

    Rapports d'accès à la colonne

    Spécifiez plusieurs rapports en séparant les valeurs avec des virgules, par exemple :

    ... -rl EVT_FREQ, VIW_TAB, WKLD_ANL ...
    
  • -S server_name[ \instance]
    Spécifie le nom de l'ordinateur et de l'instance de SQL Server auxquels la connexion doit être établie. Si la valeur de server_name n'est pas spécifiée, dta se connecte à l'instance par défaut de SQL Server sur l'ordinateur local. Cette option est requise lors de la connexion à une instance nommée ou de l'exécution de dta à partir d'un ordinateur distant sur le réseau.

  • -s session_name
    Spécifie le nom de la session de réglage. Ce paramètre est requis si -ID n'est pas spécifié.

  • -Tf table_list_file
    Spécifie le nom du fichier contenant la liste des tables à paramétrer. Chaque table listée à l'intérieur du fichier doit commencer sur une nouvelle ligne. Les noms de table doivent être complets avec une dénomination en trois parties, par exemple, AdventureWorks2012.HumanResources.Department. Éventuellement, pour invoquer la fonctionnalité de dimensionnement d'une table, le nom d'une table existante peut être suivi par un nombre indiquant le nombre de lignes prévues pour cette table. L'Assistant Paramétrage du moteur de base de données tient compte du nombre prévu de lignes lors du réglage ou de l'évaluation des instructions dans la charge de travail faisant référence à ces tables. Notez qu'il peut y avoir un ou plusieurs espaces entre le nombre number_of_rows et table_name.

    Il s'agit du format de fichier pour table_list_file :

    database_name.[schema_name].table_name [number_of_rows]

    database_name.[schema_name].table_name [number_of_rows]

    database_name.[schema_name].table_name [number_of_rows]

    Cet argument peut remplacer l'entrée d'une liste de tables à l'invite de commandes (-Tl). N'utilisez pas un fichier de liste de tables (-Tf) si vous employez -Tl. Si les deux arguments sont employés, dta échoue et retourne une erreur.

    Si les arguments -Tf et -Tl sont omis, toutes les tables utilisateur dans les bases de données spécifiées sont prises en compte pour le réglage.

  • -Tl table_list
    Spécifie à l'invite de commandes une liste de tables à régler. Placez des virgules entre les noms de table pour les séparer. Si une seule base de données est spécifiée avec l'argument -D, les noms de table n'ont pas besoin d'être qualifiés avec un nom de base de données. Sinon, le nom complet au format database_name.schema_name.table_name est requis pour chaque table.

    Cet argument constitue une alternative à l'utilisation d'un fichier de liste de tables (-Tf). Si les deux arguments -Tl et -Tf sont employés, dta échoue et retourne une erreur.

  • -U login_id
    Spécifie l'ID de connexion utilisé pour une connexion à SQL Server.

  • -u
    Lance l'interface utilisateur graphique de l'Assistant Paramétrage du moteur de base de données. Tous les paramètres sont traités comme les paramètres initiaux de l'interface utilisateur.

  • -x
    Démarre une session de réglage et quitte.

Notes

Appuyez sur Ctrl+C pour arrêter la session de réglage et générer des recommandations basées sur l'analyse que dta a effectué jusqu'à ce point. Un message vous demande de déterminer si vous souhaitez générer ou non des recommandations. Appuyez de nouveau sur CTRL+C pour arrêter la session de réglage sans générer de recommandations.

Exemples

A. Réglage d'une charge de travail incluant des index et des vues indexées dans sa recommandation

Cet exemple utilise une connexion sécurisée (-E) pour une connexion à la base de données tpcd1G sur MyServer afin d'analyser une charge de travail et créer des recommandations. Il écrit la sortie dans un fichier de script nommé script.sql. Si script.sql existe déjà, dta remplace le fichier, car l'argument -F a été spécifié. La session de réglage se poursuit pendant une durée illimitée pour garantir l'analyse complète de la charge de travail (-A 0). La recommandation doit fournir une amélioration minimale de 5 % (-m 5). dta doit inclure des index et des vues indexées dans sa recommandation finale (-fa IDX_IV).

dta –S MyServer –E -D tpcd1G -if tpcd_22.sql -F –of script.sql –A 0 -m 5 -fa IDX_IV

B. Limitation de l'utilisation du disque

Cet exemple limite la taille de base de données totale, qui inclut les données brutes et les index supplémentaires, à 3 gigaoctets (Go) (-B 3000) et dirige la sortie vers d:\result_dir\script1.sql. Il ne s'exécute pas plus d'une heure (-A 60).

dta –D tpcd1G –if tpcd_22.sql -B 3000 –of "d:\result_dir\script1.sql" –A 60

C. Limitation du nombre de requêtes paramétrables

Cet exemple limite le nombre de requêtes lues du fichier orders_wkld.sql à un maximum de 10 (-n 10) et s'exécute pendant 15 minutes (-A 15), selon l'événement se produisant en premier. Pour être certain que toutes les 10 requêtes sont réglées, spécifiez une durée de réglage illimitée avec -A 0. Si le temps est important, spécifiez une limite de temps appropriée en spécifiant le nombre de minutes disponibles pour le réglage avec l'argument -A comme l'illustre cet exemple.

dta –D orders –if orders_wkld.sql –of script.sql –A 15 -n 10

D. Réglage de tables spécifiques répertoriées dans un fichier

Cet exemple illustre l'utilisation de table_list_file (l'argument -Tf). Le contenu du fichier table_list.txt est le suivant :

AdventureWorks2012.Sales.Customer  100000
AdventureWorks2012.Sales.Store
AdventureWorks2012.Production.Product  2000000

Le contenu de table_list.txt spécifie que :

  • Seules les tables Customer, Store et Product dans la base de données doivent être réglées.

  • Le nombre de lignes dans les tables Customer et Product sont par défaut de 100 000 et de 2 000 000, respectivement.

  • Le nombre de lignes dans Store doit être évalué au nombre actuel de lignes dans la table.

Notez qu'il peut exister un ou plusieurs espaces entre le nombre de lignes et le nom de la table précédente dans table_list_file.

La durée de réglage est de 2 heures (-A 120) et la sortie est écrite dans un fichier XML (-ox XMLTune.xml).

dta –D pubs –if pubs_wkld.sql –ox XMLTune.xml –A 120 –Tf table_list.txt

Voir aussi

Concepts

Référence de l'utilitaire d'invite de commandes (moteur de base de données)

Assistant Paramétrage du moteur de base de données