回归命令行 SQLServer的命令行工具们(1) --dta.exe
回归命令行 SQLServer的命令行工具们(1) --dta.exe ? ??? 谨以此文送给以前的那些同事们,每每回想其在TARA上一起度过的ORACLE访问的日子,就会觉得现在的SQLServer那些花里胡哨的图形界面简直是在亵渎数据库分析师,而深负犯罪感。顺便赞下TOAD,强大的怪兽! ???? 之所以第一篇写dta,是因为虽然dta是功能最强大的工具之一,但是因为万恶的图形化界面程序导致dta可能是最不为人使用的一个废柴程序了.拿它开刀,就算写错了几乎都没人知道。^_^ ???? dta 实用工具可以分析工作负荷,并可为该工作负荷推荐可改进服务器性能的物理设计结构。工作负荷可以是 SQL Server Profiler 跟踪文件或跟踪表,也可以是 Transact-SQL 脚本。物理设计结构包括索引、索引视图和分区。分析了工作负荷后,dta 实用工具将生成数据库物理设计结构建议,并可生成实现该建议所需的脚本。可以在命令行提示符处,使用 -if 或 -it 参数指定工作负荷。也可以在命令提示符处,使用 -ix 参数指定 XML 输入文件。在这种情况下,在 XML 输入文件中指定工作负荷。?? 实际上dta提供了比图形化数据库引擎优化顾问更强的功能。通过命令 dta.exe /?可以获得dta的命令信息(如下): DTA.EXE?[-S ServerName[/Instance]] [-U LoginId] [-P 密码] [-E] [-d DatabaseName] [-D DatabaseName[,DatabaseName]] [-Tl TableName[,TableName]] [-Tf TableListFileName] [-if WorkloadFileName] [-it WorkloadTableName] [-s SessionName] [-of [ScriptFileName]] [-or [ReportFileName]] [-rl 报告[,报告]] [-ox [OutputXmlFileName]] [-F] [-ID SessionID] [-ix InputXmlFileName] [-A TuningTime] [-n NumberOfEvents] [-m MinimumImprovement] [-fa PhysicalDesignStructure] [-fp PartitionStrategy] [-fk PhysicalDesignStructure] [-fx] [-B StorageSize] [-c MaxKeyColumnsInIndex]?[-C MaxColumnsInIndex] [-e TuningLogTable] [-N OnlineOption] [-q] [-u] [-x] [-a] [-?]? 参数列表-S ServerName[/Instance]??????? 要连接的 SQL Server 实例的名称。此为将进行所有优 化分析和支持表更新的服务器。-U LoginId????????????????????? 在建立与 SQL Server 的连接时使用的登录 ID (通过-S 选项指定)。-P 密码???????????????????????? 指定的登录 ID 的密码。-E????????????????????????????? 使用可信连接连接到服务器。-d DatabaseName???????????????? 优化时要连接的数据库。-D DatabaseName???????????????? 要优化的数据库名称列表。用逗号分隔名称。-Tl TableName?????????????????? 应进行优化的表名的列表。用逗号分隔名称。如果通过?-D ??????????????????????????????? 选项只指定了一个数据库,则不需要使用数据库名称来 限定表名。否则,每个表都需要使用??????????????????????????????? [数据库].[架构].[表] 格式的完全限定名称。-Tf TableListFileName??????????包含要优化的表列表的文件名。该文件中列出的表必须 位于单独的行中,并且名称必须使用数据库名称和架??????????????????????????????? 构名称(可选)进行限定。可通过在表名后面加一个数字 来调用可选的表缩放功能,此数字指示该表中提取??????????????????????????????? 的行数,例如,"[myDatabase].[dbo].[myTable] 500" 。-if WorkloadFileName??????????? 要用作优化输入的工作负荷文件的路径和文件名。接受 的格式: ??????????????????????????????? *.trc - SQL Server Profiler 跟踪文件;??????????????????????????????? *.xml - SQL 事件探查器 XML 跟踪文件;??????????????????????????????? *.sql - SQL Server 脚本。-it WorkloadTableName?????????? 包含要优化的工作负荷跟踪的表名。该名称以 [数据库] 格式指定。-s SessionName????????????????? 新优化会话的名称。-of ScriptFileName????????????? 指示应将 Transact-SQL ??????????????????????????????? 脚本和建议写入文件。如果提供了文件名,则将建议写 入该目标,否则,将根据会话名称生成文件名。-or ReportFileName????????????? 指示应将报告写入文件。如果提供了文件名,则将报告 写入该目标,否则,将根据会话名称生成文件名。-rl 报告??????????????????????????????? 指定要生成的分析报告列表??????????????????????????????? (选择一个或多个??????????????????????????????? ALL???????????? - 生成所有报告??????????????????????????????? NONE??????????? - 不生成任何报告??????????????????????????????? STMT_COST?????? - 语句开销报告??????????????????????????????? EVT_FREQ??????? - 事件频率报告??????????????????????????????? STMT_DET??????? - 语句详细报告??????????????????????????????? CUR_STMT_IDX??? - 语句-索引关系报告(当前) ???????????????????? ???????????REC_STMT_IDX??? - 语句(建议??????????????????????????????? STMT_COSTRANGE?- 语句开销范围报告??????????????????????????????? CUR_IDX_USAGE?? - 索引使用情况报告??????????????????????????????? REC_IDX_USAGE?? - 索引使用情况报告??????????????????????????? ????CUR_IDX_DET???? - 索引详细报告??????????????????????????????? REC_IDX_DET???? - 索引详细报告??????????????????????????????? VIW_TAB???????? - 视图-表关系报告??????????????????????????????? WKLD_ANL??????? - 工作负荷分析报告??????????????????????????????? DB_ACCESS?? ????- 数据库访问报告??????????????????????????????? TAB_ACCESS????? - 表访问报告??????????????????????????????? COL_ACCESS????? - 列访问报告??????????????????????????????? 默认情况下,生成所有报告。-ox OutputXmlFileName?????????? 应用程序将输出信息写入到的 XML 文件的名称。-F????????????????????????????? 允许数据库引擎优化顾问覆盖现有输出文件(使用任何o? 选项指定-ID SessionID?????????????????? 数据库引擎优化顾问应为其生成结果的会话 ID。-ix InputXmlFileName??????????? 指定用户配置(用户指定的配置)的 XML 文件名。注意??????????????????????????????? 如果文件中出现重复的参数,则命令行选项优先。-A TuningTime?????????????????? 数据库引擎优化顾问将在优化上花费的最长时间(分钟) 。通常,时间越长,建议的质量越高。如果将值指??????????????????????????????? 定为 0,则对优化时间没有限制。如果未指定值,则将 优化时间限制为 8 小时。-n NumberOfEvents?????????????? 要优化的事件数。-m MinimumImprovement?????????? 指定数据库引擎优化顾问只应在估计的性能提高程度达 到或超过提供的值(百分比)时提供建议。如果未指??????????????????????????????? 定值,则无论性能提高的幅度有多大都提供建议。-fa PhysicalDesignStructure???? 指定数据库引擎优化顾问应考虑为其提供新建议的物理 设计结构。??????????????????????????????? 可用选项(选择一项??????????????????????????????? IDX_IV?- 聚集索引和非聚集索引以及索引视图????????????????????????? ??????IDX???? - 聚集索引和非聚集索引??????????????????????????????? IV????? - 索引视图??????????????????????????????? NCL_IDX - 非聚集索引??????????????????????????????? 如果未指定任何选项,则使用 IDX。-fp PartitionStrategy?????????? 指定数据库引擎优化顾问应考虑请求添加的分区支持。??????????????????????????????? NONE??? - 不考虑任何分区策略??????????????????????????????? FULL??? - 完全分区(最佳性能??????????????????????????????? ALIGNED - 对齐分区(最佳可管理性 NONE。-fk PhysicalDesignStructure???? 指定数据库引擎优化顾问不能从现有数据库架构中删除 的物理设计结构。??????????????????????????????? ALL???? - 保留现有的所有物理设计结构??????????????????????????????? NONE??? - 不保留现有的任何物理设计结构??????????????????????????????? CL_IDX?- 保留聚集索引??????????????????????????????? IDX???? - 保留聚集索引和非聚集索引??????????????????????????????? ALIGNED - 保留对齐分区 ALL。-fx???????????????????????????? 指定数据库引擎优化顾问将评估现有物理设计结构的用 途,并按照建议删除使用率低的结构。此选项不能与???????????????????????????????? -fa 和 -fp 选项一起使用。-B StorageSize????????????????? 全部建议可以占用的最大空间(MB)。-c MaxKeyColumnsInIndex???????? 索引中应用程序建议的最大键列数。-C MaxColumnsInIndex??????????? 索引中应用程序建议的最大列数。-e TuningLogTable????? ?????????数据库引擎优化顾问将优化过程中出现的日志消息写入 到的表或文件的名称。应该以] 格式提供表名。将在进行优化 的服务器上创建该表。文件名必须使用??????????????????????????????? xml 扩展名。如果未传递任何表名或文件名,将使用默 认表。-N OnlineOption???????????????? 指定应在线创建对象、离线创建对象还是尽可能在线创 建对象。如果要创建在线索引,则会将标记??????????????????????????????? "ONLINE=ON" 追加到所有可以或应该在线创建的对象的?DDL 脚本中。??????????????????????????????? OFF - 仅离线??????????????????????????????? MIXED - 尽可能在线?????????????????????????????? ?ON - 仅在线??????????????????????????????? “离线”是默认选项。-q????????????????????????????? 静默模式。不会在控制台中写入任何信息,包括进度和 标头信息。-u????????????????????????????? 启动数据库引擎优化顾问图形用户界面,并传递提供的 所有命令行参数作为初始配置设置。-x????????????????????????????? 启动会话并退出。仅将所有结果写入数据库。稍后可通 过提供 -ID 参数生成输出。-a????????????????????????????? 不作提示,优化并应用建议。-?????????????????????????????? 显示使用信息。? 下面是这些参数的详细解释(注意,区分大小写):1.首先是连接方面的:? -U login_id 指定用于连接 SQL Server 的登录-P password 指定登录 ID 的密码。如果不使用此选项,则 dta 将提示输入密码。-E 使用可信连接而不请求密码。必须使用指定登录 ID 的 -E 参数或 -U 参数。-S server_name[ /instance] 指定要连接到的 SQL Server 计算机和实例的名称。如果未指定 server_name,则 dta 将连接到本地计算机的 SQL Server 默认实例。如果连接到命名实例或从网络上的远程计算机执行 dta,则必须使用此选项。-D database_name -D 参数是必需的。指定要优化的每个数据库的名称。第一个数据库是默认数据库。可以指定多个数据库,各数据库名称用逗号进行分隔。例如: |