回归命令行 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 数据库引擎优化顾问将优化过程中出现的日志消息写入
到的表或文件的名称。应该以
[数据库].[架构].[表] 格式提供表名。将在进行优化
的服务器上创建该表。文件名必须使用
&nbs