回归命令行 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 TableListF ileName] [-if WorkloadFileName] [-it WorkloadTableName] [-s SessionName] [-of [S criptFileName]] [-or [ReportFileName]] [-rl 报告[,报告]] [-ox [OutputXmlFileNam e]] [-F] [-ID SessionID] [-ix InputXmlFileName] [-A TuningTime] [-n NumberOfEven ts] [-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 的登录 ID。 -P password 指定登录 ID 的密码。如果不使用此选项,则 dta 将提示输入密码。 -E 使用可信连接而不请求密码。必须使用指定登录 ID 的 -E 参数或 -U 参数。 -S server_name[ /instance] 指定要连接到的 SQL Server 计算机和实例的名称。如果未指定 server_name,则 dta 将连接到本地计算机的 SQL Server 默认实例。如果连接到命名实例或从网络上的远程计算机执行 dta,则必须使用此选项。 -D database_name -D 参数是必需的。指定要优化的每个数据库的名称。第一个数据库是默认数据库。可以指定多个数据库,各数据库名称用逗号进行分隔。例如: |