initial commit

This commit is contained in:
Thierry Schork
2022-12-30 12:10:12 +01:00
commit 7cf858256a
127 changed files with 12534 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# SQL Server Management Studio Solution File, Format Version 18.00
VisualStudioVersion = 15.0.28307.421
MinimumVisualStudioVersion = 10.0.40219.1
Project("{4F2E2C19-372F-40D8-9FA7-9D2138C6997A}") = "OCTPDBA-336", "OCTPDBA-336\OCTPDBA-336.ssmssqlproj", "{D24C6A1F-9CA3-4544-903A-9DBB07216C1A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Default|Default = Default|Default
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D24C6A1F-9CA3-4544-903A-9DBB07216C1A}.Default|Default.ActiveCfg = Default
{0A737271-2A4F-4D85-89B7-DFB8F0CF4AF5}.Default|Default.ActiveCfg = Default
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {617D5102-24C3-4EBF-92E9-7E9B9D6B96F0}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<SqlWorkbenchSqlProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="SqlWorkbenchSqlProject">
<Items>
<LogicalFolder Name="Connections" Type="2" />
<LogicalFolder Name="Queries" Type="0" />
<LogicalFolder Name="Miscellaneous" Type="3" />
</Items>
</SqlWorkbenchSqlProject>

View File

@@ -0,0 +1,10 @@
SET XACT_ABORT ON;
SET NOCOUNT ON;
SELECT [name],
[sj].[job_id],
'keyword "wait stats" in name'
FROM msdb.dbo.sysjobs sj
WHERE LOWER(sj.[name]) LIKE '%D92060%';

View File

@@ -0,0 +1,67 @@
USE [HCITools];
GO
/*=============================================================================
Look for specific jobs to delete if they exists on the server.
-----------------------------------------------
US OCTPDBA-336
Clean up of the previously defined jobs to be replaced with [_D92060 - Monitor Wait Stats]
Contexte d'utilisation
----------------------
Everywhere where hciTools exists
Création : 13.10.2022 / TSC
=============================================================================*/
SET XACT_ABORT ON;
SET NOCOUNT ON;
DECLARE @found_jobs_names TABLE (job_name VARCHAR(500) NOT NULL);
INSERT INTO @found_jobs_names ([job_name])
VALUES ('DR92060 - Monitor Wait Stats - Central'),
('ZZ-LPE-Monitor Wait Stats'),
('ZZ-LPE-Monitor Wait Stats - AMAREP'),
('ZZ-LPE-Monitor Wait Stats - AMA051'),
('ZZ-LPE-Monitor Wait Stats - AMA562'),
('ZZ-LPE-Monitor Wait Stats - AMA603');
/* declare variables */
DECLARE @job_name VARCHAR(500);
DECLARE clean_jobs CURSOR FAST_FORWARD READ_ONLY FOR
SELECT job_name
FROM @found_jobs_names;
OPEN clean_jobs;
FETCH NEXT FROM clean_jobs
INTO @job_name;
WHILE @@FETCH_STATUS = 0
BEGIN
IF EXISTS ( SELECT 1
FROM msdb.dbo.sysjobs sj
WHERE LOWER(sj.[name]) = LOWER(@job_name))
BEGIN
RAISERROR(
'found job "%s". Dropping',
1,
1,
@job_name) WITH NOWAIT;
EXEC msdb.dbo.sp_delete_job @job_name = @job_name,
@delete_unused_schedule = 1;
END;
FETCH NEXT FROM clean_jobs
INTO @job_name;
END;
CLOSE clean_jobs;
DEALLOCATE clean_jobs;

View File

@@ -0,0 +1,85 @@
/*=============================================================================
check si une db hciTools existe, ainsi qu'un job avec "wait stats" dans son nom sur 1 serveur
-----------------------------------------------
us 336, pour faire le drop des jobs non standardisés
Contexte d'utilisation
----------------------
sur toute les instances avec une db hciTools et ayant un job dont la logique correspond à xxx
Création : 12.10.2022 / TSC
=============================================================================*/
USE [master];
GO
SET XACT_ABORT ON;
SET NOCOUNT ON;
DECLARE @db_hci BIT = 0;
DECLARE @tbl_job_name TABLE (job_id UNIQUEIDENTIFIER,
job_name VARCHAR(500),
matched_by VARCHAR(500),
treated BIT
DEFAULT 0);
SELECT @db_hci = 1
FROM sys.databases db
WHERE name = 'HCITools';
IF @db_hci = 1
BEGIN
--la db hci_tools existe, on check le job
INSERT INTO @tbl_job_name ([job_name],
[job_id],
[matched_by])
SELECT [name],
[sj].[job_id],
'keyword "wait stats" in name'
FROM msdb.dbo.sysjobs sj
WHERE LOWER(sj.[name]) LIKE '%wait stat%'
AND LOWER(sj.[name]) <> '_D92060 - Monitor Wait Stats';
INSERT INTO @tbl_job_name ([job_name],
[job_id],
[matched_by])
SELECT sj.[name],
sj.[job_id],
'dmv "dm_os_wait_stats" in code'
FROM msdb.dbo.sysjobs sj
INNER JOIN msdb.dbo.[sysjobsteps] sp
ON [sp].[job_id] = [sj].[job_id]
WHERE [sp].[command] LIKE '%sys.dm_os_wait_stats%'
AND LOWER(sj.[name]) <> '_D92060 - Monitor Wait Stats';
END;
IF EXISTS (SELECT 1 FROM @tbl_job_name)
AND @db_hci = 1
BEGIN
DECLARE @job_name VARCHAR(500);
DECLARE @job_id UNIQUEIDENTIFIER;
DECLARE @job_source VARCHAR(500);
WHILE EXISTS (SELECT 1 FROM @tbl_job_name WHERE [treated] = 0)
BEGIN
SELECT TOP (1) @job_name = [j].[job_name],
@job_id = [j].[job_id],
@job_source = j.[matched_by]
FROM @tbl_job_name j
WHERE [j].[treated] = 0;
RAISERROR(
'Non standard job seems to be here, check if "%s" should be dropped. (matched by %s)',
1,
1,
@job_name,
@job_source) WITH NOWAIT;
UPDATE @tbl_job_name
SET [treated] = 1
WHERE [job_id] = @job_id
AND [job_name] = @job_name;
END;
END;