1

我想运行 sql profiler 来查看我的数据库 Sql Server 2008 的性能,但我担心在同一台机器上运行 profiler 会影响服务器的性能,我不想减慢服务器的速度.

很久以前,我从一位 DBA 那里听说,他从连接到 sql 服务器的笔记本电脑上运行分析器,以不影响服务器性能的方式。

基本上我的问题是如何从外部计算机运行 Sql profiler 而不会导致 sql server 性能下降?

4

5 回答 5

5

任何被分析的数据库都必须做一些工作才能进行分析 - 没有办法绕过它。一般来说,对系统的观察总是会对该系统产生负荷。但是,SQL Server Profiler 和其他类似工具也在目标数据库之外做额外的工作,这些额外的工作可以卸载到另一台计算机上。

为了减轻负担,您只需从任何不是数据库服务器的机器上运行 SQL Server Profile。当您启动一个新跟踪时,您告诉它连接到运行数据库的任何服务器上的数据库。这里的所有都是它的。您的目标数据库将产生一些额外的负载(不可避免),但您将尽可能多地将工作卸载到运行 Profiler 的任何机器上。

于 2016-09-06T18:30:01.167 回答
3

如果您能够从外部计算机连接到计算机,那么远程运行分析器也不会出现问题..

所以基本上我的问题是如何从外部计算机运行 Sql profiler 而不会导致 sql server 性能下降?

当您长时间运行分析器时,它会影响性能,因为它必须跟踪内存中的所有事件并在丢弃之前记录它..所以不建议长时间运行分析器..

您还可以使用从 SQL2008 开始的扩展事件(相对于 profiler 非常轻量级)来跟踪类似于 Profiler 的事件。

http://www.sqlteam.com/article/introduction-to-sql-server-2008-extended-events

于 2016-09-06T18:29:08.747 回答
2

我是一名 DBA,我不知道在服务器本身上运行 SQL Server Profiler 会出现任何性能问题。也就是说,当您运行 SQL Server Profiler 时,它会像 SSMS 一样加载,您可以在其中选择要使用的服务器。

如果您的查询运行时间过长以至于它会杀死 SQL 资源,那么运行它仍然会耗尽资源,但无论探查器的来源在哪里。

查看 SS Profiler 的屏幕截图 在此处输入图像描述

如果您担心 SQL Server 实例的性能,请不要在高峰时段在生产环境中运行 Profiler。

于 2016-09-06T18:27:14.343 回答
2

Profiler 可以从任何具有适当权限和访问权限的计算机启动,但它始终在实际的 SQL Server 实例上运行。没有办法解决这个问题。您可以最小化由特定用户记录和过滤的操作以减轻性能问题,但仅此而已。

有问题的 DBA 可能已经运行了服务器端跟踪,这可能影响较小,但它仍然在适用的实例上启动。

于 2016-09-06T18:29:18.433 回答
1

如果要尽量减少 SQL Trace 的影响,那么最好使用服务器端跟踪: https ://msdn.microsoft.com/en-us/library/cc293613.aspx

像这样,您可以将 SQL 命令记录到跟踪文件中,并关闭 SQL Profiler。完成 SQL 命令集合后,您可以复制跟踪文件并在其他计算机上使用 SQL Profiler 打开它。它比直接通过 SQL Profiler 运行 SQL Trace(称为客户端跟踪)要好得多。

于 2016-09-07T06:25:08.747 回答