数据库优化,SQL SERVER 2005 数据库优化顾问(

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 _disibledevent=>
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 参数是必需的。指定要优化的每个数据库的名称。第一个数据库是默认数据库。可以指定多个数据库,各数据库名称用逗号进行分隔。例如:
dta –D database_name1, database_name2...
此外,也可以在指定多个数据库时,使用 –D 参数逐个指定数据库名称。例如:
dta –D database_name1 -D database_name2... n
如果尚未指定 -d 参数,则 dta 将默认连接到工作负荷中第一个 USE database_name 子句指定的数据库。如果工作负荷中没有显式的 USE database_name 子句,则必须使用 -d 参数。
例如,如果有一个工作负荷未包含显式的 USE database_name 子句,则在使用以下 dta 命令时将不会生成建议:
dta -D db_name1, db_name2...
但是,如果使用同一工作负荷时使用了以下带 -d 参数的 dta 命令,则将生成建议:
dta -D db_name1, db_name2 -d db_name1


-d database_name

指定优化工作负荷时 dta 连接到的第一个数据库。只能为此参数指定一个数据库。例如:
dta -d adventureworks ...
如果指定多个数据库名称,dta 将返回错误。-d 参数是可选的。
如果使用 XML 输入文件,则可使用 TuningOptions 元素下的 DatabaseToConnect 元素来指定 dta 连接的第一个数据库。如果只优化一个数据库,则 -d 参数的功能将类似于 sqlcmd 实用工具中的 -d 参数的功能,但不执行 USE database_name 语句。
-ID session_ID
为优化会话指定一个数字标识符。如果不指定该标识符,则 dta 将生成一个 ID 号。可以使用此标识符查看现有优化会话的信息。如果不指定 -ID 值,则必须用 -s 指定会话名。
-s session_name
指定优化会话的名称。如果未指定 -ID,则必须使用此选项。
-u
启动数据库引擎优化顾问 GUI。所有参数均被视为用户界面的初始设置。
-x
启动优化会话,然后退出。
2.初始化和输出设置:
-A time_for_tuning_in_minutes
指定优化时间限制 (分钟)。dta 使用指定的时间优化工作负荷,并生成一个包含建议的物理设计更改的脚本。默认情况下,dta 采用的优化时间为 8 小时。指定 0 可以不限制优化时间。dta 可能在限制时间之前完成整个工作负荷的优化。但是,为确保整个工作负荷都得到优化,建议指定不受限制的优化时间 ,虽然这个时间在大部分情况下会相当的漫长。
-a
优化工作负荷和应用建议时不作提示。
-q
设置静默模式。不向控制台写入信息,其中包括进度和标题信息。
-if workload_file
指定用作优化输入的工作负荷文件的路径和文件名。该文件必须采用下列格式之一:.trc(SQL Server Profiler 跟踪文件)、.sqlSQL 文件)或 .log(SQL Server 跟踪文件)。必须指定一个工作负荷文件或一个工作负荷表。
-F
允许 dta 覆盖现有的输出文件。如果已经存在同名输出文件,并且没有指定 -F,则 dta 将返回错误。-F 可以与 -of、-or 或 -ox 配合使用。
-of output_script_file_name
指定 dta 使用 Transact-SQL 脚本将建议写入指定的文件名和目标。
可以与此选项一起使用 -F 。请确保文件名是唯一的,尤其在使用了 -or 和 -ox 时更应注意。
-or output_xml_report_file_name
指定 dta 使用 XML 将建议写入输出报告。如果提供了文件名,建议就会被写入该文件名。否则,dta 将使用会话名生成文件名,并将该文件名写入当前目录。
可以与此选项一起使用 -F 。请确保文件名是唯一的,尤其在使用了 -of 和 -ox 时更应注意。
-ox output_XML_file_name
指定 dta 使用 XML 文件将建议写入指定的文件名和目标。请确保数据库引擎优化顾问有写入目标目录的权限。
可以与此选项一起使用 -F 。请确保文件名是唯一的,尤其在使用了 -of 和 -or 时更应注意。
-e tuning_log_name
指定 dta 记录其无法优化的事件的表或文件的名称。表的创建位置是执行优化的服务器。
如果使用表,则用以下格式指定其名称:[database_name].[owner_name].table_name。下表显示了每个参数的默认值:
参数
默认值
database_name
使用 –D 选项指定的 database_name
owner_name
dbo

数据库优化,SQL SERVER 2005 数据库优化顾问(
注意:
owner_name 必须为 dbo。如果指定了其他值,则 dta 执行将失败并返回错误。
table_name

如果使用文件,则指定 .xml 作为其扩展名。例如,TuningLog.xml。

数据库优化,SQL SERVER 2005 数据库优化顾问(
注意:
如果删除该会话,则 dta 实用工具不会删除用户指定的优化日志表的内容。优化超大型工作负荷时,建议为优化日志指定一个表。由于优化大型工作负荷可导致优化日志增大,因此使用表时删除会话的速度可快得多。
-ix input_XML_file_name
指定包含 dta 输入信息的 XML 文件的名称。该文件必须是符合 DTASchema.xsd 的有效 XML 文档。在命令提示符中指定的优化选项参数将覆盖与其冲突的 XML 文件中的相应值。唯一的例外情况是:在计算模式下,在 XML 输入文件中输入用户指定的配置。例如,如果在 XML 输入文件的 Configuration 元素中输入了配置,并将 EvaluateConfiguration 元素指定为优化选项之一,则 XML 输入文件中指定的优化选项将覆盖命令提示符中输入的任何优化选项。
3.优化选项
-B storage_size
指定推荐的索引和分区可以使用的最大空间 (MB)。优化多个数据库时,建议对所有数据库都进行空间计算。默认情况下,dta 采用下列存储大小中较小的一个:当前原始数据大小的三倍,包括数据库中表的堆和聚集索引的总大小。所有附加的磁盘驱动器的可用空间加上原始数据的大小。默认存储大小不包括非聚集索引和索引视图。
-C max_columns_in_index
指定 dta 推荐的索引中的最大列数。该最大值视 SQL Server 的版本而定。对于 SQL Server 2000,该最大值为 16;对于 SQL Server 2005,该最大值为 1024。默认情况下,该参数设置为 16。
-c max_key_columns_in_index
指定 dta 推荐的索引中的最大键列数。默认值为 16,即 SQL Server 2005 允许的最大值。该参数只适用于 SQL Server 2005。dta 也会考虑创建包含性列索引。建议的包含性列索引可能会超出此参数中指定的列数。
-fx drop_only_mode
指定 dta 只考虑删除现有物理设计结构。没有考虑任何新的物理设计结构。如果指定此选项,dta 将评估现有物理设计结构的使用情况,并建议删除很少使用的结构。此参数不带任何值,不能与 -fa、-fp 或 -fk ALL 参数一起使用。
-fa physical_design_structures_to_add
指定 dta 应在建议中包括的物理设计结构的类型。下表列出并说明了可为此参数指定的值。如果未指定值,dta 将使用默认值 -fa IDX。

说明
IDX_IV
索引和索引视图。(索引视图适用于 SQL Server 2005 的所有版本,而仅适用于 SQL Server 2000 的 Enterprise Edition。)
IDX
仅限索引。
IV
仅限索引视图。(索引视图适用于 SQL Server 2005 的所有版本,而仅适用于 SQL Server 2000 的 Enterprise Edition。)
NCL_IDX
仅限非聚集索引。
-fk keep_existing_option
指定 dta 在生成其建议时必须保留的现有物理设计结构。下表列出并介绍了可以为此参数指定的值:

说明
NONE
无现有结构
ALL
所有现有结构
ALIGNED
所有分区对齐结构。
CL_IDX
表上的所有聚集索引
IDX
表上的所有聚集索引和非聚集索引
-fp partitioning_strategy
指定 dta 建议的新物理设计结构(索引和索引视图)是否应进行分区以及如何进行分区。下表列出并介绍了可以为此参数指定的值:

说明
NONE
不分区
FULL
完全分区(选择该值可增强性能)
ALIGNED
仅限对齐分区(选择该值可增强可管理性)
ALIGNED 表示在 dta 生成的建议中,每个建议的索引都完全按定义该索引的基础表所用的方式进行分区。索引视图上的非聚集索引与索引视图对齐。只能为此参数指定一个值。默认值为 -fp NONE。
-N _disibledevent=>
-it workload_trace_table_name
指定包含用于优化的工作负荷跟踪的表名。用以下格式指定该名称:[database_name].[owner_name].table_name。
下表显示了每个参数的默认值:
参数
默认值
database_name
使用 –D 选项指定的 database_name。
owner_name
dbo。
table_name
无。

数据库优化,SQL SERVER 2005 数据库优化顾问(
注意:
owner_name 必须为 dbo。如果指定了其他任何值,则 dta 执行将失败并返回错误。另请注意,必须指定一个工作负荷表或一个工作负荷文件。
-m minimum_improvement
指定推荐的配置必须满足的最小改进百分比。
4.优化范围
-n number_of_events
指定 dta 应在工作负荷中优化的事件数。如果指定此参数,并且工作负荷是包含持续时间信息的跟踪文件,则 dta 将按持续时间的降序优化事件。此参数可用于比较物理设计结构的两个配置。若要比较两个配置,请为这两个配置指定相同的要优化的事件数,再为这两个配置指定不受限制的优化时间。如下所示:
dta -n number_of_events -A 0
在此示例中,必须指定不受限制的优化时间 (-A 0)。否则,数据库引擎优化顾问将采用默认的 8 小时优化时间。
-rl analysis_report_list
指定要生成的分析报告列表。下表列出并说明了可为此参数指定的值:

报告
ALL
所有分析报告
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
列访问报告
指定多个报告时,用逗号分隔各个值。例如:
... -rl EVT_FREQ, VIW_TAB, WKLD_ANL ...
-Tf table_list_file
指定包含要优化的一组表的文件名。文件中列出的每个表应另起一行。表名的命名应限定为三个部分,例如,adventureworks.dbo.department。为了调用表的扩展功能,可以选择在现有表名后加上一个数字,指示表中的预定行数。数据库引擎优化顾问在优化或评估引用这些表的工作负荷中的语句时,将考虑这些预定行数。请注意,number_of_rows 计数和 table_name 之间可以有一个或多个空格。
以下是 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]
此参数是在命令提示符中输入表列表的替代方式 (-Tl)。如果使用了 -Tl,请不要使用表列表文件 (-Tf)。如果同时使用这两个参数,dta 将失败并返回错误。
如果省略 -Tf 和 -Tl 参数,则将考虑对指定数据库中的所有用户表进行优化。
-Tl table_list
在命令提示符中指定要优化的一组表。各表名间用逗号分隔。如果只用 -D 参数指定一个数据库,则无需用数据库名限定表名。在其他情况下,使用以下格式的完全限定名:database_name.schema_name.table_name,每个表都必须使用此格式。
此参数是使用表列表文件 (-Tf) 的替代方法。如果同时使用 -Tl 和 -Tf,则 dta 将失败并返回错误。
Tags:  sql数据库优化 数据库优化

延伸阅读

最新评论

发表评论