搜索引擎优化模式(如何在SQLServer中启动和使用数据库引擎优化顾问)
优采云 发布时间: 2021-09-23 20:03搜索引擎优化模式(如何在SQLServer中启动和使用数据库引擎优化顾问)
启动并使用数据库引擎优化顾问文章
适用于:
SQL Server(所有受支持的版本)
本文介绍如何在SQLServer中启动和使用数据库引擎优化顾问。有关如何查看和使用数据库优化结果的信息,请参阅查看和使用数据库引擎优化顾问的输出
评论
azure SQL数据库或azure SQL托管实例不支持数据库引擎优化顾问。请考虑在Azure SQL数据库和Azure SQL管理实例中采用监视和性能优化功能的推荐策略。有关azure SQL数据库,请参阅azure SQL数据库的数据库顾问性能建议
初始化数据库引擎优化顾问
首次使用时,作为sysadmin固定服务器角色成员的用户必须初始化数据库引擎优化顾问。这是因为必须在MSDB数据库中创建多个系统表以支持优化操作。如果用户是DB_uuo,则Owner是固定数据库角色的成员,并且初始化还使他们能够优化数据库(他们拥有的数据库)中表的工作负载
具有系统管理员权限的用户必须执行以下操作之一:
启动数据库引擎优化顾问
数据库引擎优化顾问图形用户界面(GUI)可以通过几种不同的方式启动,以支持不同情况下的数据库优化。启动数据库引擎优化顾问的其他方法包括从“开始”菜单开始,从中的“工具SQL Server Management Studio”菜单开始,从SQL Server Management Studio中的“查询编辑器”开始,以及从中的“工具SQL Server探查器”菜单开始。首次启动数据库引擎优化顾问时,应用程序将显示一个“连接到服务器”对话框,您可以在其中指定要连接到的SQL Server实例
警告
当SQL server以单用户模式运行时,不要启动数据库引擎优化顾问。如果尝试在服务器处于单用户模式时启动服务器,则会返回错误,并且不会启动数据库引擎优化顾问。有关单用户模式的更多信息,请参阅在单用户模式下启动SQL Server
从windows“开始”菜单启动数据库引擎优化顾问。在开始菜单上,指向所有程序,指向Microsoft SQL server,指向性能工具,然后选择数据库引擎优化顾问。在SQL Server Management Studio中启动数据库引擎优化顾问。在SQLServerManagementStudio的工具菜单中,选择数据库引擎优化顾问。在SQL Server Management Studio查询编辑器中启动数据库引擎优化顾问
在transact-SQL中打开SQL Server Management Studio脚本文件。有关详细信息,请参见查询和文本编辑器(SQLServerManagementStudio)
在transact-SQL脚本中选择查询,或选择整个脚本,右键单击所选内容,然后在数据库引擎优化顾问中选择分析查询。数据库引擎优化顾问图形用户界面打开,脚本作为XML文件工作负载导入。您可以指定会话名称和优化选项,以将选定的transact-SQL查询优化为工作负载
在SQL Server探查器中启动数据库引擎优化顾问。在SQL Server profiler的“工具”菜单中,选择“数据库引擎优化顾问”。创建工作负载
工作负载是在一个或多个要优化的数据库上执行的一组transact-SQL语句。数据库引擎优化顾问将分析这些工作负载,以推荐用于提高服务器查询性能的索引或分区策略
您可以使用以下方法之一创建工作负载
创建Transact-SQL脚本工作负载
在SQLServerManagementStudio中启动查询编辑器。有关详细信息,请参见查询和文本编辑器(SQLServerManagementStudio)
在查询编辑器中键入transact-SQL脚本。此脚本应收录一组在要优化的数据库上执行的transact-SQL语句
将该文件保存为。SQL扩展。数据库引擎优化顾问GUI和命令行DTA实用程序可以将此transact-SQL脚本用作工作负载
创建跟踪文件和跟踪表工作负载
使用以下方法之一启动SQL Server探查器:
按照以下描述的步骤使用SQL Server Profiler的优化模板创建跟踪文件或表:
建议使用SQL Server profiler优化模板捕获数据库引擎优化顾问的工作负载
如果要使用自己的模板,请确保捕获以下跟踪事件:
您还可以使用这些跟踪事件的起始版本。例如,SQL:batchstarting。但是,这些跟踪事件的完整版本包括duration列,它使数据库引擎优化顾问能够更有效地优化工作负载。数据库引擎优化顾问不会优化其他类型的跟踪事件。有关这些跟踪事件的更多信息,请参阅存储过程事件类别和TSQL事件类别。有关使用SQL跟踪存储过程创建跟踪文件工作负载的信息,请参阅创建跟踪(transact-SQL)
收录loginname数据列的跟踪文件或跟踪表工作负载
数据库引擎优化顾问在优化过程中提交显示计划请求。当收录loginname数据列的跟踪表或跟踪文件用作工作负载时,数据库引擎优化顾问将模拟loginname中指定的用户。如果您不向该用户授予Showplan权限(这使该用户能够执行和生成跟踪中收录的语句的显示计划),则数据库引擎优化顾问将不会优化这些语句
避免向跟踪的loginname列中指定的每个用户授予Showplan权限
优化跟踪文件或跟踪表工作负载。有关更多信息,请参阅本文后面的内容
查看由于优化日志中的权限不足而未优化的语句。有关更多信息,请参阅查看和使用数据库引擎优化顾问的输出
通过从非优化事件中删除loginname列来创建新的工作负载,然后仅将非优化事件保存到新的跟踪文件或跟踪表中。有关从跟踪中删除数据列的详细信息,请参阅为跟踪文件指定事件和数据列(SQL Server Profiler)或修改现有跟踪(transact-SQL)
将不带loginname列的新工作负载重新提交到数据库引擎优化顾问
数据库引擎优化顾问将优化新工作负载,因为跟踪中未指定登录信息。如果语句没有相应的loginname,则数据库引擎优化顾问将通过模拟启动优化会话的用户(sysadmin固定服务器角色或db_owner固定数据库角色的成员)来优化语句
优化数据库
要优化数据库,可以使用数据库引擎优化顾问GUI或DTA实用程序
评论
在将跟踪表用作数据库引擎优化顾问的工作负载之前,请确保跟踪已停止。数据库引擎优化顾问不支持使用仍在将跟踪事件写入工作负载的跟踪表
使用数据库引擎优化顾问图形用户界面
在数据库引擎优化顾问GUI上,可以使用计划缓存、工作负载文件或工作负载表来优化数据库。您可以使用数据库引擎优化顾问GUI轻松查看当前优化会话结果和以前的优化会话结果。有关用户界面选项的信息,请参阅本文后面的内容。有关使用数据库优化结果的更多信息,请参阅查看和使用数据库引擎优化顾问的输出
使用查询存储优化数据库
有关更多信息,请参阅查询存储中的使用工作负载优化数据库
使用计划缓存优化数据库
启动数据库引擎优化顾问并登录到SQL server实例。有关更多信息,请参阅本文前面的内容
在“常规”选项卡上,在“会话名称”中键入名称以创建新的优化会话。在启动优化会话之前,必须配置“常规”选项卡中的字段。启动优化会话之前,不必修改“优化选项”选项卡的设置
选择schedule cache作为工作负载选项。数据库引擎优化顾问将从计划缓存中选择前1000个事件进行分析
选择要优化的数据库,也可以选择从所选表中为每个数据库选择一个或多个表。要收录所有数据库的缓存项,请从“优化选项”中选择“高级选项”,然后选择“收录所有数据库中的计划缓存事件”
选择保存优化日志以保存优化日志的副本。如果不想保存优化日志的副本,请清除该复选框
分析后,您可以通过打开会话并选择“进度”选项卡来查看优化日志
单击“优化选项”选项卡,从列出的选项中进行选择
单击开始分析
如果要停止已启动的优化会话,请在“操作”菜单上选择以下选项之一:
评论
不支持暂停数据库引擎优化顾问。如果在选择停止分析或停止分析(带建议)工具栏按钮后选择开始分析工具栏按钮,则数据库引擎优化顾问将启动新的优化会话
使用工作负载文件或表作为输入优化数据库
识别数据库引擎特性(索引、索引视图、分区),您希望数据库引擎优化顾问在分析
期间考虑添加、移除或保留
C