一种终端数据库的并行执行方法和装置制造方法及图纸

技术编号:15956195 阅读:23 留言:0更新日期:2017-08-08 09:55
本发明专利技术公开了一种终端数据库的并行执行方法和装置,以解决终端CPU存在大核、小核差异情况下,无法利用多核实现终端数据库的并行执行问题。该方法为,终端基于预设的并行度确定各个线程CPU,所述并行度为为并行执行的线程数;终端获取每个线程CPU的主频,计算各个线程CPU的主频比例;终端基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,确定各个线程CPU对应的数据分区;终端通过各个线程CPU并行查询对应的数据分区中的数据,这样能够同时利用各线程CPU对对应数据分区执行查询指令的并行化处理,极大提升终端对数据库的并行查询执行效率。

【技术实现步骤摘要】
一种终端数据库的并行执行方法和装置
本专利技术涉及智能终端领域,尤其涉及一种终端数据库的并行执行方法和装置。
技术介绍
随着智能终端功能越来越强大,存储空间越来越大,其内部存储的数据量越来越多,用户查询的数据量也在不断增大,这导致终端内部的应用响应时间也越来越长。另一方面,智能终端的中央处理器(CentralProcessingUnit,CPU)核数不断增大,处理能力越来越强。利用多核优势加速数据查询是智能终端数据库的一个优化方向。目前智能终端中的数据库基本都是采用轻量的开源数据库(例如SQLite)。传统智能终端数据库支持多个连接并发访问数据库,但是不支持单一结构化查询语言(StructuredQueryLanguage,SQL)语句的并发执行。因此如果某一个SQL语句很复杂,需要消耗大量CPU,这种情况下终端数据库无法利用到多核优势。同时,当前很多终端的CPU都是基于ARM处理器的大小核(big.LITTLE)架构,这种CPU有大核和小核之分。同时,终端也会根据特定策略调整CPU的主频,这导致每个CPU在执行相同任务时的执行时间会有很大差异。对于同样的任务量,CPU小核执行时间往往是大核执行时间的一倍半到两倍。同时,如果对CPU进行限制频率的话,同样任务量的执行时间也会大大增加。另外,智能终端数据库通常不会特别大,同时对数据库查询和更新的时间要求也比较严格。即查询和更新时间往往在1秒以下,和界面显示相关的查询往往需要在200毫秒以下,以保证一些界面操作肉眼无感知。因此,智能终端数据库需要有比较快速的SQL语句解析和执行时间。在传统的服务端数据库中(例如Oracle、SQLServer),都支持SQL语句并行执行。基本思想是用户在SQL语句中设置并行度或数据库自身根据CPU核数自动设置并行度。然后数据库执行引擎分析数据表中的数据分布情况,然后将数据表拆分成独立分区并行执行。传统服务端数据库的数据分析和数据表拆分往往很复杂,需要收集很多统计信息。所以这种并行执行前的准备工作往往相对比较耗时,而并行执行往往也针对很大的数据规模和执行时间很长的SQL语句才适用。而对耗时仅仅几秒钟的SQL语句则不适用。而终端数据库通常的SQL语句执行时间只有几毫秒或几十毫秒,超过200毫秒则容易被人眼感知到影响用户体验。因此终端数据库无法利用很多统计信息来进行数据表拆分。同时,由于智能终端的CPU有大核和小核之分,如果将执行任务平均分配给各CPU核,则会出现大核执行结束后不得不等待小核执行完成的情况,导致执行效率降低。综上所述,当终端CPU存在大核、小核差异情况下,如何利用多核优势提高终端数据库的并行执行效率成为亟待解决的问题。
技术实现思路
本专利技术实施例提供一种终端数据库的并行执行方法和装置,以解决终端CPU存在大核、小核差异情况下,无法利用多核实现终端数据库的并行执行问题。本专利技术实施例提供的具体技术方案如下:第一方面,本专利技术实施例提供一种终端数据库的并行执行方法,包括:终端基于预设的并行度确定各个线程CPU,所述并行度为并行执行的线程数;终端获取每个线程CPU的主频,计算各个线程CPU的主频比例;终端基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,确定各个线程CPU对应的数据分区;终端通过各个线程CPU并行查询对应的数据分区中的数据。在一个可能的设计中,终端基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,可以通过如下方式实现:终端读取所述数据表中与索引根页相连的第一层子页的个数;按照所述各个线程CPU的主频比例将第一层子页划分为N个数据分区,N为预设的并行度。在一个可能的设计中,上述提到终端读取所述数据表中与索引根页相连的第一层子页的个数,按照所述各个线程CPU的主频比例将第一层子页划分为N个数据分区,此时,所述N个数据分区中的第一层子页数目比例与所述各个线程CPU的主频比例相等或近似相等。例如,终端在第一层子页数目较多时,按照各个线程CPU的主频比例将第一层子页划分为N个数据分区,能够快速实现终端数据库的动态分区,进一步提高了终端对各个数据分区中的数据查询效率在一个可能的设计中,终端基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,可以通过如下方式实现:终端读取所述数据表中与索引根页相连的第一层子页中每个子页记录的数据个数;基于每个子页记录的个数,按照所述各个线程CPU的主频比例将第一层子页中记录的数据划分为N个数据分区,N为预设的并行度。在一个可能的设计中,上述提到终端读取第一层子页中每个子页记录的数据个数;基于每个子页记录的个数,按照所述各个线程CPU的主频比例将第一层子页中记录的数据划分为N个数据分区,此时,所述N个数据分区中的第一层子页记录的数据个数比例与所述各个线程CPU的主频比例相等或近似相等。例如,终端在第一层子页数目较少时,继续读取数据表中第一层子页中每个子页记录的数据个数,按照各个线程CPU的主频比例将第一层子页中记录的数据划分为N个数据分区,这样使得各个数据分区中记录的数据个数比例与各个CPU主频比例更加接近,而且能够兼顾数据分区的划分效率,贴合实际。在一个可能的设计中,上述提到的所述数据表为B-tree格式的数据表或为heap格式的数据表。这样,能够基于终端各线程CPU的主频因素对终端数据库中待查询的数据表进行动态分区,能够使得主频较大的线程CPU查询较多的数据量,主频较小的线程CPU查询较少的数据量,同时利用各线程CPU对对应数据分区执行查询指令的并行化处理,能够极大提升终端对数据库的并行查询执行效率。第二方面,本专利技术实施例提供一种终端数据库的并行执行装置,包括:确定单元,用于基于预设的并行度确定各个线程CPU,所述并行度为并行执行的线程数;计算单元,用于获取每个线程CPU的主频,计算各个线程CPU的主频比例;划分单元,用于基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,确定各个线程CPU对应的数据分区;查询单元,用于通过各个线程CPU并行查询对应的数据分区中的数据。在一个可能的设计中,所述划分单元基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区时,具体用于:读取所述数据表中与索引根页相连的第一层子页的个数;按照所述各个线程CPU的主频比例将第一层子页划分为N个数据分区,N为预设的并行度。在一个可能的设计中,上述提到的所述划分单元读取所述数据表中与索引根页相连的第一层子页的个数,按照所述各个线程CPU的主频比例将第一层子页划分为N个数据分区,此时,所述N个数据分区中的第一层子页数目比例与所述各个线程CPU的主频比例相等或近似相等。所述划分单元在第一层子页数目较多时,按照各个线程CPU的主频比例将第一层子页划分为N个数据分区,能够快速实现终端数据库的动态分区,进一步提高了终端对各个数据分区中的数据查询效率。在一个可能的设计中,所述划分单元基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区时,具体用于:读取所述数据表中与索引根页相连的第一层子页中每个子页记录的数据个数;基于每个子页记录的个数,按照所述各个线程CPU的主本文档来自技高网
...

【技术保护点】
一种终端数据库的并行执行方法,其特征在于,包括:终端基于预设的并行度确定各个线程中央处理器CPU,所述并行度为并行执行的线程数;终端获取每个线程CPU的主频,计算各个线程CPU的主频比例;终端基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,确定各个线程CPU对应的数据分区;终端通过各个线程CPU并行查询对应的数据分区中的数据。

【技术特征摘要】
1.一种终端数据库的并行执行方法,其特征在于,包括:终端基于预设的并行度确定各个线程中央处理器CPU,所述并行度为并行执行的线程数;终端获取每个线程CPU的主频,计算各个线程CPU的主频比例;终端基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,确定各个线程CPU对应的数据分区;终端通过各个线程CPU并行查询对应的数据分区中的数据。2.如权利要求1所述的方法,其特征在于,终端基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,包括:终端读取所述数据表中与索引根页相连的第一层子页的个数;按照所述各个线程CPU的主频比例将第一层子页划分为N个数据分区,N为预设的并行度。3.如权利要求2所述的方法,其特征在于,所述N个数据分区中的第一层子页数目比例与所述各个线程CPU的主频比例相等或近似相等。4.如权利要求1所述的方法,其特征在于,终端基于所述各个线程CPU的主频比例对终端数据库中的待查询的数据表划分数据分区,包括:终端读取所述数据表中与索引根页相连的第一层子页中每个子页记录的数据个数;基于每个子页记录的个数,按照所述各个线程CPU的主频比例将第一层子页中记录的数据划分为N个数据分区,N为预设的并行度。5.如权利要求4所述的方法,其特征在于,所述N个数据分区中的第一层子页记录的数据个数比例与所述各个线程CPU的主频比例相等或近似相等。6.如权利要求1所述的方法,其特征在于,所述数据表为B-tree格式的数据表或为heap格式的数据表。7.一种终端数据库的并行执行装置,其特...

【专利技术属性】
技术研发人员:佟强刘宗超尚博
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1