zoukankan      html  css  js  c++  java
  • AuditBase 清理

    排查Dynamics CRM各个Entity table的大小, 发现AuditBase占了很大的数量,本来准备直接SSMS下Script删除,不过网上查了一下,可以使用CRM自己的Audit Log Management来清理,这样安全很多

    步骤如下

    1. Setting->System->Auditing

    image

    2. 选择“Audit Log Management”

    image

    3. 选择特定时间的Audit Log,就可以删除掉了

    这时候就有问题了,如果要删除针对一个Entity的audit log,那就不能只是通过这里的界面来操作了,只能通过Script来做了(Audit Entity 只有AuditBase这个table,没有额外的extension table)

    select en.name, count(ab.auditid) from [dbo].[AuditBase] ab inner join [MetadataSchema].[Entity] en on ab.[ObjectTypeCode] = en.[ObjectTypeCode]
    group by en.name
    order by count(ab.auditid)
    desc
    
    begin tran
    delete ab from [dbo].[AuditBase] ab inner join [MetadataSchema].[Entity] en on ab.[ObjectTypeCode] = en.[ObjectTypeCode]
    where en.name = 'account' and ab.createdon <'2015-11-01'
    
    commit

    更进一步的话可以用script找出原始数据,根据原始数据的属性来删除,例如对于交易数据,如果该交易数据已经被关闭,这样它的相关的audit log就可以删除掉了,这就涉及到数据清理原则的设计了,与公司的商业流程息息相关。

    再有就是Audit虽然很有用,但是在开启的时候,尤其是field audit的时候,要有针对性的,根据实际的需要来开启,而不是全面开启,那样就有点滥用了。

  • 相关阅读:
    小议如何使用APPLY
    SQLServer复制(二)--事务代理作业
    T-SQL—理解CTEs
    jdbc与java.sql
    java设计模式之中介者模式
    fread函数和fwrite函数
    Linux多线程编程(不限Linux)
    poj 3320 技巧/尺取法 map标记
    poj 1260 dp
    HDU 4311 前缀和
  • 原文地址:https://www.cnblogs.com/yeung/p/5112239.html
Copyright © 2011-2022 走看看