ssrs services query parametros parameter expresiones reporting-services reportingservices-2005

reporting-services - parametros - sql reporting services parameters in query



Seguimiento del uso del informe (5)

¿Existe una manera fácil de rastrear quién está ejecutando un informe determinado en SSRS 2005 y en qué momento están ejecutando ese informe? Tenemos aproximadamente 80 informes en nuestra implementación de SSRS, y estamos tratando de ver si hay alguno que podamos poner en libertad de manera segura. Si pudiéramos ver fácilmente qué informes no se están utilizando, eso nos ayudaría. ¿Algunas ideas?


Este SQL también le dará la fuente de datos, el usuario y el tipo de solicitud:

select row_number() over (order by LogEntryId) as Id, LogEntryId, r.Name AS Report_Name, r.Path AS Report_Path, c2.Name AS Data_Source, replace(c2.ConnectString,'';Unicode=True'','''') as ConnectString, SUBSTRING(r.Path, 2, LEN(r.Path) - LEN(r.Name) - 2) AS Folder_Path, ex.UserName, ex.Format, ex.TimeProcessing, ex.TimeRendering, ex.[RowCount], CAST (ex.TimeStart as date) AS TimeStart, DATEPART (hour, ex.TimeStart) AS StartHour, DATEPART (minute, ex.TimeStart) AS StartMinute, case when ex.RequestType = 0 then ''Interactive'' when ex.RequestType = 1 then ''Subscription'' when ex.RequestType = 2 then ''Refresh Cache'' else ''Unknown'' end RequestType, u.UserName as CreatedBy, ex.Status from ExecutionLogStorage ex (nolock) --exec log join Catalog (nolock) r on ex.ReportID = r.ItemID and r.Type = 2 --report join DataSource ds with (nolock) ON ds.ItemID = r.ItemID --report to connection link join (select ItemID, Name, SUBSTRING(Content, CHARINDEX(''<ConnectString>'',Content) + 15, CHARINDEX(''</ConnectString>'',Content) - CHARINDEX(''<ConnectString>'',Content) - 15) AS ConnectString from ( select ItemID, Name, CONVERT(NVARCHAR(MAX),CONVERT(XML,CONVERT(VARBINARY(MAX),Content))) As Content from Catalog with (nolock) where Type = 5) x ) c2 ON ds.Link = c2.ItemID -- connection left join Users u on u.UserID = r.CreatedByID


Hay algunos buenos consejos y consultas para generar informes sobre esto en el siguiente article .

Por ejemplo, si desea ver los informes más utilizados, puede hacer lo siguiente:

SELECT COUNT(Name) AS ExecutionCount, Name, SUM(TimeDataRetrieval) AS TimeDataRetrievalSum, SUM(TimeProcessing) AS TimeProcessingSum, SUM(TimeRendering) AS TimeRenderingSum, SUM(ByteCount) AS ByteCountSum, SUM([RowCount]) AS RowCountSum FROM (SELECT TimeStart, Catalog.Type, Catalog.Name, TimeDataRetrieval, TimeProcessing, TimeRendering, ByteCount, [RowCount] FROM Catalog INNER JOIN ExecutionLog ON Catalog.ItemID = ExecutionLog.ReportID WHERE Type = 2 ) AS RE GROUP BY Name ORDER BY COUNT(Name) DESC, Name;

Una cosa a tener en cuenta es que, de forma predeterminada, el registro de ejecución solo conservará 2 meses de datos. Puede controlar este comportamiento con la propiedad del servidor ExecutionLogDaysKept , consulte este artículo de TechNet .



Sé que esta pregunta es tan antigua que tiene bigotes, pero el siguiente código enumerará cada informe una vez con la última vez que se ejecutó. Le recomiendo que cree una nueva carpeta llamada "informes obsoletos" y mueva los informes antiguos allí en lugar de eliminarlos. Eso eliminará el desorden pero aún los mantendrá disponibles en caso de que el Departamento de Contabilidad venga detrás de usted por ese informe que obviamente necesitan ejecutar una vez cada 3,26 años.

WITH RankedReports AS (SELECT ReportID, TimeStart, UserName, RANK() OVER (PARTITION BY ReportID ORDER BY TimeStart DESC) AS iRank FROM dbo.ExecutionLog t1 JOIN dbo.Catalog t2 ON t1.ReportID = t2.ItemID ) SELECT t2.Name AS ReportName, t1.TimeStart, t1.UserName, t2.Path, t1.ReportID FROM RankedReports t1 JOIN dbo.Catalog t2 ON t1.ReportID = t2.ItemID WHERE t1.iRank = 1 ORDER BY t1.TimeStart;


Siempre encontré que los registros del informe son un poco difíciles de usar. Los servicios de informes mantienen un registro de toda su actividad en una tabla en la base de datos de informes llamada ExecutionLog

Tengo un par de informes que utilizo esa consulta en esta tabla, para que pueda averiguar qué informes se usan realmente y quiénes son los usuarios más pesados.