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 fichier ou une table du Générateur de profils SQL Server, 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 l'argument -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 }
{ -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.-Atime_for_tuning_in_minutes
Spécifie la limite de la 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 pourrait terminer 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.-Bstorage_size
Spécifie l'espace maximal (en mégaoctets) pouvant être consommé par l'index et le partitionnement recommandés. Lors du réglage de plusieurs bases de données, des 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 :Trois fois la taille des données brute actuelle, incluant la taille totale des tas et des index cluster sur des tables dans 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.
-Cmax_columns_in_index
Spécifie le nombre maximal de colonnes dans les index proposés par dta. La valeur maximale dépend de la version de SQL Server. La valeur maximale pour SQL Server 2000 est 16 et la valeur maximale pour SQL Server 2005 et SQL Server 2008 est 1024. Par défaut, cet argument a la valeur 16.-cmax_key_columns_in_index
Spécifie le nombre maximal de colonnes de clés dans les index proposés par dta. La valeur par défaut est 16 (valeur maximale autorisée). Cet argument s'applique uniquement à SQL Server 2005 et SQL Server 2008. 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.-Ddatabase_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
-ddatabase_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 adventureworks ...
Si plusieurs noms de bases de données sont spécifiés, dta retourne une erreur. L'argument -d est obligatoire.
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 Référence des fichiers d'entrée XML (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é.-etuning_log_name
Spécifie le nom de la table ou du fichier où dta enregistre les événements qu'il n'a 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
Remarqueowner_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
Aucun
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 d'écraser 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.-faphysical_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. Pour plus d'informations sur les versions de SQL Server ne prenant pas en charge cette option de réglage, consultez Options d'analyse non prises en charge.
IDX
Index uniquement.
IV
Vues indexées seulement. Pour plus d'informations sur les versions de SQL Server ne prenant pas en charge cette option de réglage, consultez Options d'analyse non prises en charge.
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 Règles de conception d'index filtrés.-fkkeep_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 :
<div class="caption">
</div>
<div class="tableSection">
<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>
</div>
-fppartitioning_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.
-fxdrop_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-IDsession_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.-ifworkload_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 présenter l'un des formats suivants : .trc (fichier de 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é.-itworkload_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
Aucune.
[!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é.
-ixinput_XML_file_name
Spécifie le nom du fichier XML contenant les informations d'entrée dta. Cette valeur doit correspondre à un document XML valide conforme à DTASchema.xsd. Les arguments en conflit spécifiés à partir de l'invite de commandes pour les options de réglage sont prioritaires par rapport à 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.-mminimum_improvement
Spécifie le pourcentage minimal d'amélioration que la configuration recommandée doit satisfaire.-Nonline_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.
-nnumber_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.
-ofoutput_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.
-oroutput_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**.
-oxoutput_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.
-Ppassword
Spécifie le mot de passe associé à l'ID de connexion. Si cette option est utilisée, dta demande 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.-rlanalysis_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 ...
-Sserver_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_namen'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.-ssession_name
Spécifie le nom de la session de réglage. Ce paramètre est requis si -ID n'est pas spécifié.-Tftable_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, adventureworks.dbo.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 les paramètres 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.
-Tltable_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 -Tl et -Tf sont utilisés, dta échoue et retourne une erreur.
-Ulogin_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étrées
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 :
adventureworks.dbo.customer 100000
adventureworks.dbo.store
adventureworks.dbo.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 100000 et de 2000000, 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