我已经使用SQL Profiler生成了一个跟踪文件,并使用tuning advisor获取该跟踪文件并提供了一些关于数据库更新的建议。
但是,在针对报告服务器运行时,SQL事件探查器似乎不会跟踪查询,因此,事件探查器似乎没有捕获任何查询。我记录了默认值(SQL:BatchCompleted and Starting、RPC:completed和Sessions - Existing Connections)
为了运行优化顾问,我应该在SQL事件探查器中捕获哪些事件?
更新:
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]发布于 2010-03-25 23:10:26
下面是正在发生的事情,以及如何解决它。
报表服务器似乎将数据缓存在临时数据库中。由于我们的大多数报告都使用公共视图,因此所有数据都是从缓存中检索的。
在选择“显示所有事件”之后,在“存储过程”下,我选择了CacheHit、CacheInert、CacheMiss、Completed、StmtCompleted和StmtStarting。
然后,跟踪文件中就有了足够的信息供分析器评估和提出建议。
https://stackoverflow.com/questions/2509336
复制相似问题