Wie bereinigt man das DevExpress XAF Audit Log?


Mit dem folgenden SQL Script, werden alle Auditlog Informationen die älter als 90 Tage sind aus der Datenbank entfernt. Es kann wenn man diesen Vorgang lange, oder noch nie ausgeführt hat, sehr viel Zeit beanspruchen bis das Skript erfolgreich durchgelaufen ist. Wenn man dieses regelmäßig anwendet, hält sich diese Zeit in Grenzen. (z.B. alle 24 Stunden in den Nachtstunden)

update [AuditDataItemPersistent] set GCRecord = 1, AuditedObject = null where ModifiedOn < DATEADD (d , 90 , GetDate() )

update [XPWeakReference] set GCRecord = 1 where Oid in (select NewObject from AuditDataItemPersistent where GCRecord is not null) or
Oid in (select OldObject from AuditDataItemPersistent where GCRecord is not null) or
(Oid in (select Oid from AuditedObjectWeakReference) and
not (Oid in (select AuditedObject from AuditDataItemPersistent where AuditedObject is not null)))

delete from AuditDataItemPersistent where GCRecord is not null

delete from AuditedObjectWeakReference where Oid in (select Oid from [XPWeakReference] where GCRecord is not null)

delete from [XPWeakReference] where GCRecord is not null

Schreibe einen Kommentar