基于ONSTATEMENT的物化视图自动增量刷新方法、存储介质和产品与流程
- 国知局
- 2024-10-15 10:09:15
本发明涉及数据库领域,特别是涉及一种基于on statement的物化视图自动增量刷新方法、机器可读存储介质及计算机程序产品。背景技术:::1、物化视图是一个包含查询结果的数据库对象,是一种特殊的物理表,其本身是会存储数据的。当基表数据发生变化时,需要通过物化视图刷新来确保物化视图相对于基表最新数据获取到最新的查询结果。2、目前物化视图刷新模式有两种:3、a)on demand(specifying on demand means that the database does notrefresh the materialized view unless the user refreshes it manually,指定ondemand.意味着除非用户手动刷新,否则数据库不会刷新物化视图)4、b)on commit(specify on commit to indicate that a refresh is to occurwhenever the database commits a transaction that operates on a master tableof the materialized view.指定on commit以指示每当数据库提交在物化视图的主表上操作的事务时都要进行刷新)5、对于模式a)6、物化视图在用户需要的时候进行手动刷新,也可以通过job来定时进行刷新以确保与基表数据的一致性。7、当基表数据增删改比较频繁,那么很可能造成物化视图与基表的数据不一致。如果想要两者数据一致,需要用户每次使用物化视图前去手动刷新,或者通过job不断去做定时刷新。而前者手动刷新让用户使用上变得繁琐,后者不断刷新的过程,占用了时间和资源,非常影响性能,尤其是基表都没有数据变化时,根本不需要去做刷新操作。8、对于模式b)9、一旦基表有了显示commit,即显示事务提交,就立刻刷新物化视图,来确保与基表数据的一致性。10、基表数据进行增删改时,必须要等到显示事务提交,才能将基表变更数据刷新到物化视图,那么对于事务内,面对基表随时增删改操作,要保证物化视图与基表数据的一致性,需要用户每次使用物化视图前,进行手动刷新,这样让用户的使用变得繁琐。技术实现思路1、本发明的第一方面的一个目的是减少物化视图刷新过程中用户的操作。2、本发明的第一方面的一个进一步的目的是减少物化视图刷新占用的时间和资源。3、本发明的第一方面的另一个进一步的目的是减少物化视图刷新过程中对基表增删改的时间影响。4、本发明的第一方面的再一个进一步的目的是确保在事务内物化视图与基表数据的一致性,又确保用户使用上不繁琐。5、本发明的第二方面的目的是提供一种机器可读存储介质。6、本发明的第三方面的目的是提供一种计算机程序产品。7、特别地,本发明提供了一种基于on statement的物化视图自动增量刷新方法,包括:8、创建关于基表的物化视图日志;9、当产生针对所述基表数据的增量操作,将所述基表的数据变更信息更新至所述物化视图日志并确定每个所述增量操作对应的物化视图;10、利用所述物化视图日志中的日志信息完成对全部所述物化视图的增量刷新。11、可选地,确定每个所述增量操作对应的物化视图的步骤包括:12、基于所述基表数据和物化视图的对应关系创建物化视图系统表;13、根据所述物化视图系统表确定每个增量操作数据对应的物化视图。14、可选地,利用所述物化视图日志中的日志信息完成对全部所述物化视图的增量刷新的步骤包括:15、针对一个所述物化视图,利用所述物化视图日志中全部与所述物化视图对应的日志信息对所述物化视图进行增量刷新并在完成后,继续利用所述物化视图日志中的日志信息对其他未被增量刷新的所述物化视图进行增量刷新直至全部所述物化视图完成增量刷新。16、可选地,利用所述物化视图日志中全部与所述物化视图对应的日志信息对所述物化视图进行增量刷新的步骤包括:17、读取所述物化视图日志中与所述物化视图对应的一条日志信息,利用所述日志信息对所述物化视图进行增量刷新并在完成后,继续读取所述物化视图日志中其他与所述物化视图对应的日志信息对所述物化视图进行增量刷新直至所述物化视图日志中不包含与所述物化视图对应的未进行过增量刷新的日志信息。18、可选地,利用所述日志信息对所述物化视图进行增量刷新的步骤包括:19、确定所述日志信息的日志类型;20、根据所述日志类型对所述物化视图进行增量刷新。21、可选地,若所述日志类型为删除,根据所述日志类型对所述物化视图进行增量刷新的步骤包括:22、删除所述物化视图中的相应数据行。23、可选地,若所述日志类型为增加,根据所述日志类型对所述物化视图进行增量刷新的步骤包括:24、在所述物化视图相应位置插入相应数据行。25、可选地,所述增量操作以隐式事务提交方式提交。26、根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据上述任一项所述的基于onstatement的物化视图自动增量刷新方法。27、根据本发明的再一个方面,还提供了一种计算机程序产品,包括计算机可执行程序,所述计算机可执行程序被处理器执行时实现根据上述任一项所述的基于on statement的物化视图自动增量刷新方法。28、本发明提出的基于on statement的物化视图自动增量刷新方法中,首先创建关于基表的物化视图日志,然后当产生针对基表数据的增量操作,将基表的数据变更信息更新至物化视图日志并确定每个增量操作对应的物化视图,再利用物化视图日志中的日志信息完成对全部物化视图的增量刷新。基于本发明提供的技术方案,每当增删改基表数据,就会将增量部分数据自动刷新到物化视图,因此对基表增删改性能影响较小,对时间和资源占用也少,而这种语句级自动增量刷新,也可以确保物化视图与基表数据的实时一致性,无论在事务内还是事务外,都无需用户进行手动刷新。29、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。30、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。技术特征:1.一种基于on statement的物化视图自动增量刷新方法,包括:2.根据权利要求1所述的基于on statement的物化视图自动增量刷新方法,其特征在于3.根据权利要求1所述的基于on statement的物化视图自动增量刷新方法,其特征在于4.根据权利要求3所述的基于on statement的物化视图自动增量刷新方法,其特征在于5.根据权利要求4所述的基于on statement的物化视图自动增量刷新方法,其特征在于6.根据权利要求5所述的基于on statement的物化视图自动增量刷新方法,其特征在于7.根据权利要求5所述的基于on statement的物化视图自动增量刷新方法,其特征在于8.根据权利要求1所述的基于on statement的物化视图自动增量刷新方法,其特征在于9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的基于on statement的物化视图自动增量刷新方法。10.一种计算机程序产品,包括计算机可执行程序,所述计算机可执行程序被处理器执行时实现根据权利要求1至8任一项所述的基于on statement的物化视图自动增量刷新方法。技术总结本发明提出了一种基于ON STATEMENT的物化视图自动增量刷新方法、机器可读存储介质及计算机程序产品,本发明提出的方法中,首先创建关于基表的物化视图日志,然后当产生针对基表数据的增量操作,将基表的数据变更信息更新至物化视图日志并确定每个增量操作对应的物化视图,再利用物化视图日志中的日志信息完成对全部物化视图的增量刷新。基于本发明提供的技术方案,每当增删改基表数据,就会将增量部分数据自动刷新到物化视图,因此对基表增删改性能影响较小,而这种语句级自动增量刷新,也可以确保物化视图与基表数据的实时一致性,无论在事务内还是事务外,减少用户使用上的约束,尤其是基表数据更新比较频繁,用户直接可使用物化视图中数据,使用便捷。技术研发人员:谢军波,王建华受保护的技术使用者:中电科金仓(北京)科技股份有限公司技术研发日:技术公布日:2024/10/10
本文地址:https://www.jishuxx.com/zhuanli/20241015/316610.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。