基于关系型数据库系统二维表的快速统计方法与流程

文档序号:24046070发布日期:2021-02-23 18:48阅读:100来源:国知局
基于关系型数据库系统二维表的快速统计方法与流程

[0001]
本发明涉及关系型数据库技术领域,具体涉及一种基于关系型数据库系统二维表的快速统计方法。


背景技术:

[0002]
关系型数据库系统是用以存储用户信息,业务信息,报表等数据的重要技术,用于互联网,大数据,电子商务,电子政务等多种行业中。关系型据库系统中的二维表作为主要存储数据的载体,满足了人们对于持久性存储和实时查询关系型数据的各种需求。但随着互联网,大数据行业的快速发展,关系型数据库系统中二维表记录的业务数据量呈现指数级爆发,二维表中数据总量占用存储空间也越来越大。
[0003]
在此背景下,针对于关系型数据库系统中存储海量数据的二维表,用传统的、常规的、基于sql-99标准的结构查询语言(sql语言)中count()统计函数统计其记录总数时,会去扫描表中所有的数据记录,出现数据量越大,扫描时间越长的现象。而采用该方法count()函数需扫描所有记录数,导致统计执行时间越来越长,严重影响人们对实时统计数据记录总数的获取速度,从而不能够满足人们的需求。


技术实现要素:

[0004]
本发明的目的在于在不影响关系型数据库数据一致性、完整性及运行性能的基础上,利用数据库技术领域中的触发器机制,提供一种基于关系型数据库系统二维表的快速统计方法。
[0005]
为实现上述目的,本发明采用的技术方案为:一种基于关系型数据库系统二维表的快速统计方法,包括:
[0006]
步骤s100,构建初始统计结果表,在关系型数据库系统中,确定需要统计数据记录总数的二维表,以此二维表作为被统计表;在关系型数据库系统中设置一个用于记录被统计表的表名和初始数据记录总数的初始统计结果表;
[0007]
步骤s200,更新初始统计结果表获得实时统计结果表,将触发器机制翻译成结构化查询语句中的数据定义语言,与被统计表实施到同一关系型数据库系统中对被统计表进行检测;通过触发器机制中的触发器对初始统计结果表中的数据记录总数进行实时更新,获得统计结果表;
[0008]
步骤s300,查询统计结果表获得表名所对应的实时数据记录总数,当应用需获取被统计表的数据记录总数时,以被统计表的表名作为查询条件直接查询统计结果表,获得实时的数据记录总数。
[0009]
进一步地,所述触发器机制包括触发器tri_insert和触发器tri_delete,
[0010]
若触发器tri_insert监测到被统计表的数据插入提交成功时,对初始统计结果表中的数据记录总数加1;
[0011]
若触发器机制的触发器tri_delete监测到被统计表的数据删除提交成功时,对初
始统计结果表中的数据记录总数减1。
[0012]
本发明的有益效果是:
[0013]
本发明主要针对关系型数据库系统中存储海量数据的二维表,在需统计数据记录总数的二维表数据量发生增减变化时,提前定义好并插入初始数据记录总数的统计结果表中触发数据记录总数统计值的实时加减计算,从而实时得出针对于该被统计二维表的数据记录总数结果并存储,以达到对该二维表数据记录总数统计耗时的优化,缩短统计时间,提高数据记录总数的统计效率。
附图说明
[0014]
图1为本发明实施例基于关系型数据库系统二维表的快速统计方法流程图。
具体实施方式
[0015]
下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0016]
实施例一
[0017]
参见附图1,本发明的一种基于关系型数据库系统二维表的快速统计方法,包括:
[0018]
步骤s100,构建初始统计结果表
[0019]
在关系型数据库系统中,确定需要统计数据记录总数的二维表,以此二维表作为被统计表;在关系型数据库系统中设置一个用于记录被统计表的表名和初始数据记录总数等的初始统计结果表,初始统计结果表为独立数据表结构,通过将被统计表的表名和初始数据记录总数等插入到该数据表结构中形成初始记录。
[0020]
步骤s200,更新初始统计结果表获得实时统计结果表,
[0021]
将触发器机制翻译成结构化查询语句中的数据定义语言,与被统计表实施到同一关系型数据库系统中对被统计表进行检测,在被统计表发生插入或删除数据操作并提交事务成功时,对初始统计结果表中的初始数据记录总数进行实时更新。例如,触发器机制中至少包括触发器tri_insert和触发器tri_delete,若触发器tri_insert监测到被统计表的数据插入提交成功时,对初始统计结果表中的数据记录总数加1;若触发器tri_delete监测到被统计表的数据删除提交成功时,对初始统计结果表中的数据记录总数减1。若触发器机制检测到被统计表的相应数据操作提交事务未成功时,对初始统计结果表中的数据记录总数不进行增减操作。通过触发器对初始统计结果表中的数据记录总数进行实时更新,获得统计结果表,并根据上述更新过程,不断对统计结果表进行更新,以使统计结果表内的数据信息为实时状态。
[0022]
其中,数据库技术中的触发器机制是指现存关系型数据库系统中,已经实际存在的触发器技术,利用该技术并通过针对被统计表的编程,可监测到被统计二维表数据的增减变化,并实时触发统计结果表中,统计结果的增加或减少。
[0023]
步骤s300,查询统计结果表获得表名所对应的实时数据记录总数,
[0024]
当前端应用或数据库应用需获取被统计表的数据记录总数时,以被统计表的表名
作为查询条件直接查询统计结果表,获得实时的数据记录总数。
[0025]
通过本发明的基于关系型数据库系统二维表的快速统计方法,在对数据记录总数进行统计时,不需要使用常规执行sql中count()函数扫描被统计表在存储上所有的数据记录总数或是合并初始数据记录总数和数据变化记录数,而是直接读取统计结果表中的一条已经计算好的静态统计值即可,扫描内容少,因此获取结果的效率更快;缩短得到查询命令与根据查询命令得到查询结果之间的时间差,保证所获得的数据记录总数的准确性。
[0026]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1