确定能否优化事件
如果数据库引擎优化顾问未优化某个事件,则此事件将写入优化日志。 在数据库引擎优化顾问图形用户界面 (GUI) 中的**“常规”选项卡上,可以选择“保存优化日志”,然后在“进度”**选项卡的下部窗格中查看此日志。 如果您使用的是 dta 实用工具,则可以使用 -e 参数指定优化日志文件的名称和位置。 有关详细信息,请参阅如何查看优化输出。
数据库引擎优化顾问未能优化事件的常见原因
数据库引擎优化顾问未优化事件的最常见原因包括:
- 工作负荷引用了用户未选择优化的表。
- 工作负荷引用的表过小,例如包含的数据页少于 10 页的表。
- 数据库引擎优化顾问无法在指定时间范围内优化工作负荷。
有关详细信息,请参阅事件未被优化的原因。
确定能否优化事件
确定数据库引擎优化顾问是否能够优化特定事件的最简单方法是确定是否可以获得该事件的显示计划输出。 使用 SQL Server Management Studio 可确定是否可以获得显示计划输出。 只有在服务器已在执行该事件的数据库中为该事件生成了显示计划输出的条件下,数据库引擎优化顾问才会优化该事件。 有关详细信息,请参阅显示图形执行计划 (SQL Server Management Studio)。
为什么数据库引擎优化顾问建议删除大量对象?
如果数据库引擎优化顾问频繁建议删除物理设计结构,则导致这种现象出现的原因可能为:
- 如果工作负荷比较小或者它引用了物理设计结构的较小子集,则数据库引擎优化顾问会由于工作负荷没有引用其余物理设计结构而建议将它们删除。 数据库引擎优化顾问假定此工作负荷代表服务器上的常规工作负荷,并基于此假设提出其建议。
- 如果工作负荷中的大多数查询都被忽略,将生成大量删除物理设计结构的建议,原因可能如下:
- 使用 dta 实用工具为 -d 参数指定的数据库不正确。
- 工作负荷中的大多数查询引用了包含的数据页少于 10 页的小表。
- 工作负荷中的大多数 Transact-SQL 语句未引用可优化的对象。 例如,工作负荷包含许多 SET 语句或 DECLARE 语句。
若要确定导致数据库引擎优化顾问生成许多删除建议的原因,请查看优化日志消息。 有关详细信息,请参阅关于优化日志。