作为一名开发人员,我经常使用 SQL Profiler。它是一款出色的调试工具,既可以跟踪我的代码正在做什么,也可以分析性能问题。
但我一直在我的开发环境中以非常可控的方式使用它。
- 启动我的应用程序并使其进入特定状态
- 启动分析器
- 在我的应用程序上执行特定顺序的操作
- 停止分析器并检查结果。
SQL Profiler 可以在生产环境中实际使用吗?
我首先担心的是它会降低性能。
我的第二个担忧是,由于它是在生产环境中,因此您不会触发有趣的操作本身。您必须让分析器运行很长时间,然后分析结果。结果集会变得太笨重吗?(占用太多磁盘空间并且查询起来太困难)。
有人在生产中使用 SQL Profiler 吗?
全面披露:我发布了同样的问题在数据库管理员测试版网站上. 想要支持 DBA stackexchange 站点的 Serverfault 成员有机会在那里而不是在这里回答问题。
答案1
是的,监控需要一些资源。在超载的服务器上运行可能会毁掉它。
您实际上会监控现实生活中的负载:您的操作可能会在该负载的噪声中迷失。
我们有时会在生产环境中运行它。主要使用针对特定代码的文本过滤器,或使用 CPU/持续时间过滤器来捕获较长的运行时间。我们不会尝试捕获 XML 执行计划或类似的无用信息
关键是要知道您在寻找什么:我们不会倾向于让它运行并捕获所有内容。
在这种情况下,如果您想查看某些操作的结果,您可以在非工作时间进行操作吗?