SQLプロファイラーを使用してトレースファイルを生成し、チューニングアドバイザーを使用してそのトレースファイルを取得し、データベースの更新に関するいくつかの推奨事項を提供しました。
ただし、SQLプロファイラーはReporting Serverに対して実行しているときにクエリを追跡していないようであり、プロファイラーはクエリをキャプチャしていないようです。デフォルトをログに記録しています(SQL:BatchCompletedと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]