USE [HCITools] GO IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[mon_Transfert_Stats_SP]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[mon_Transfert_Stats_SP] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[mon_Transfert_Stats_SP]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[mon_Transfert_Stats_SP] AS' END GO ALTER PROCEDURE [dbo].[mon_Transfert_Stats_SP] @in_debug tinyint = 0 AS /*============================================================================= Explication du traitement realise par la SP ------------------------------------------- La SP va transferer l'ensemble des statistiques des procédures stockées contenues dans la table HCITools.dbo.Stats_SP vers la table HCITools.dbo.All_Stats_SP de la centrale Contexte d'utilisation ---------------------- Appelé depuis le job D9208X - Transfert Stats SP Parametres ---------- @in_debug : non utilisé Creation : 23.09.20 / FLA Modifications : =============================================================================*/ set nocount on; /*------------------- Declaration des variables --------------------*/ declare @cvCurrentOrganizationalUnit int, @CV_OUT_value varchar(8000), @ou_code varchar(10), @ServerName varchar(20), @restartdate datetime, @errno int, @errmsg varchar(255), @LnkSrv varchar(15), @cmd varchar(8000), @Entity varchar(4) /*------------ Affectation des parametres aux variables ------------*/ select @cvCurrentOrganizationalUnit = null ; /*-------------------------- Traitement ---------------------------*/ IF EXISTS (SELECT type FROM master.cfg.InstanceContext WHERE type = 'PROD') BEGIN BEGIN TRY exec arizona.dbo.sp_bmc_Bmc_Applic_Default @in_job_type = 3, @in_param_int_1 = null, @in_param_int_2 = null, @in_param_varchar_1 = 'cvCurrentOrganizationalUnit', @out_default_value = @CV_out_value output, @out_param_int_1 = null; select @cvCurrentOrganizationalUnit = convert(int,@CV_out_value) select @ou_code = ou.ou_code from arizona.dbo.Organizational_unit ou (nolock) where ou.Organizational_unit_ID = @cvCurrentOrganizationalUnit SELECT @Entity = [Customer] FROM [master].[cfg].[Identity] IF @Entity = 'RUEG' BEGIN SET @Entity = 'AAI' END SET @ServerName = @Entity+isnull(@ou_code,'')+'APS' select @RestartDate = MIN(login_time) from sys.sysprocesses IF @Entity = 'AAI' SET @LnkSrv = 'CENTRALEDATA' ELSE SET @LnkSrv = 'ARIZONACASH' SET @cmd = 'INSERT INTO '+@LnkSrv+'.HCITools.dbo.All_Stats_SP SELECT TOP 50000 '''+@ServerName+''',[Stats_SP_ID] ,[SS_schemaname] ,[SS_databasename] ,[SS_name] [sysname] ,[SS_type] [nvarchar] ,[SS_execution_count] ,[SS_last_execution_time] ,[SS_total_worker_time] ,[SS_total_physical_reads] ,[SS_total_logical_writes] ,[SS_total_logical_reads] ,[SS_total_elapsed_time] ,[SS_updatedate] ,[SS_restartdate] ,NULL FROM [HCITools].[dbo].[Stats_SP] sp WITH (NOLOCK) WHERE SS_updatedate < CAST('''+CONVERT(nvarchar(30),@RestartDate,126)+''' as datetime)' EXEC (@cmd) /*---------------------- Traitement des erreurs ----------------------*/ END TRY BEGIN CATCH /* Traitement des erreurs (avec RaiseError) */ EXEC dbo.get_Error_Info @in_RaiseError = 1 END CATCH END GO