Files
sql-scripts/TPDT-268 - ACP in task sequence/dba_storedProcedures/mon_Aggregate_Stats_SP.sql
2024-03-07 16:52:14 +01:00

70 lines
2.1 KiB
Transact-SQL

USE [HCITools]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[mon_Aggregate_Stats_SP]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[mon_Aggregate_Stats_SP]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[mon_Aggregate_Stats_SP]
AS
/*=============================================================================
Explication du traitement realise par la SP
-------------------------------------------
La SP va aggreger l'ensemble des statistiques des procédures stockées contenues dans la table All_Stats_SP
Contexte d'utilisation
----------------------
Appelé depuis le job D92100 - Aggregate Stats SP
Creation : 23.09.20 / FLA
Modifications :
=============================================================================*/
set nocount on;
/*------------------- Declaration des variables --------------------*/
/*------------ Affectation des parametres aux variables ------------*/
IF EXISTS (SELECT type FROM master.cfg.InstanceContext WHERE type = 'PROD')
BEGIN
/*-------------------------- Traitement ---------------------------*/
BEGIN TRY
truncate table Aggregate_Stats_SP
insert into Aggregate_Stats_SP
SELECT SS_ServerName,SS_schemaname,SS_databasename,SS_name,SS_type,SUM(isnull(SS_execution_count,0)) NbExecution,MAX(SS_last_execution_time) LastExecutionTime,SUM(isnull(SS_total_worker_time,0)) TotalWorkerTime,SUM(isnull(SS_total_physical_reads,0)) TotalPhysicalReads,SUM(isnull(SS_total_logical_writes,0)) TotalLogicalWrites,SUM(isnull(SS_total_logical_reads,0)) TotalLogicalReads,SUM(isnull(SS_total_elapsed_time,0)) TotalElapsedTime,MIN(SS_updatedate) UpdateDate,MAX(SS_restartdate) RestartDate
FROM dbo.All_Stats_SP
WHERE SS_deletedate is null
GROUP BY SS_ServerName,SS_schemaname,SS_databasename,SS_name,SS_type
/*---------------------- Traitement des erreurs ----------------------*/
END TRY
BEGIN CATCH
/* Traitement des erreurs (avec RaiseError) */
EXEC dbo.get_Error_Info @in_RaiseError = 1
END CATCH
END
GO