总账余额表索引调整:设置唯一
自EAS820开始,为了优化性能,对余额表进行了拆表,目前总账后台余额表设计有三种类型余额:【科目余额】,【辅助余额】和【多计量单位辅助余额】,每种类型余额又按【是否包含未过账凭证】和【币别】拆分为6个表:
科目余额表:
T_GL_AccountBalance_1F(包含未过账原币数据)
T_GL_AccountBalance_5F(过账原币数据)
T_GL_AccountBalance_1L(包含未过账本位币数据)
T_GL_AccountBalance_5L(过账本位币数据)
T_GL_AccountBalance_1R(包含未过账报告币数据)
T_GL_AccountBalance_5R(过账报告币数据)
辅助余额表:
T_GL_AssistBalance_1F(包含未过账原币数据)
T_GL_AssistBalance_5F(过账原币数据)
T_GL_AssistBalance_1L(包含未过账本位币数据)
T_GL_AssistBalance_5L(过账本位币数据)
T_GL_AssistBalance_1R(包含未过账报告币数据)
T_GL_AssistBalance_5R(过账报告币数据)
多计量单位辅助余额表:
T_GL_AssistMeasureBalance_1F(包含未过账原币数据)
T_GL_AssistMeasureBalance_5F(过账原币数据)
T_GL_AssistMeasureBalance_1L(包含未过账本位币数据)
T_GL_AssistMeasureBalance_5L(过账本位币数据)
T_GL_AssistMeasureBalance_1R(包含未过账报告币数据)
T_GL_AssistMeasureBalance_5R(过账报告币数据)
余额表中的记录,它是多个维度的组合,每个组合只能有一条记录,比如T_GL_AccountBalance_1F,它的维度是【组织,期间,科目,币别】,使用这些列应该是可以创建主键或唯一索引的,但是由于设计初期,考虑不周,只建了常规索引,以至于因某些未知原因,产生重复记录,进而造成余额结转、期未处理,账表查询等功能出错。下面以表T_GL_AccountBalance_1F在Oracle库为例说明如何将常规索引调整为唯一索引。
1、对于已存在数据的表,要先检查是否存在重复数据,如果存在重复数据,是无法建立唯一索引的,要先清理重复数据。执行下面的查询脚本,如果存在数据,说明存在重复记录:
select FORGUNITID, FPERIOD, FACCOUNTID, FCURRENCYID, count(*) from T_GL_ACCOUNTBALANCE_1F group by FORGUNITID, FPERIOD, FACCOUNTID, FCURRENCYID having count(1) > 1;
2、执行下面的脚本清理重复数据:
delete from T_GL_AccountBalance_1F where (FORGUNITID, FPERIOD, FACCOUNTID, FCURRENCYID) in ( select FORGUNITID, FPERIOD, FACCOUNTID, FCURRENCYID from T_GL_AccountBalance_1F group by FORGUNITID, FPERIOD, FACCOUNTID, FCURRENCYID having count(*) > 1 ) and rowid not in ( select min(rowid) from T_GL_AccountBalance_1F group by FORGUNITID, FPERIOD, FACCOUNTID, FCURRENCYID having count(*) > 1 );
3、执行下面的脚本删除旧索引:
drop index IX_GL_AC_1F_AC1;
4、执行下面的脚本创建新的唯一索引:
create unique index IX_GL_AC_1F_AC1 on T_GL_ACCOUNTBALANCE_1F(FORGUNITID, FPERIOD, FACCOUNTID, FCURRENCYID);
注意:
1、脚本请从附件中提取,Oracle库使用fi_gl_balance_index_adjust_oracle.sql,MSSQLServer库使用fi_gl_balance_index_adjust _mssqlserver.sql。
2、对于Oracle库请在PL/SQL中执行,对于MSSQLServer请在MSSQLServer的查询分析器中执行。
3、请先在测试环境验证,批量无法执行的 话,请逐条执行。
4、本操作比较耗性能,请在晚上业务比较空闲时进行。
总账余额表索引调整:设置唯一
本文2024-09-22 18:26:57发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-100840.html