适用于:SQL Server
SQL Server 中的 查询存储 功能可自动捕获查询、计划和运行时统计信息的历史记录,并将此信息保存在数据库中。 数据库引擎优化顾问 (DTA) 支持使用一个新选项来利用 查询存储 自动选择用于优化的适当工作负荷。 对于许多用户而言,使用此功能便不需要显式收集用于优化的工作负荷。
仅当数据库已启用 查询存储 功能时,此功能才可用。 有关详细信息,请参阅启用查询存储。
SQL Server Management Studio v16.4 或更高版本提供此功能。
如何在数据库引擎优化顾问 GUI 中优化 查询存储 的工作负荷
在 DTA GUI 中的“常规”窗格内选中“查询存储”单选按钮以启用此功能(参阅下图)。
如何在 dta.exe 命令行实用工具中优化 查询存储 的工作负荷
在命令行 (dta.exe) 中,选择 -iq 选项来选择 查询存储 中的工作负荷。
选择 查询存储 中的工作负荷时,可通过命令行调用其他两个选项来帮助优化 DTA 的行为。 无法通过 GUI 调用这些选项:
要优化的工作负载事件数:此选项通过 -n 命令行参数指定,允许用户控制从 查询存储 中优化多少个事件。 默认情况下,DTA 对此选项使用值 1000。 DTA 始终根据总持续时间选择开销最大的事件。
要优化的事件时间窗口:由于查询存储中可能包含很久以前执行的查询,因此,此选项允许用户指定一个过去的时间窗口(以小时为单位);只有在该时间窗口内执行过的查询,DTA 才会将其纳入优化考虑。 此选项是使用 -I 命令行参数指定的。
有关详细信息,请参阅 dta Utility。
使用查询存储和计划缓存中的工作负载之间的区别
查询存储 与计划缓存选项之间的差别在于,前者包含已针对数据库执行的、每次重新启动服务器都会保存的查询的更长历史记录, 另一方面,计划缓存仅包含最近执行的查询子集,其执行计划被缓存于内存中。 重新启动服务器时,将会丢弃计划缓存中的项。