一种基于SQLite快速加载技术的面向对象用电信息采集终端制造技术

技术编号:15690717 阅读:85 留言:0更新日期:2017-06-24 03:20
一种基于SQLite快速加载技术的面向对象用电信息采集终端,包括用电信息数据接口、指令接口、用电信息存储模块、可动态分配内存模块、加速链存储模块,以及相应的内存加载控制模块。本发明专利技术通过增设加速链存储模块,并配合相应的内存加载控制方法,在每次出现新的加载顺序组合时,更新所述加速链存储模块中所存储的相应加速链;在加载过程中,通过查询所述加速链存储模块内相应的加速链,来决定加载顺序。由于主站在请求数据时,根据其工作需要,数据的加载顺序存在一定规律。本发明专利技术可通过对加速链存储模块进行更新,在主站请求数据的过程中逐渐固化这一顺序规律。进而提高内存所加载的数据的命中率,提高所述用电信息采集终端的数据传输效率。

An object oriented power information collection terminal based on SQLite rapid loading technology

An object oriented SQLite fast loading technology based on power information acquisition terminal, including electricity information data interface, command interface, power module, information storage module, dynamic memory allocation accelerating chain storage module, and the corresponding memory load control module. By adding the accelerating chain storage module, and the memory load control method, a new combined loading sequence appeared when updating the corresponding acceleration acceleration of chain store in the chain storage module; in the loading process, through the inquiry of the accelerating chain accelerating chain in the storage module and the corresponding, to decide loading sequence. As the master station requests data, according to its work needs, the loading order of data has a certain regularity. The invention can update the order rule of the master station in the process of requesting data by updating the acceleration chain storage module. Thereby, the hit rate of the data loaded by the memory is increased, and the data transmission efficiency of the electric information collecting terminal is improved.

【技术实现步骤摘要】
一种基于SQLite快速加载技术的面向对象用电信息采集终端
本专利技术涉及用电信息采集技术,尤其涉及一种能够实现快速加载的用电信息采集终端。
技术介绍
SQLite数据库至一种基于关系类型设计的文件数据库。其设计目的主要针对嵌入式开发,提供一种运行空间小、占用资源低且安装配置简单的数据调用存储方式。与现有用电信息采集系统中的数据库不同,SQLite数据库与个人用户开发的应用程序并不工作于同一种客户端与服务器的交互模式。SQLite数据库通过操作引擎,以动态数据库的形式将数据连接到个人应用程序中。因此,数据库文件与用户应用程序之间的数据通信是在编程语言内直接调用API实现的。然而,这种工作方式,在数据库文件较大、数据量存储较多的情况下,数据加载需要消耗大量时间。尤其,由于用电信息采集网络中每个节点都需要采集大量数据,这种数据库读取方式显然并不适用。为克服上述缺陷,现有的技术要么通过硬件方式,即选择大容量内存,把所有用到的数据都提前加载到内存中,来加快终端运行速度。这样做效率最高,但同时带来高成本。要么通过静态加载,只加载静态的数据到内存。静态加载中,只能加载默认设置的数据,没有设置的数据将永远不会加载。这样的加载效果过于死板,尤其实际用电信息采集现场情况千差万别,不同时期数据需求不尽相同。静态加载技术明显不能满足各种现场的运行环境。针对以上两方案中硬件成本与加载效率的矛盾,如何在不增加硬件成本的情况下,实现动态的预测(预加载)将要加载的数据显得尤为重要。尤其,考虑到用电信息采集现场数据需求不断变化,如何实现随着使用状况的改变,及时改变加载策略,提高增加预测的准确率,就显得尤为重要。
技术实现思路
为了解决现有技术存在的不足,本专利技术的目的在于提供一种基于SQLite数据库快速加载技术的用电信息采集终端及其对应的用电信息快速加载方法。首先,为实现上述目的,提出一种基于SQLite数据库的用电信息快速加载方法,包括以下步骤:第一步,初始化:按照默认加速链的顺序,依次将相应数据加载至可动态分配内存模块;然后跳转至第二步;其中,所述默认的加速链基于本终端的使用场景而预设,如果是新的使用场景,则默认加速链为供电科院台体使用加速链。第二步,响应数据加载请求:当接收到数据加载请求后,首先,判断所请求的数据是否已加载至可动态分配内存模块:若已加载,则从所述可动态分配内存模块输出所请求的数据;否则,查询用电信息存储模块,输出所请求的数据;然后,记录所述第二步中输出的数据以及上一次输出的数据,形成加速链节点指针;其中,所述加速链节点指针的起点为所述上一次输出的数据,指向所述第二步中输出的数据。第三步,更新加速链:查询加速链存储模块,判断是否存在与所述第二步中相同的加速链节点指针,若存在,则将所述加速链节点指针所对应的加载次数加1;否则,存储所述第二步中的加速链节点指针,并将所述加速链节点指针所对应是加载次数设为1;然后跳转至第四步。第四步,加载新数据:查询所述加速链存储模块,查找以所述第二步中输出的数据为起点,加载次数最多的加速链节点指针,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块;当接收到新的数据加载请求时,跳转至第二步;否则,结束。进一步,所述方法第二步中,输出所请求的数据之后,还包括判断并响应重复加载请求的步骤:若下一加载请求与本次加载请求相同,则保留将本次输出的数据保存至所述可动态分配内存模块中;否则,删除所述可动态分配内存模块中本次输出的数据。本领域技术人员应当理解,如果由于可动态分配内存空间不够,无法存储所述数据,可动态分配内存内本身不存在相应数据,也就不存在删除相应数据的问题。进一步,所述方法的第三步中,还包括控制加速链节点分支数的步骤:步骤301,在存储所述第二步中的加速链节点指针之前,先查询与所述第二步中的加速链节点指针具有相同起点的加速链节点指针的数量,若所述加速链中具有相同起点的加速链节点指针的数量超过加速链节点分支数N,则跳转至步骤302;否则直接存储所述第二步中的加速链节点指针;步骤302,删除与所述第二步中的加速链节点指针具有相同起点的、更新时间最远的加速链节点指针,然后存储所述第二步中的加速链节点指针;其中,加速链节点分支数N为正整数,N的具体数值根据预置于系统中加速链存储模块的空间确定。进一步,所述方法的第四步中,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块之前,还包括如下步骤:步骤401,判断所述加速链节点指针所指向的数据是否能够加载至所述可动态分配内存模块,若能,则加载所述加速链节点指针所指向的数据,否则跳转至步骤202;其中,判断数据是否能够加载至所述可动态分配内存模块的主要依据为所述可动态分配内存模块内的存储空间是否足够存储所述数据。步骤402,查找以所述无法加载的数据为起点、加载次数最多的加速链节点指针,然后跳转至步骤401。本步骤中,如果遍历所述加速链中的全部节点指针,但始终无法加载相应数据,则放弃本次加载。进一步的,所述方法的第四步中,若加载次数最多的加速链节点指针不止一个,则将其中更新时间最近的加速链节点指针所指向的数据加载至所述可动态分配内存模块。其次,为实现上述目的,还提出一种基于SQLite数据库快速加载技术的用电信息采集终端,包括:用电信息数据接口、用电信息存储模块、可动态分配内存模块、控制模块,其特征在于,还包括加速链存储模块;所述用电信息数据接口与所述用电信息存储模块的输入端连接,所述用电信息存储模块的输出端连接所述可动态分配内存模块的输入端,所述控制模块双向连接所述可动态分配内存模块、所述用电信息存储模块以及所述加速链存储模块;所述用电信息数据接口用于接所述用电信息采集终端所获得的用电信息;所述用电信息存储模块用于存储所述用电信息数据接口获得的用电信息;所述可动态分配内存模块用于根据所述控制模块的指令加载或输出相应的用电信息;所述控制模块用于读取所述用电信息存储模块或所述可动态分配内存模块的信息,根据相邻两次读取的数据判断是否需要更新所述加速链存储模块中存储的加速链,根据所述加速链存储模块中的加速链信息确定所述可动态分配内存模块下一次加载的数据;所述加速链存储模块用于存储所述控制模块在读取数据的过程中发现的加速链信息。所述电信息采集终端(系统)在可动态分配内存模块没有预先加载相应用电信息数据时,会从电信息存储模块加载相应数据至系统内存,然后进行相应处理。但是由于数据加载过程需要消耗大量时间,因此,这种直接加载的方式不利于提高系统的运行效率。本专利技术主要是通过所述可动态分配内存模块,按照所述加速链存储模块中归纳的加载顺序,将相应数据预先加载入内存,在系统需要相应数据时可以直接读取内存,以此缩短数据加载的时间,提高系统的运行效率。进一步的,上述电信息采集终端中,所述加速链存储模块中存储的加速链信息包括:所述加速链中每一个加速链节点指针的起点信息、每一个加速链节点指针的指向信息、每一个加速链节点指针的加载次数以及每一个加速链节点指针的更新时间。所述各加速链节点指针按照所述起点信息分类存储。进一步的,上述电信息采集终端中,所述控制模块包括两个比较器:第一比较器用于在确定所述可动态分配内存模块下一次加载的数据时,比较起点信息相同的各加速本文档来自技高网
...
一种基于SQLite快速加载技术的面向对象用电信息采集终端

【技术保护点】
一种基于SQLite数据库的用电信息快速加载方法,其特征在于,步骤包括:第一步,初始化:按照默认加速链的顺序,依次将相应数据加载至可动态分配内存模块;然后跳转至第二步;第二步,响应数据加载请求:当接收到数据加载请求后,首先,判断所请求的数据是否已加载至可动态分配内存模块:若已加载,则从所述可动态分配内存模块输出所请求的数据;否则,查询用电信息存储模块,输出所请求的数据;然后,记录所述第二步中输出的数据以及上一次输出的数据,形成加速链节点指针;其中,所述加速链节点指针的起点为所述上一次输出的数据,指向所述第二步中输出的数据;第三步,更新加速链:查询加速链存储模块,判断是否存在与所述第二步中相同的加速链节点指针,若存在,则将所述加速链节点指针所对应的加载次数加1;否则,存储所述第二步中的加速链节点指针,并将所述加速链节点指针所对应是加载次数设为1;然后跳转至第四步;第四步,加载新数据:查询所述加速链存储模块,查找以所述第二步中输出的数据为起点,加载次数最多的加速链节点指针,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块;当接收到新的数据加载请求时,跳转至第二步;否则,结束。

【技术特征摘要】
1.一种基于SQLite数据库的用电信息快速加载方法,其特征在于,步骤包括:第一步,初始化:按照默认加速链的顺序,依次将相应数据加载至可动态分配内存模块;然后跳转至第二步;第二步,响应数据加载请求:当接收到数据加载请求后,首先,判断所请求的数据是否已加载至可动态分配内存模块:若已加载,则从所述可动态分配内存模块输出所请求的数据;否则,查询用电信息存储模块,输出所请求的数据;然后,记录所述第二步中输出的数据以及上一次输出的数据,形成加速链节点指针;其中,所述加速链节点指针的起点为所述上一次输出的数据,指向所述第二步中输出的数据;第三步,更新加速链:查询加速链存储模块,判断是否存在与所述第二步中相同的加速链节点指针,若存在,则将所述加速链节点指针所对应的加载次数加1;否则,存储所述第二步中的加速链节点指针,并将所述加速链节点指针所对应是加载次数设为1;然后跳转至第四步;第四步,加载新数据:查询所述加速链存储模块,查找以所述第二步中输出的数据为起点,加载次数最多的加速链节点指针,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块;当接收到新的数据加载请求时,跳转至第二步;否则,结束。2.如权利要求1所述的基于SQLite数据库的用电信息快速加载方法,其特征在于,所述第二步中,输出所请求的数据之后,还包括判断并响应重复加载请求的步骤:若下一加载请求与本次加载请求相同,则保留将本次输出的数据保存至所述可动态分配内存模块中;否则,删除所述可动态分配内存模块中本次输出的数据。3.如权利要求2所述的基于SQLite数据库的用电信息快速加载方法,其特征在于,所述第三步中,还包括控制加速链节点分支数的步骤:步骤301,在存储所述第二步中的加速链节点指针之前,先查询与所述第二步中的加速链节点指针具有相同起点的加速链节点指针的数量,若所述加速链中具有相同起点的加速链节点指针的数量超过加速链节点分支数N,则跳转至步骤302;否则直接存储所述第二步中的加速链节点指针;步骤302,删除与所述第二步中的加速链节点指针具有相同起点的、更新时间最远的加速链节点指针,然后存储所述第二步中的加速链节点指针;其中,加速链节点分支数N为正整数。4.如权利要求1至3任一所述的基于SQLite数据库的用电信息快速加载方法,其特征在于,所述第四步中,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块之前,还包括如下步骤:步骤401,判断所述加速链节点指针所指向的数据是否能够加载至所述可动态分配内存模块,若能,则加载所述加速链节点指针所指向的数据,否则跳转至步骤202;步骤402,查找以所述...

【专利技术属性】
技术研发人员:张翔侯海涛孙启龙
申请(专利权)人:光一科技股份有限公司
类型:发明
国别省市:江苏,32

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

1