USP_DATABASESPACEUSED_TOPNOUTPUT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MAXROWS | int | IN | |
@ORDERBY | tinyint | IN | |
@BUSINESSPROCESSCATALOGID | uniqueidentifier | IN | |
@OWNERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATABASESPACEUSED_TOPNOUTPUT]
(
@MAXROWS integer = 20,
@ORDERBY tinyint = 0,
@BUSINESSPROCESSCATALOGID uniqueidentifier = null,
@OWNERID uniqueidentifier = null
)
as begin
set nocount on;
with [BUSINESSPROCESSESWITHUNIQUEPAGEIDS] ([ID], [RECORDTYPEID]) as
(
select [BUSINESSPROCESSCATALOG].[ID], [BUSINESSPROCESSCATALOG].[RECORDTYPEID]
from dbo.[BUSINESSPROCESSCATALOG]
inner join dbo.[PAGEDEFINITIONCATALOG] on [PAGEDEFINITIONCATALOG].[CONTEXTRECORDTYPEID] = [BUSINESSPROCESSCATALOG].[RECORDTYPEID]
group by [BUSINESSPROCESSCATALOG].[ID], [BUSINESSPROCESSCATALOG].[RECORDTYPEID]
having count(*) = 1
), [OUTPUTBYPARAMETERSET] ([BUSINESSPROCESSPARAMETERSETID], [BUSINESSPROCESSCATALOGID], [TIMESRUN], [ENDEDON], [ROWS], [RESERVEDKB], [DATAKB], [INDEXKB], [UNUSEDKB]) as
(
select
[BUSINESSPROCESSSTATUS].[BUSINESSPROCESSPARAMETERSETID],
[BUSINESSPROCESSSTATUS].[BUSINESSPROCESSCATALOGID],
count(distinct [BUSINESSPROCESSSTATUS].[ID]) as [TIMESRUN],
max([BUSINESSPROCESSSTATUS].[ENDEDON]) as [ENDEDON],
sum([DATABASESPACEUSED].[ROWS]) as [ROWS],
sum([DATABASESPACEUSED].[RESERVEDKB]) as [RESERVEDKB],
sum([DATABASESPACEUSED].[DATAKB]) as [DATAKB],
sum([DATABASESPACEUSED].[INDEXKB]) as [INDEXKB],
sum([DATABASESPACEUSED].[UNUSEDKB]) as [UNUSEDKB]
from dbo.[DATABASESPACEUSED]
inner join dbo.[BUSINESSPROCESSOUTPUT] on [BUSINESSPROCESSOUTPUT].[ID] = [DATABASESPACEUSED].[BUSINESSPROCESSOUTPUTID]
inner join dbo.[BUSINESSPROCESSSTATUS] on [BUSINESSPROCESSSTATUS].[ID] = [BUSINESSPROCESSOUTPUT].[BUSINESSPROCESSSTATUSID]
group by [BUSINESSPROCESSSTATUS].[BUSINESSPROCESSCATALOGID], [BUSINESSPROCESSSTATUS].[BUSINESSPROCESSPARAMETERSETID]
)
select top (@MAXROWS)
[BUSINESSPROCESSCATALOG].[NAME] as [PROCESSNAME],
isnull(case when [APPUSER].[DISPLAYNAME] = '' then [APPUSER].[USERNAME] else [APPUSER].[DISPLAYNAME] end, '') as [OWNER],
isnull([SITE].[NAME], '') as [SITE],
[OUTPUTBYPARAMETERSET].[TIMESRUN],
[OUTPUTBYPARAMETERSET].[ENDEDON],
[OUTPUTBYPARAMETERSET].[ROWS],
[OUTPUTBYPARAMETERSET].[RESERVEDKB],
[OUTPUTBYPARAMETERSET].[DATAKB],
[OUTPUTBYPARAMETERSET].[INDEXKB],
[OUTPUTBYPARAMETERSET].[UNUSEDKB],
[OUTPUTBYPARAMETERSET].[BUSINESSPROCESSPARAMETERSETID],
[BUSINESSPROCESSCATALOG].[ID] as [BUSINESSPROCESSCATALOGID],
[PAGEDEFINITIONCATALOG].[ID] as [BUSINESSPROCESSSTATUSPAGEID]
from [OUTPUTBYPARAMETERSET]
inner join dbo.[BUSINESSPROCESSCATALOG] on [BUSINESSPROCESSCATALOG].[ID] = [OUTPUTBYPARAMETERSET].[BUSINESSPROCESSCATALOGID]
left outer join dbo.[BUSINESSPROCESSINSTANCE] on [BUSINESSPROCESSINSTANCE].[BUSINESSPROCESSPARAMETERSETID] = [OUTPUTBYPARAMETERSET].[BUSINESSPROCESSPARAMETERSETID]
left outer join dbo.[APPUSER] on [APPUSER].[ID] = [BUSINESSPROCESSINSTANCE].[OWNERID]
left outer join dbo.[SITE] on [SITE].[ID] = [BUSINESSPROCESSINSTANCE].[SITEID]
left outer join [BUSINESSPROCESSESWITHUNIQUEPAGEIDS] on [BUSINESSPROCESSESWITHUNIQUEPAGEIDS].[ID] = [BUSINESSPROCESSCATALOG].[ID]
left outer join dbo.[PAGEDEFINITIONCATALOG] on [PAGEDEFINITIONCATALOG].[CONTEXTRECORDTYPEID] = [BUSINESSPROCESSESWITHUNIQUEPAGEIDS].[RECORDTYPEID]
where (@BUSINESSPROCESSCATALOGID is null or [OUTPUTBYPARAMETERSET].[BUSINESSPROCESSCATALOGID] = @BUSINESSPROCESSCATALOGID)
and (@OWNERID is null or [BUSINESSPROCESSINSTANCE].[OWNERID] = @OWNERID)
order by case @ORDERBY when 0 then [OUTPUTBYPARAMETERSET].[RESERVEDKB]
when 1 then [OUTPUTBYPARAMETERSET].[DATAKB]
when 2 then [OUTPUTBYPARAMETERSET].[INDEXKB]
when 3 then [OUTPUTBYPARAMETERSET].[UNUSEDKB]
when 5 then [OUTPUTBYPARAMETERSET].[ROWS]
when 4 then datediff(day, [OUTPUTBYPARAMETERSET].[ENDEDON], getdate()) end desc;
return 0;
end