V databázi report serveru je užitečný pohled ExecutionLog3. Umožňuje získat informace o spouštění reportů, o tom, kteří uživatelé reporty spouští a s jakými parametry, jak dlouho trvalo načtení dat, jestli report nezhavaroval atd.
USE ReportServer
SELECT * FROM ExecutionLog3
--nejcasteji spoustene reporty
SELECT ItemPath, COUNT(*) pocetSpusteni
FROM ExecutionLog3
WHERE ItemAction = 'Render'
GROUP BY ItemPath
ORDER BY pocetSpusteni DESC
--nejaktivnejsi uzivatele
SELECT UserName, COUNT(*) pocetSpusteni
FROM ExecutionLog3
WHERE ItemAction = 'Render'
GROUP BY UserName
ORDER BY pocetSpusteni DESC
--nejaktivnejsi uzivatele podle reportu
SELECT ItemPath, UserName, COUNT(*) pocetSpusteni
FROM ExecutionLog3
WHERE ItemAction = 'Render'
GROUP BY ItemPath, UserName
ORDER BY ItemPath, pocetSpusteni DESC
--reporty s chybou
SELECT ItemPath, UserName, TimeStart
FROM ExecutionLog3
WHERE Status <> 'rsSuccess'
ORDER BY TimeStart DESC
--reporty s dlouhym nacitanim dat
SELECT ItemPath, UserName, TimeStart,TimeDataRetrieval
FROM ExecutionLog3
WHERE ItemAction = 'Render'
ORDER BY TimeDataRetrieval DESC
--parametry spusteni
;WITH parametry(ItemPath, UserName, TimeStart, parametry) AS (
SELECT ItemPath, UserName, TimeStart, CAST('<root><parametr><nazev>'+REPLACE(REPLACE(CAST([Parameters] AS VARCHAR(MAX)),'=','</nazev><hodnota>'),'&','</hodnota></parametr><parametr><nazev>')+'</hodnota></parametr></root>' AS XML) parametry
FROM ExecutionLog3
WHERE ItemAction = 'Render' AND ISNULL(CAST([Parameters] AS NVARCHAR(MAX)),'') <> ''
)
SELECT ItemPath,
UserName,
TimeStart,
T.p.value('nazev[1]','VARCHAR(50)') parametr,
T.p.value('hodnota[1]','VARCHAR(50)') hodnota
FROM parametry
CROSS APPLY parametry.nodes('/root/parametr') AS T(p)
