logo好方法网

一种基于树状结构资源分布的实时状态数快速统计方法


技术摘要:
本发明涉及业务系统领域,具体公开了一种基于树状结构资源分布的实时状态数快速统计方法,包括,本发明在业务系统或视频监控系统中构造一个n叉树结构的组织树或区域树,用于资源数据的存储和展示分布;把各类资源数据挂在这个n叉树的各个结点上,作为树的叶子结点;在初  全部
背景技术:
传统的业务系统特别是安防业务应用系统,对各类业务资源通常是呈树状结构分 布和渲染展示的。当需要对各类资源的各类状态进行实时统计的时候,往往采用把所有资 源的分布和所有状态保存在关系型数据库中,比如mysql,oracle,sqlserver等,然后通过 sql语句检索统计的方式来得到每个组织或区域的资源状态统计结果;还有一种惯用方法 是直接基于树状渲染和展示的资源进行遍历统计,是一种对树的所有结点进行按周期或按 需实时遍历和统计的方式,每一次遍历和统计都会对子结点进行多次访问。以上两种常规 统计方法在树状分布层次深和资源数多的时候,比如树的深度5、6层以上,且资源数有几 万-几十万以上,这时这种方法的统计性能就非常低下,实时性也很差。
技术实现要素:
本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于树状结构资 源分布的实时状态数快速统计方法。 为了实现上述目的,本发明采用了如下技术方案: 一种基于树状结构资源分布的实时状态数快速统计方法,包括以下步骤: 步骤S1、构造一个存储资源数据和展示资源分布的n叉树结构的组织树或区域树, 其中各类业务资源作为树的叶子结点; 步骤S2、自下而上,按层统计树中每个非叶子结点下的所有叶子结点资源的状态; 步骤S3、向根结点寻找最短路径,对该路径下的非叶子结点触发一次资源状态统 计。 优选的,所述n叉树包括表示组织或区域的结点,作为树的非叶子结点。 优选的,所述n叉树包括表示业务资源的结点,作为树的叶子结点。 优选的,所述n叉树中,每个非叶子结点保存了该组织或区域的关键属性,以及该 结点的所有叶子结点资源状态统计数据集。 优选的,所述n叉树中,每个树结点可以准确访问父结点,也可以准确访问所有子 结点。 优选的,所述步骤S2包括以下步骤: 步骤S21、初始化业务资源数据并构造n叉树时,按组织或区域结点对资源状态进 行首次统计,并作为各自非叶子结点的资源状态统计数据集的初始值; 步骤S22、对树结点的资源状态统计集数据进行初始化或校验时,触发的按层统 计; 步骤S23、每一层的每个结点的资源状态统计数据集的计算,都要依赖于该结点的 3 CN 111597185 A 说 明 书 2/4 页 所有子结点的资源状态统计数据集以及该结点下的叶子结点资源状态集; 步骤S24、每个叶子结点的资源状态只会遍历和统计一次。 优选的,所述步骤S3中,所述向根结点寻找最短路径并进行结点资源的状态统计 的情况,出现在当某个叶子结点资源的状态发生变化时,以该结点的父结点为起点,向上到 根结点寻找到最短路径,对该最短路径下的所有结点触发一次资源状态统计集的重新计 算。 优选的,所述对最短路径中的结点统计,采用自下而上的方式,子结点先进行统 计,使得父结点的资源状态统计数据集需要依赖于子结点的资源状态统计数据集来计算得 到。 优选的,所述资源状态统计数据集按资源类型分类,按资源状态分类,对同类型的 相同状态进行求和而得到的一个数据集合。 本发明的有益效果是: 本发明所提供的方案中采用按层统计以及按最短路径进行统计的方法:对初始状 态的统计按层方式,每个结点至多访问一次;对资源状态的变化采用最短路径的方式,对关 联结点才触发统计和更新,达到精确和快速统计的目的,有效解决了业务系统中对树状分 布资源的状态统计性能低下和实时性不高的问题。 附图说明 图1为本发明提出的一种基于树状结构资源分布的实时状态数快速统计方法的逻 辑示意图。
分享到:
收藏