我们有一个 SQL 2000 服务器,它有各种各样的作业,在一天中的不同时间,甚至一个月中的不同日子运行。通常,我们只使用 SQL 探查器在很短的时间内运行跟踪以进行性能故障排除,但在这种情况下,这确实不能让我对在一天或一周或一个月的课程。
如何最小化长时间运行的 SQL 跟踪的性能开销?我已经知道:
- 执行跟踪服务器端 (sp_create_trace),而不是使用 SQL Profiler UI。
- 跟踪文件,而不是数据库表(这会增加数据库服务器的额外开销)。
我的问题实际上是关于过滤器的。如果我添加一个过滤器以仅记录运行超过特定持续时间或读取的查询,它仍然必须检查服务器上的所有活动以确定是否需要记录它,对吗?因此,即使使用该过滤器,跟踪是否会为已经处于不可接受性能边缘的服务器创建不可接受的开销水平?