kreta/Tools/SqlScripts/cleanup_monitor.sql
2024-03-13 00:33:46 +01:00

47 lines
1.6 KiB
Transact-SQL

-- Intézmény adatokat eltávolító folyamat figyelése
declare @INTEZMENYEK varchar(max) = 'klik031053001'; -- <----- Megmaradó intézmény azonosítók
declare @SQL nvarchar(max) = '';
set @INTEZMENYEK = stuff((
select concat(',', i.ID)
from string_split(@INTEZMENYEK, ',') a
inner join T_INTEZMENY (nolock) i on i.C_AZONOSITO = a.value
for xml path('')
), 1, 1, '');
declare @table_list table(table_name sysname, to_do bit);
select @SQL += 'SELECT ''' + s.name + '.' + t.name + ''' AS table_name, ' +
'CASE WHEN EXISTS(SELECT * FROM ' + s.name + '.' + t.name + ' (NOLOCK) WHERE ' + c.name + ' NOT IN (' + @INTEZMENYEK + ') ) THEN 1 ELSE 0 END AS ToDo;' + char(13)
from sys.tables t
inner join sys.schemas s on s.schema_id = t.schema_id
inner join sys.columns c on t.object_id = c.object_id
where c.name in ('C_INTEZMENYID', 'C_ALINTEZMENYID')
and s.name not in ('auditlog', 'core', 'dev', 'HangFire')
and t.name not in ('XmlAudit')
order by s.name, t.name;
insert into @table_list
exec(@SQL);
select distinct
spid,
datediff(second, last_batch, getdate()) duration_sec,
p.cmd,
substring(s.text, p.stmt_start / 2 + 1, p.stmt_end / 2 + 1) command,
p.status,
r.percent_complete,
r.estimated_completion_time / 1000 seconds_remaining
from sys.sysprocesses p
cross apply sys.dm_exec_sql_text(p.sql_handle) s
left join sys.dm_exec_requests r on r.session_id = p.spid
where p.spid <> @@spid
and s.text like '%CHECKPOINT;%'
and p.status in ('running', 'runnable', 'suspended');
select * from @table_list
where to_do > 0;