Очистка базы McAfee ePO

В некоторых случая требуется почистить SQL базы от множества Events, которые переполнили базы.
Следующим запросом выясняем и запоминаем EventID, который заполнил базу больше всего:

select top 10
Count(e.ThreatEventID) as [Count], e.ThreatEventID as EventID,
f.[Description] as 'Event Description', e.AnalyzerName as 'Event Source'
from EPOEvents e (nolock) left join EPOEventFilterDesc (nolock) f
on e.ThreatEventID = f.EventId where f.[Language] = '0409'
group by e.ThreatEventID, f.[Description], e.AnalyzerName
order by [Count] desc

Далее подставляем этот EventID в запрос по очистке:

declare @EventID int = 1092;
declare @Is510 bit; declare @rowcount int = 1;
if OBJECT_ID('tempdb.dbo.#PurgeEvents', 'U') IS NOT NULL drop table #PurgeEvents;
create table #PurgeEvents (AutoID bigint);
if exists (select 1 from sys.objects where [name] = 'EPOEventsMT' and type = 'SN')
set @Is510 = 1; else set @Is510 = 0;
while (@rowcount > 0)
begin
begin transaction;
delete top(10000) EPOEvents output deleted.AutoID into #PurgeEvents where ThreatEventID = @EventID;
if (@Is510 = 1) delete A from EPOEventsReference A join #PurgeEvents B ON A.AutoID = B.AutoID;
set @rowcount = @@ROWCOUNT;
truncate table #PurgeEvents;
commit transaction;
if @rowcount > 0 waitfor delay '00:00:05';
end
drop table #PurgeEvents;

После данной процедуре остается только сделать Shrink базе.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x