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

141 lines
4.5 KiB
Transact-SQL

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