受控基础资料性能优化之——水平分表配置组织数据关系固化还原信息
变更记录
产品版本 | 更新内容 | 更新日期 |
V6.0.1 | 初始版本,增加固化信息配置,业务可以按需配置 | 2023年10月16日 |
1 简介
1.1 功能介绍
给特定的受控基础资料增加组织数据关系固化信息配置,用于支持将组织和数据的关系固化到物理表中,解决管控策略新模型的列表加载和查询的性能问题。
如果没有这个配置,那么列表加载或者查询的时候会产生bitindex in (...) or (ctrlstrategy = '6' and createorg in (...))的过滤条件,这个条件有or条件导致全表扫描;同时如果in中的元素过多,达到了转临时表的阈值,那么会先转临时表,对数据库的压力比较大,尤其是在使用高峰期的时候有特别明显的性能问题。
启用这个配置之后,列表加载或者数据查询,产生的查询条件变为:join 固化表 r on r.bitindex = t.bitindex and r.useorgid = 使用组织Id,不存在临时表,也没有or条件,同时还会走bitindex 和useorgid 组合索引,可以提高列表加载和查询性能提升,同时如果固化表的数据量很大,因为存在具体的实体的缘故,固化表还能进行水平拆分。
1.2 应用场景
当受控基础资料数据量很多,相关操作有性能问题时(如:分配、取消分配、变更策略、管理转让、列表或者F7加载、模糊查询等操作有性能问题),均可以升级管控策略模型,并启用固化关系配置。
1.3 系统路径
【开发服务云】→【开发平台】
【基础服务云】→【企业建模】→【管控策略】 →【基础数据管控策略】
2 主要操作
2.1 建立固化关系实体
操作步骤
步骤1: 开发平台上新建页面,选择【基础资料】,点击下一步。
步骤2: 选择【通过模板创建】,并点击下一步。
步骤3: 选择【基础资料组织数据关系模板】,并下一步。
步骤4: 输入【编码】和【名称】,完成组织数据固化关系实体的创建。
步骤5: 业务自定义资料固化关系实体的表名(表名由业务自定义),点击保存即可。
步骤6: 对资料固化关系表建立组合索引(fuseorgid + fbitindex),注意组合索引的字段顺序,fuseorgid在前面;生成KSQL建表和建索引语句,发版的时候预置出去。
-- 以下是ksql建索引语句写法 IF NOT EXISTS (SELECT 1 FROM KSQL_INDEXES WHERE KSQL_INDNAME = 'IN_T_BD_CUSTOMER_BITREL_OB') CREATE INDEX IN_T_BD_CUSTOMER_BITREL_OB ON T_BD_CUSTOMER_BITREL (FUSEORGID, FBITINDEX ); -- 如果要在特定的数据库类型上建立索引,则根据实际SQL语法编写建索引语句
注意事项:建立的资料组织固化关系实体,需要跟具体的受控基础资料在同一个数据库中,如果不在同一个库中最终会涉及跨库操作将达不到性能优化的目的。
2.2 更新基础数据管控策略配置
前提条件 基础数据管控策略中,受控基础资料已经存在
操作步骤
步骤1: 通过sql更新【固化关系对象】字段即可。
-- fsolidifyobj 固化关系对象字段 -- 以下例子为更新客户资料对应的固化关系对象为bd_customer_bitrel,业务根据实际情况指定固化对象和变更条件 update t_bd_defaultctrlstrategy set fsolidifyobj = 'bd_customer_bitrel' where fbasedataid = 'bd_customer';
2.3 新预置基础数据管控策略配置
前提条件 新增的受控基础资料类型,增加管控策略配置
操作步骤
步骤1: 进入【基础服务云】→【企业建模】→【管控策略】 →【基础数据管控策略】,点击新增按钮,增加管控策略配置。
步骤2: 填写相关必录字段,同时【固化关系对象】选择已经建立好的固化关系实体,点击保存即可,数据会存到管控策略配置表中(t_bd_defaultctrlstrategy)。
步骤3:将管控策略配置表(t_bd_defaultctrlstrategy)的数据用ksql导出,在发版的时候将预置数据跟着发布。
受控基础资料性能优化之——水平分表配置组织数据关系固化还原信息
本文2024-09-23 00:30:37发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-139925.html