【问题标题】:how to transfer records from MDS to another table then delete certain records from MDS without deleting them from the transferred table如何将记录从 MDS 转移到另一个表,然后从 MDS 中删除某些记录而不从转移的表中删除它们
【发布时间】:2018-02-28 20:07:41
【问题描述】:

我正在使用 Master Data Service(SQLServer2016 的企业版)收集来自不同部门的数据,因此每个组将有一个或多个具有更新访问权限的属性组.为了指示循环完成,将属性“循环状态”设置为值“是”。 由于许多业务规则和多个属性组,性能变得非常缓慢,所以我在想的是: 1.将所有完成循环的记录转移到一个表中 2. 从 Master Data Service 中删除这些记录,但这不会从表(Point_1)中删除它们。 有什么线索怎么做吗?,我知道在 MDS 中有订阅视图,但不知道这是否适合我的情况?以及如何?

【问题讨论】:

    标签: master-data-services


    【解决方案1】:

    E.IK,

    第一种方法:业务规则的条件评估

    您可以考虑向所有业务规则添加条件以仅评估业务规则

    IF 循环状态 = “否”

    这可能会降低您现在看到的性能影响(不确定)。 这可以通过(在编辑业务规则屏幕中)来完成

    条件 > 值比较 > 等于 > 选择属性:="循环状态" > 属性值/属性:= "否"

    这样您就不必移动数据了。

    第二种方法:将数据移动到另一个(物理)表

    • 这种方法需要您在同一个 MDS 数据库或另一个数据库中创建一个单独的表(物理 DB 表,而不是实体,以避免 MDS 开销)。
    • 然后创建一个 SP,它将循环状态 =“yes”的行插入到第二个表并在 MDS 实体中将它们标记为已删除。
    • 您可能希望创建一个 SQL 代理作业,该作业可以安排为以您喜欢的任何频率(每天、每周……等)运行此 SP。
    • 这种方法面临的挑战是您的用户将无法再轻松访问此存档数据。

    另一种替代方法...

    将创建一个单独的 MDS 模型 - “存档”。在那里创建一个类似的实体(如镜像),而不是将已关闭的记录移动到 Db 表中,而是将它们添加到存档模型中的镜像实体中。您可能希望为所有用户授予对该新实体的只读访问权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      相关资源
      最近更新 更多