1

我使用 SQL Profiler 生成跟踪文件,并使用优化顾问获取该跟踪文件并提供有关数据库更新的一些建议。

但是,SQL 探查器在针对报告服务器运行时似乎没有跟踪查询,探查器似乎没有捕获任何查询。我正在记录默认值(SQL:BatchCompleted and Starting、RPC:completed 和 Sessions - Existing Connections)

为了运行优化顾问,我应该在 SQL Profiler 中捕获哪些事件?

更新:

BatchStarting 甚至正在捕获一些 SQL;但是它总是与事件或通知表有关:

                                        declare @BatchID uniqueidentifier

                                        set @BatchID = NEWID()

                                        UPDATE [Event] WITH (TABLOCKX)
                                            SET [BatchID] = @BatchID,
                                            [ProcessStart] = GETUTCDATE(),
                                            [ProcessHeartbeat] = GETUTCDATE()
                                        FROM (
                                            SELECT TOP 8 [EventID] FROM [Event] WITH (TABLOCKX) WHERE [ProcessStart] is NULL ORDER BY [TimeEntered]
                                            ) AS t1
                                        WHERE [Event].[EventID] = t1.[EventID]

                                        select top 8
                                            E.[EventID],
                                            E.[EventType],
                                            E.[EventData]
                                        from
                                            [Event] E WITH (TABLOCKX)
                                        where
                                            [BatchID] = @BatchID
                                        ORDER BY [TimeEntered]
4

1 回答 1

2

这是正在发生的事情,以及如何解决它。

Reporting Server 似乎将数据缓存在临时数据库中。由于我们的大多数报告都使用一个通用视图,因此所有这些数据都是从缓存中检索的。

选择“显示所有事件”后,在“存储过程”下,我选择了 CacheHit、CacheInert、CacheMiss、Completed、StmtCompleted 和 StmtStarting。

然后,跟踪文件中有足够的信息供分析器评估和提出建议。

于 2010-03-25T15:10:25.950 回答