sync current state§

This commit is contained in:
Thierry Schork
2023-01-04 16:52:04 +01:00
parent 37470b9e4b
commit c6c072f921
10 changed files with 176 additions and 20 deletions

View File

@@ -14,6 +14,8 @@ Creation : 30.12.2022 / TSC
Modifications: Modifications:
=============================================================================*/ =============================================================================*/
--If @allJobs is set to 0, then only a subset of jobs are checked (see insert into @jobs)
DECLARE @allJobs BIT = 0; DECLARE @allJobs BIT = 0;
DECLARE @jobs TABLE ( DECLARE @jobs TABLE (
[name] sysname NOT NULL [name] sysname NOT NULL
@@ -32,13 +34,13 @@ BEGIN
FROM [msdb].[dbo].[sysjobs] [s] FROM [msdb].[dbo].[sysjobs] [s]
WHERE [s].[name] IN ( WHERE [s].[name] IN (
'zz_tsc OCTPDBA-440 supra' 'zz_tsc OCTPDBA-440 supra'
,'__D70010 - After APSSynchroLoad' --,'__D70010 - After APSSynchroLoad'
,'_D73031 - SYNC - H Synchronize items and addresses - Central' --,'_D73031 - SYNC - H Synchronize items and addresses - Central'
,'_D73061 - ITEM - 000 - Manage data before H synchronization - Central' --,'_D73061 - ITEM - 000 - Manage data before H synchronization - Central'
,'_D73071 - ITEM - Manage data after H synchronization - Central' --,'_D73071 - ITEM - Manage data after H synchronization - Central'
,'_D73110 - SYNC - V Synchronization extraction - Central' --,'_D73110 - SYNC - V Synchronization extraction - Central'
,'D73130 - VESTA - SYNC - Interbase 2.0' --,'D73130 - VESTA - SYNC - Interbase 2.0'
,'__D03011 - After working hours - Central' --,'__D03011 - After working hours - Central'
); );
END END
ELSE ELSE

View File

@@ -0,0 +1,7 @@
SELECT
*
FROM fn_trace_gettable('D:\dbJobs\facturation.trc', DEFAULT)
WHERE CONVERT(TIME,[EndTime]-[StartTime]) IS NOT NULL
AND CONVERT(TIME,[EndTime]-[StartTime]) < '23:59:59.99'
AND [TextData] IS NOT NULL
ORDER BY [Duration] DESC

View File

@@ -0,0 +1,22 @@
SELECT
--CAST(event_data as XML) as event_data,
n.value('(@name)[1]', 'varchar(50)') as event_name,
n.value('(@package)[1]', 'varchar(50)') AS package_name,
n.value('(@timestamp)[1]', 'datetime2') AS [utc_timestamp],
n.value('(action[@name="client_app_name"]/value)[1]', 'nvarchar(max)') as client_app_name,
n.value('(action[@name="event_sequence"]/value)[1]', 'bigint') AS event_sequence,
n.value('(data[@name="duration"]/value)[1]', 'int') as duration,
n.value('(data[@name="cpu_time"]/value)[1]', 'int') as cpu,
n.value('(data[@name="physical_reads"]/value)[1]', 'int') as physical_reads,
n.value('(data[@name="logical_reads"]/value)[1]', 'int') as logical_reads,
n.value('(data[@name="writes"]/value)[1]', 'int') as writes,
n.value('(data[@name="row_count"]/value)[1]', 'int') as row_count,
n.value('(data[@name="last_row_count"]/value)[1]', 'int') as last_row_count,
n.value('(data[@name="statement"]/value)[1]', 'nvarchar(max)') as statement,
n.value('(data[@name="sql_text"]/value)[1]', 'nvarchar(max)') as sql_text
from (select cast(event_data as XML) as event_data
from sys.fn_xe_file_target_read_file('D:\SSMS projects\OCTPDBA-444 - Disable CASH Synchronization in Centrals\sunCent\octpdba-443_azcash_0_133171837677290000.xel', null, null, null)) ed
cross apply ed.event_data.nodes('event') as q(n)
WHERE n.value('(action[@name="client_app_name"]/value)[1]', 'nvarchar(max)') = 'APS® TriaOne-Cash'
AND n.value('(data[@name="duration"]/value)[1]', 'int') IS NOT NULL
ORDER BY n.value('(action[@name="event_sequence"]/value)[1]', 'bigint') ASC

View File

@@ -0,0 +1 @@
*.xel

View File

@@ -0,0 +1 @@
*.xel

62
analyse query cache.sql Normal file
View File

@@ -0,0 +1,62 @@
/*
Attention, toutes les colonnes sont en microseconde. Pour obtenir 1 seconde, diviser par 1'000'000 ;
pour obtenir 1 minute, diviser par 60'000'000
*/
/**********************************************************************
Extraction des requêtes SQL peu performantes sur l'instance SQL.
Renseigner l'"ORDER BY ... DESC" au préalable.
Attention, toutes les colonnes sont en microseconde.
Pour obtenir 1 seconde, diviser par 1'000'000 ;
pour obtenir 1 minute, diviser par 60'000'000.
**********************************************************************/
SELECT TOP 100
GETDATE() AS [Collection Date]
,[qs].[execution_count] AS [Execution Count]
,SUBSTRING(
[qt].[text]
,[qs].[statement_start_offset] / 2 + 1
,(CASE
WHEN [qs].[statement_end_offset] = -1 THEN LEN(CONVERT(NVARCHAR(MAX), [qt].[text])) * 2
ELSE [qs].[statement_end_offset]
END - [qs].[statement_start_offset]
) / 2
) AS [Query Text]
,DB_NAME([qt].[dbid]) AS [DB Name]
,[qs].[total_worker_time] AS [Total CPU Time]
,[qs].[total_worker_time] / [qs].[execution_count] AS [Avg CPU Time (ms)]
,[qs].[total_physical_reads] AS [Total Physical Reads]
,[qs].[total_physical_reads] / [qs].[execution_count] AS [Avg Physical Reads]
,[qs].[total_logical_reads] AS [Total Logical Reads]
,[qs].[total_logical_reads] / [qs].[execution_count] AS [Avg Logical Reads]
,[qs].[total_logical_writes] AS [Total Logical Writes]
,[qs].[total_logical_writes] / [qs].[execution_count] AS [Avg Logical Writes]
,[qs].[total_elapsed_time] AS [Total Duration]
,[qs].[total_elapsed_time] / 1000000.0 AS [Total Duration seconds]
,[qs].[total_elapsed_time] / [qs].[execution_count] / 1000000.0 AS [Avg Duration seconds]
,[qp].[query_plan] AS [Plan]
,[qs].[creation_time]
,[qs].[last_execution_time]
FROM [sys].[dm_exec_query_stats] AS [qs]
CROSS APPLY [sys].dm_exec_sql_text([qs].[sql_handle]) AS [qt]
CROSS APPLY [sys].dm_exec_query_plan([qs].[plan_handle]) AS [qp]
WHERE
-- [qs].[execution_count] > 50
--OR [qs].[total_worker_time] / [qs].[execution_count] > 100 --[Avg CPU Time (ms)]
--OR [qs].[total_physical_reads] / [qs].[execution_count] > 1000 --[Avg Physical Reads]
[qs].[total_logical_reads] / [qs].[execution_count] > 1000 --[Avg Logical Reads]
--OR [qs].[total_logical_writes] / [qs].[execution_count] > 1000 --[Avg Logical Writes]
--OR [qs].[total_elapsed_time] / [qs].[execution_count] > 1000 --[Avg Duration (ms)]
ORDER BY
[Avg Logical Reads] DESC
-- [qs].[execution_count] DESC
--,[qs].[total_elapsed_time] / [qs].[execution_count] DESC
--,[qs].[total_worker_time] / [qs].[execution_count] DESC
--,[qs].[total_physical_reads] / [qs].[execution_count] DESC
--,[qs].[total_logical_reads] / [qs].[execution_count] DESC
--,[qs].[total_logical_writes] / [qs].[execution_count] DESC;

54
get autogrowth events.sql Normal file
View File

@@ -0,0 +1,54 @@
DECLARE @filename NVARCHAR(1000);
DECLARE @bc INT;
DECLARE @ec INT;
DECLARE @bfn VARCHAR(1000);
DECLARE @efn VARCHAR(10);
-- Get the name of the current default trace /* A REMPLACER PAR "select path from sys.traces" */
SELECT @filename = CAST(value AS NVARCHAR(1000))
FROM ::fn_trace_getinfo(DEFAULT)
WHERE traceid = 1 AND property = 2;
-- rip apart file name into pieces
SET @filename = REVERSE(@filename);
SET @bc = CHARINDEX('.',@filename);
SET @ec = CHARINDEX('_',@filename)+1;
SET @efn = REVERSE(SUBSTRING(@filename,1,@bc));
SET @bfn = REVERSE(SUBSTRING(@filename,@ec,LEN(@filename)));
-- set filename without rollover number
SET @filename = @bfn + @efn
-- process all trace files
SELECT te.name AS EventName,
DB_NAME(ftg.databaseid) AS DatabaseName,
ftg.Filename,
ftg.StartTime,
ftg.EndTime,
(ftg.IntegerData*8)/1024.0 AS GrowthMB,
(ftg.duration/1000)AS DurationMS,
ftg.ApplicationName,
j.name AS JobName,
ftg.HostName,
ftg.NTDomainName,
ftg.LoginName
FROM ::fn_trace_gettable(@filename, DEFAULT) AS ftg
JOIN sys.trace_events AS te
ON ftg.EventClass = te.trace_event_id
LEFT OUTER JOIN msdb.dbo.sysjobs j
ON ftg.ApplicationName LIKE 'SQLAgent%'
AND CONVERT(NVARCHAR(MAX), CONVERT(VARBINARY, j.job_id), 1) = SUBSTRING(ftg.ApplicationName,
CHARINDEX('0x', ftg.ApplicationName),
CHARINDEX(' ',
ftg.ApplicationName,
CHARINDEX('0x', ftg.ApplicationName)
)-CHARINDEX('0x', ftg.ApplicationName)
)
WHERE ( ftg.EventClass = 92 -- Date File Auto-grow
OR ftg.EventClass = 93 -- Log File Auto-grow
OR ftg.EventClass = 94 -- Data File Auto Shrink
OR ftg.EventClass = 95) -- Log File Auto Shrink
--AND DB_NAME(ftg.databaseid) IN( 'arizona','tempdb')
ORDER BY ftg.StartTime

View File

@@ -3,7 +3,7 @@ IF OBJECT_ID('tempdb..#dbs')IS NOT NULL BEGIN;
DROP TABLE #dbs; DROP TABLE #dbs;
END; END;
CREATE TABLE #dbs ( [database_name] nvarchar(128), [log_size_mb] decimal(18,2), [row_size_mb] decimal(18,2), [total_size_mb] decimal(18,2) ) CREATE TABLE #dbs ( [database_name] NVARCHAR(128), [log_size_mb] DECIMAL(18,2), [row_size_mb] DECIMAL(18,2), [total_size_mb] DECIMAL(18,2) )
INSERT INTO [#dbs] ([database_name], [log_size_mb], [row_size_mb], [total_size_mb]) INSERT INTO [#dbs] ([database_name], [log_size_mb], [row_size_mb], [total_size_mb])
SELECT SELECT
@@ -28,18 +28,26 @@ DBCC SHRINKFILE (N'''+f.[name]+''' , 0, TRUNCATEONLY);
GO GO
' AS shrinkData ' AS shrinkData
,'USE '+d.name+';
DBCC SHRINKFILE (N'''+f.[name]+''' , 1024);
GO
' AS reorganizeData
FROM sys.master_files F FROM sys.master_files F
JOIN sys.databases d ON d.[database_id] = f.[database_id] JOIN sys.databases d ON d.[database_id] = f.[database_id]
JOIN [#dbs] [d2] ON d2.[database_name] = d.[name] JOIN [#dbs] [d2] ON d2.[database_name] = d.[name]
WHERE f.type_desc = 'ROWS' --mdf WHERE f.type_desc IN (
AND d.[is_read_only] = 0 'ROWS' --mdf
AND d.[is_auto_shrink_on] = 0 --'LOG'
AND d.name NOT IN (
'master'
,'tempdb'
,'model'
,'msdb'
) )
--AND d.[is_read_only] = 0
--AND d.[is_auto_shrink_on] = 0
--AND d.name NOT IN (
-- 'master'
-- ,'tempdb'
-- ,'model'
-- ,'msdb'
--)
ORDER BY [d2].[row_size_mb] DESC, d.name DESC, f.name ASC ; ORDER BY [d2].[row_size_mb] DESC, d.name DESC, f.name ASC ;
--free disk space --free disk space
@@ -50,6 +58,8 @@ convert(varchar(512), b.volume_mount_point) as [volume_mount_point]
, convert(bigint, round(((b.available_bytes / 1024.0)/1024.0),0)) as [free_mb] , convert(bigint, round(((b.available_bytes / 1024.0)/1024.0),0)) as [free_mb]
, convert(bigint, round(((b.total_bytes / 1024.0)/1024.0),0)) as [total_mb] , convert(bigint, round(((b.total_bytes / 1024.0)/1024.0),0)) as [total_mb]
, convert(bigint, round((((b.total_bytes - b.available_bytes) / 1024.0)/1024.0),0)) as [used_mb] , convert(bigint, round((((b.total_bytes - b.available_bytes) / 1024.0)/1024.0),0)) as [used_mb]
, CURRENT_TIMESTAMP AS now
,REPLACE(@@SERVERNAME ,'\apssql','')AS srvName
from sys.master_files as [a] from sys.master_files as [a]
CROSS APPLY sys.dm_os_volume_stats(a.database_id, a.[file_id]) as [b] CROSS APPLY sys.dm_os_volume_stats(a.database_id, a.[file_id]) as [b]
ORDER BY [percent_free] ASC ORDER BY [percent_free] ASC

View File

@@ -5,7 +5,6 @@ DECLARE @MonthPre VARCHAR(2)
DECLARE @Day VARCHAR(2) DECLARE @Day VARCHAR(2)
DECLARE @DayPre VARCHAR(2) DECLARE @DayPre VARCHAR(2)
DECLARE @FinalDate INT DECLARE @FinalDate INT
-- Initialize Variables -- Initialize Variables
SET @PreviousDate = DATEADD(dd, -2, GETDATE()) -- Last 2 days SET @PreviousDate = DATEADD(dd, -2, GETDATE()) -- Last 2 days
SET @Year = DATEPART(yyyy, @PreviousDate) SET @Year = DATEPART(yyyy, @PreviousDate)
@@ -14,7 +13,6 @@ SELECT @Month = RIGHT(CONVERT(VARCHAR, (@MonthPre + 1000000000)),2)
SELECT @DayPre = CONVERT(VARCHAR(2), DATEPART(dd, @PreviousDate)) SELECT @DayPre = CONVERT(VARCHAR(2), DATEPART(dd, @PreviousDate))
SELECT @Day = RIGHT(CONVERT(VARCHAR, (@DayPre + 1000000000)),2) SELECT @Day = RIGHT(CONVERT(VARCHAR, (@DayPre + 1000000000)),2)
SET @FinalDate = CAST(@Year + @Month + @Day AS INT) SET @FinalDate = CAST(@Year + @Month + @Day AS INT)
-- Final Logic -- Final Logic
SELECT j.[name], SELECT j.[name],
s.step_name, s.step_name,

View File

@@ -8,7 +8,6 @@ BEGIN
END END
GO GO
CREATE EVENT SESSION [octpdba-443_azcash] ON SERVER CREATE EVENT SESSION [octpdba-443_azcash] ON SERVER
ADD EVENT sqlserver.attention( ADD EVENT sqlserver.attention(
ACTION(package0.event_sequence,sqlserver.client_app_name,sqlserver.client_pid,sqlserver.nt_username,sqlserver.query_hash,sqlserver.server_principal_name,sqlserver.session_id,sqlserver.sql_text) ACTION(package0.event_sequence,sqlserver.client_app_name,sqlserver.client_pid,sqlserver.nt_username,sqlserver.query_hash,sqlserver.server_principal_name,sqlserver.session_id,sqlserver.sql_text)
@@ -28,7 +27,7 @@ ADD EVENT sqlserver.sql_statement_completed(
ADD EVENT sqlserver.sql_statement_starting( ADD EVENT sqlserver.sql_statement_starting(
ACTION(sqlserver.client_app_name,sqlserver.sql_text) ACTION(sqlserver.client_app_name,sqlserver.sql_text)
WHERE ([sqlserver].[database_name]=N'arizonaCash')) WHERE ([sqlserver].[database_name]=N'arizonaCash'))
ADD TARGET package0.event_file(SET filename=N'd:\octpdba-443_azcash',max_file_size=(100)) ADD TARGET package0.event_file(SET filename=N'e:\octpdba-443_azcash',max_file_size=(100), max_rollover_files = 5)
WITH (MAX_MEMORY=8192 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=ON,STARTUP_STATE=ON) WITH (MAX_MEMORY=8192 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=ON,STARTUP_STATE=ON)
GO GO