使用 Profiler 调整 SQL Server Express?

使用 Profiler 调整 SQL Server Express?

我有一个 SQL Server 2005 数据库...它的一个副本正在完整版 SQL Server 上开发运行。另一个副本正在 Web 服务器上的 SQL Server 2005 Express 中运行。

我使用了 SQL Profiler 并保存了数据库的 SQL Express 副本上的活动的调整跟踪日志。

我想在数据库引擎优化顾问中使用保存的跟踪日志...

如果我尝试将 Advisor 连接到 Express 数据库,系统会提示我不支持 Express。

如果我尝试将 Advisor 连接到 SQL Server 数据库,我会得到空结果。

有什么办法可以做到这一点?

答案1

您应该能够使用从远程生产服务器(Express)收集的跟踪数据在本地开发服务器上调整相同的数据库。

但您不能使用存储在远程服务器中的跟踪表来执行此操作。根据使用数据库引擎优化顾问的注意事项, “数据库引擎优化顾问无法优化位于远程服务器上的跟踪表中的工作负荷”

但我猜您正在使用跟踪文件,所以这应该不是问题。

如果你没有收到任何建议,你应该首先查看前面提到的列表MSDN 页面

在下列情况下,数据库引擎优化顾问可能不会提出建议:

正在调整的表包含少于 10 个数据页。

与当前的物理数据库设计相比,推荐的索引无法提供足够的查询性能改进。

运行数据库引擎优化顾问的用户不是 db_owner 数据库角色或 sysadmin 固定服务器角色的成员。工作负荷中的查询在运行数据库引擎优化顾问的用户的安全上下文中进行分析。该用户必须是 db_owner 数据库角色的成员。

答案2

我认为您需要将 Express 实例中的数据库副本还原到完整实例。顾问会查看架构以提供调优建议。

答案3

我认为您需要做的就是将数据库跟踪到表,然后将调优顾问指向包含跟踪结果的表中的数据。这样,我认为您不需要移动任何数据库。

答案4

我还发现我可以在 SQL Profiler 中编辑跟踪文件并删除任何指定登录名或数据库名称的列。之后,Tuning Advisor 就可以正常工作了。

相关内容