数据库关系表的信息统计方法、存储介质与计算机设备技术

技术编号:37042640 阅读:13 留言:0更新日期:2023-03-29 19:21
本发明专利技术提供了一种数据库关系表的信息统计方法、存储介质与计算机设备。其中上述方法包括:获取被统计的SQL语句;采集所述SQL语句对应的关系表的统计信息;计算所述关系表的模式特征值;根据所述模式特征值将所述统计信息更新至所述数据库的统计表中。本发明专利技术的方案,可以在统计表中整合大量关系表的统计信息,极大的降低统计信息的规模,提高统计效率,避免了因大量相同模式类型的关系表在统计表中占据大量条目,影响数据库系统性能。影响数据库系统性能。影响数据库系统性能。

【技术实现步骤摘要】
数据库关系表的信息统计方法、存储介质与计算机设备


[0001]本专利技术涉及数据库技术,特别是涉及数据库关系表的信息统计方法、存储介质与计算机设备。

技术介绍

[0002]数据库应用系统经常会大量使用临时表来处理业务。这些临时表的一个特点是表结构相同、表名有相同前缀或后缀。比如销售合同临时表:XSHT_2019,XSHT_2020,XSHT_2021...。
[0003]数据库系统内部通过统计表来跟踪这些用户表的基本信息和使用情况,当具有相同表结构、相同表名模式的临时表超过10000时,数据库系统跟关系表、TOP SQL相关的统计信息呈爆炸性增长。数据库内核为了维护它们的统计信息,需要非常频繁的采集和更新这些统计表,会造成数据库系统性能的下降。
[0004]海量临时表统计信息的维护成本高于使用价值。因为临时表记录统计信息价值不是特别大,这些临时表在会话结束的时候会被自动清理掉。每个临时表一旦被访问,就会产生一些统计信息,这些统计信息除个别临时表以外都会比较接近。
[0005]因此当用户查询TOP SQL视图的时候,得到了大量的相似的SQL语句,这些SQL语句稀释了整个TOP SQL视图的其他语句,使得数据库管理员(Database Administrator,简称DBA)无法从中获得有用信息。

技术实现思路

[0006]本专利技术的一个目的是要提供一种能够解决上述任一问题的数据库的数据存储方法、存储介质与设备。
[0007]本专利技术一个进一步的目的是降低数据库系统维护统计信息的复杂度以及维护成本。
[0008]本专利技术另一个进一步的目的是减少TOP SQL视图中SQL语句的无效信息。
[0009]本专利技术又一个进一步的目的是提高统计信息处理查询的效率。
[0010]特别地,本专利技术提供了数据库关系表的信息统计方法,其包括:
[0011]获取被统计的SQL语句;
[0012]采集SQL语句对应的关系表的统计信息;
[0013]计算关系表的模式特征值;以及
[0014]根据模式特征值将统计信息更新至数据库的统计表中。
[0015]可选地,计算关系表的模式特征值的步骤包括:
[0016]获取关系表的结构信息和名称信息;
[0017]根据结构信息计算得到表结构特征值;以及
[0018]根据名称信息计算得到表名特征值。
[0019]可选地,获取关系表的结构信息的步骤包括:逐一获取关系表中所有字段的字段
信息,字段信息包括:字段的字段名、字段类型、是否允许为空标记、以及默认值;并且,
[0020]根据结构信息计算得到表结构特征值的步骤包括:将所有字段的字段信息进行拼接,得到表结构信息字符串;根据表结构信息字符串进行计算获取表结构特征值。
[0021]可选地,根据表结构信息字符串进行计算获取表结构特征值的步骤包括:
[0022]使用预设的哈希算法对表结构信息字符串进行计算,得到的哈希值作为表结构特征值。
[0023]可选地,获取关系表的名称信息的步骤包括:获取关系表所属数据库的库名、关系表所属模式的模式名、关系表的表名;并且,
[0024]根据名称信息计算得到表名特征值的步骤包括:使用预设的通配符替换表名中的序号标识;将库名、模式名、替换序号标识后的表名进行拼接,得到名称字符串;根据名称字符串进行计算得到表名特征值。
[0025]可选地,根据名称字符串进行计算得到表名特征值的步骤包括:
[0026]使用预设的哈希算法对名称字符串进行计算,将得到的哈希值作为表名特征值。
[0027]可选地,使用预设的通配符替换表名中的序号标识步骤之后还包括:
[0028]使用替换序号标识后的表名替换SQL语句中对应的关系表的表名;
[0029]将替换表名后的SQL语句存入TOP SQL视图。
[0030]可选地,根据模式特征值将统计信息更新至数据库的统计表中的步骤包括:
[0031]判断统计表中是否存在模式特征值的条目;
[0032]若存在,使用统计信息更新对应条目;
[0033]若不存在,在统计表中添加该模式特征值的条目,并写入对应的统计信息。
[0034]根据本专利技术的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种数据库关系表的信息统计方法。
[0035]根据本专利技术的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种数据库关系表的信息统计方法。
[0036]本专利技术的数据库关系表的信息统计方法,在SQL语句执行时,获取到SQL语句。采集SQL语句所对应的关系表的统计信息,提取出关系表的结构信息和名称信息,计算出关系表的模式特征值,根据模式特征值将关系表对应的统计信息更新至统计表中。这样可以使大量经过处理后的临时表因模式特征值相同,在统计表中的统计信息合并为一条,极大地降低统计信息的规模,避免了因大量相同模式类型的临时表在统计表中占据大量条目,影响数据库系统性能。
[0037]进一步地,本专利技术的数据库关系表的信息统计方法,获取到SQL语句后,查找到SQL语句里查询、操作到的全部表名,使用预设的通配符逐一替换表名中的序号标识,使用替换序号标识后的表名替换SQL语句中对应的表名,将替换表名后的SQL语句存入TOP SQL视图,可以使得大量相似类型的SQL语句在经过替换处理后因表名相同从而合并为一条记录,也即对关系表表名进行泛化处理,将相似程度较高的语句进行合并。当用户查询TOP SQL视图的时候,可以直观的查看到不同类型的SQL语句的执行情况,避免了大量相似的SQL语句稀释整个TOP SQL视图的其他类型的SQL语句的统计信息,提高了统计效率。
[0038]进一步地,本专利技术的数据库关系表的信息统计方法,根据字段的字段名、字段类型、是否允许为空标记、以及默认值计算得到表结构特征值;根据库名、模式名、关系表表名计算得到表名特征值,按照表结构特征值和表名特征值进行统计信息的记录。例如可以通过哈希算法计算得到上述表结构特征值和表名特征值,便于统计表内的统计信息的查询以及更新,提高了处理效率。
[0039]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0040]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0041]图1是数据库关系表的信息统计方法的一种流程示意图;
[0042]图2是数据库关系表的信息统计时关系表与统计表常用的一种对应关系示意图;
[0043]图3是根据本专利技术一个实施例的数据库本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库关系表的信息统计方法,包括:获取被统计的SQL语句;采集所述SQL语句对应的关系表的统计信息;计算所述关系表的模式特征值;以及根据所述模式特征值将所述统计信息更新至所述数据库的统计表中。2.根据权利要求1所述的数据库关系表的信息统计方法,其中,所述计算所述关系表的模式特征值的步骤包括:获取所述关系表的结构信息和名称信息;根据所述结构信息计算得到表结构特征值;以及根据所述名称信息计算得到表名特征值。3.根据权利要求2所述的数据库关系表的信息统计方法,其中,所述获取所述关系表的结构信息的步骤包括:逐一获取所述关系表中所有字段的字段信息,所述字段信息包括:字段的字段名、字段类型、是否允许为空标记、以及默认值;并且所述根据所述结构信息计算得到表结构特征值的步骤包括:将所述所有字段的字段信息进行拼接,得到表结构信息字符串;根据所述表结构信息字符串进行计算获取表结构特征值。4.根据权利要求3所述的数据库关系表的信息统计方法,其中,所述根据所述表结构信息字符串进行计算获取表结构特征值的步骤包括:使用预设的哈希算法对所述表结构信息字符串进行计算,得到的哈希值作为所述表结构特征值。5.根据权利要求2所述的数据库关系表的信息统计方法,其中,所述获取所述关系表的名称信息的步骤包括:获取所述关系表所属数据库的库名、所述关系表所属模式的模式名、所述关系表的表名;并且所述根据所述名称信息计算得到表名特征值的步骤包括:使用预设的通配...

【专利技术属性】
技术研发人员:王胜利
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1