CN107704507B - 数据库处理方法和设备 - Google Patents

数据库处理方法和设备 Download PDF

Info

Publication number
CN107704507B
CN107704507B CN201710769293.3A CN201710769293A CN107704507B CN 107704507 B CN107704507 B CN 107704507B CN 201710769293 A CN201710769293 A CN 201710769293A CN 107704507 B CN107704507 B CN 107704507B
Authority
CN
China
Prior art keywords
database
sorted
statistical information
terminal
processing method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710769293.3A
Other languages
English (en)
Other versions
CN107704507A (zh
Inventor
谭姝
向小岩
张海蒂
刘飞
刘庭芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics China R&D Center
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics China R&D Center
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics China R&D Center, Samsung Electronics Co Ltd filed Critical Samsung Electronics China R&D Center
Priority to CN201710769293.3A priority Critical patent/CN107704507B/zh
Publication of CN107704507A publication Critical patent/CN107704507A/zh
Application granted granted Critical
Publication of CN107704507B publication Critical patent/CN107704507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供一种数据库处理方法和设备,所述数据库处理方法包括:获取关于终端中待整理数据库的统计信息,并提供获取的统计信息;确定终端的运行状态;基于确定的终端的运行状态和提供的统计信息确定所述待整理数据库的数据处理方式;以确定的数据处理方式对所述待整理数据库进行碎片整理。采用本发明示例性实施例的所述数据库处理方法和设备,可自动收集待整理数据库的统计信息,并基于终端的运行状态利用不同的数据处理方式对待整理数据库进行碎片整理,提高了后续待整理数据库的操作效率。

Description

数据库处理方法和设备
技术领域
本发明涉及数据处理领域,更具体地讲,涉及一种数据库处理方法和设备。
背景技术
数据库文件结构理想的状态是表和索引的各逻辑相邻页在文件中尽可能连续存放,页内空间充分利用且记录紧凑,但是在对数据库执行随机插入、删除以及更新等操作的过程中,很多表和索引的逻辑相邻页和记录在数据库文件中保存时无法保证连续存放,碎片因此产生。数据库碎片会影响数据库查询、插入、删除以及更新操作的性能。
现有的针对数据库的碎片整理方式可以有两种:
第一种碎片整理方式需要通过数据库以外的上层应用或者中间件程序查询数据库某个索引的碎片率,进而决定对数据库的某个索引发起碎片整理请求;这种方式或者需要数据库服务器端已经具有统计、更新索引碎片率等信息的功能。
第二种碎片整理方式会逐条搬移当前数据库文件中的所有表以及索引的数据到新的数据库文件中,在此过程中进行数据重新排列和紧致,使用这种碎片整理方式,当数据库内数据量较大时,上述碎片整理过程耗时会比较久,并且在执行碎片整理过程中,可能较长时间阻塞其他并发的数据库读/写请求。
发明内容
本发明的示例性实施例的目的在于为用户提供一种数据库处理方法和设备,以解决现有技术中碎片整理效率低、且在碎片整理过程中阻碍对数据库执行其他操作的技术问题。
根据本发明示例性实施例的一方面,提供一种数据库处理方法,所述数据库处理方法包括:获取关于终端中待整理数据库的统计信息,并提供获取的统计信息;确定终端的运行状态;基于确定的终端的运行状态和提供的统计信息确定所述待整理数据库的数据处理方式;以确定的数据处理方式对所述待整理数据库进行碎片整理。
可选地,所述统计信息可包括所述待整理数据库中的表/索引的碎片率和/或使用频率。
可选地,提供获取的统计信息的步骤可包括:确定获取的统计信息是否满足预设条件;如果确定获取的统计信息满足所述预设条件,则提供获取的统计信息。
可选地,所述预设条件可包括:所述待整理数据库中的表/索引的碎片率不小于第一预设值和/或表/索引的使用频率不小于第二预设值。
可选地,获取关于待整理数据库的统计信息的步骤可包括:检测所述待整理数据库是否存在预定标识符;如果检测到所述待整理数据库存在所述预定标识符,则获取所述待整理数据库的统计信息。
可选地,所述碎片率可根据所述待整理数据库中的表/索引的逻辑相邻页在文件内位置的不连续程度和/或表/索引的组成页的页内有效空间利用率来确定。
可选地,所述数据库处理方法可还包括:监测对所述待整理数据库所执行的操作;统计所述操作涉及的所述待整理数据库中的表/索引的碎片率和/或所述表/所述索引的使用频率;使用统计的碎片率和/或使用频率更新所述统计信息中对应的碎片率和使用频率。
可选地,提供获取的统计信息的步骤可包括:监测对所述待整理数据库所执行的操作是否完成;如果监测到对待整理数据库所执行的操作已完成,则确定在上一次提供统计信息之后是否过去预定时间;如果确定在上一次提供统计信息之后过去预定时间,则提供获取的统计信息。
可选地,提供获取的统计信息的步骤可包括:当监测到用于关闭所述待整理数据库句柄的请求时,响应于所述请求提供接收到所述请求之前最新获取的统计信息。
可选地,终端的运行状态可包括CPU的使用率、终端的剩余电量和/或当前时间。
可选地,基于确定的终端的运行状态和获取的统计信息确定所述待整理数据库的数据处理方式的步骤可包括:当CPU的使用率小于第三预设值时,如果终端的剩余电量不小于第四预设值且当前时间处于预设时间段,则确定对所述待整理数据库进行整体碎片整理,如果终端的剩余电量小于第四预设值和/或当前时间不处于预设时间段,则确定对所述统计信息所对应的所述待整理数据库中的表和/或索引进行碎片整理。
可选地,所述数据库处理方法可还包括:在对所述待整理数据库完成碎片整理之后,删除关于所述待整理数据库的统计信息。
可选地,所述待整理数据库可为嵌入式数据库。
根据本发明示例性实施例的另一方面,提供一种数据库处理设备,所述数据库处理设备包括:数据采集器,获取关于终端中待整理数据库的统计信息;数据处理器,确定终端的运行状态,基于从数据采集器接收的统计信息和终端的运行状态确定所述待整理数据库的数据处理方式,并以确定的数据处理方式对所述待整理数据库进行碎片整理。
可选地,所述统计信息可包括所述待整理数据库中的表/索引的碎片率和/或使用频率。
可选地,数据采集器可确定获取的统计信息是否满足预设条件,如果确定获取的统计信息满足所述预设条件,则将获取的统计信息发送到数据处理器。
可选地,所述预设条件可包括:所述待整理数据库中的表/索引的碎片率不小于第一预设值和/或表/索引的使用频率不小于第二预设值。
可选地,数据采集器可检测所述待整理数据库是否存在预定标识符,如果检测到所述待整理数据库存在所述预定标识符,则获取待整理数据库的统计信息。
可选地,数据采集器可监测对所述待整理数据库所执行的操作,统计所述操作所涉及的所述待整理数据库中的表/索引的碎片率和/或所述表/所述索引的使用频率,使用统计的碎片率和/或使用频率更新所述统计信息中对应的碎片率和使用频率。
可选地,数据采集器可根据所述待整理数据库中的表/索引的逻辑相邻页在文件内位置的不连续程度和/或表/索引的组成页的页内有效空间利用率确定所述碎片率。
可选地,数据采集器监测对所述待整理数据库所执行的操作是否完成,如果监测到对待整理数据库所执行的操作已完成,则确定在上一次提供统计信息之后是否过去预定时间,如果确定在上一次提供统计信息之后过去预定时间,则数据采集器将获取的统计信息发送到数据处理器。
可选地,当数据采集器监测到用于关闭所述待整理数据库句柄的请求时,数据采集器可响应于所述请求将接收到所述请求之前最新获取的统计信息发送到数据处理器。
可选地,终端的运行状态可包括CPU的使用率、终端的剩余电量和/或当前时间。
可选地,当数据处理器确定CPU的使用率小于第三预设值时,如果终端的剩余电量不小于第四预设值且当前时间处于预设时间段,则数据处理器可确定对所述待整理数据库进行整体碎片整理,如果终端的剩余电量小于第四预设值和/或当前时间不处于预设时间段,则数据处理器可确定对所述统计信息所对应的待整理数据库中的表/索引进行碎片整理。
可选地,在对所述待整理数据库完成碎片整理之后,数据处理器可删除关于所述待整理数据库的统计信息。
可选地,所述待整理数据库可为嵌入式数据库。
根据本发明示例性实施例的再一方面,提供一种计算机可读存储介质,存储有当被处理器执行时使得处理器执行上述的数据库处理方法的程序指令。
根据本发明示例性实施例的再一方面,提供一种计算装置,包括:处理器;存储器,用于存储当被处理器执行时使得处理器执行上述的数据库处理方法的程序指令。
采用本发明示例性实施例的所述数据库处理方法和设备,可自动收集待整理数据库的统计信息,并基于终端的运行状态利用不同的数据处理方式对待整理数据库进行碎片整理,提高了后续待整理数据库的操作效率。
附图说明
通过下面结合示例性地示出实施例的附图进行的详细描述,本发明示例性实施例的上述和其它目的、特点和优点将会变得更加清楚,其中:
图1示出根据本发明示例性实施例的数据库处理方法的流程图;
图2示出根据本发明示例性实施例的更新统计信息的步骤的流程图;
图3示出根据本发明示例性实施例的提供统计信息的步骤的流程图;
图4示出根据本发明示例性实施例的数据库处理设备的结构图。
具体实施方式
现在,将参照附图更充分地描述不同的示例实施例,其中,一些示例性实施例在附图中示出。
图1示出根据本发明示例性实施例的数据库处理方法的流程图。
参照图1,在步骤S10中,获取关于终端中待整理数据库的统计信息,并提供获取的统计信息。作为示例,所述待整理数据库可为嵌入式数据库,例如,SQLite数据库。
优选地,获取关于待整理数据库的统计信息的步骤可包括:检测所述待整理数据库是否存在预定标识符,例如,预定标识符可被存储在待整理数据库句柄中,因此可检测待整理数据句柄中是否存在预定标识符。
如果检测到所述待整理数据库存在所述预定标识符,则获取所述待整理数据库的统计信息;如果检测到所述待整理数据库不存在所述预定标识符,则不获取所述待整理数据库的统计信息。
作为示例,所述预定标识符可指示已对待整理数据库进行注册,针对已注册的待整理数据库执行本发明示例性实施例所述的数据处理方法。这里,待整理数据库已被注册表明已对该待整理数据库开启所述数据库处理方法对应的碎片整理功能。
优选地,作为示例,关于终端中待整理数据库的统计信息可包括待整理数据库中的表/索引(这里指表和/或索引)的碎片率和/或表/索引的使用频率。这里,碎片率可根据待整理数据库中的表/索引的逻辑相邻页在待整理数据库内位置的不连续程度和/或表/索引的组成页的页内的有效空间利用率来确定,使用频率可通过统计对待整理数据库所执行的操作涉及的表/索引的次数来确定。
这里,可将关于终端中待整理数据库的统计信息保存在待整理数据库句柄的内存结构中,下面参照图2来详细介绍更新在待整理数据库的内存结构中存储的统计信息的过程。
图2示出根据本发明示例性实施例的更新统计信息的步骤的流程图。
参照图2,在步骤S201中,监测对待整理数据库所执行的操作。例如,该操作可包括查询、插入、删除、更新数据库的操作。
在步骤S202中,统计监测到的操作涉及的待整理数据库中的表/索引的碎片率和/或所述表/所述索引的使用频率。
在步骤S203中,使用统计的碎片率和/或使用频率更新统计信息中对应的碎片率和使用频率。例如,使用统计的碎片率和/或使用频率更新待整理数据库的内存结构中存储的统计信息中对应的碎片率和使用频率。
应理解,在本发明示例性实施例中,对待整理数据库的碎片整理过程是由后台监控服务进行的,这里,在获取关于终端中待整理数据库的统计信息之后,需将获取的统计信息提供给对待整理数据库进行碎片整理的后台监控服务。
一种情况,可将满足预设条件的统计信息提供给后台监控服务。
具体说来,确定获取的统计信息是否满足预设条件。所述预设条件可包括:待整理数据库中的表/索引的碎片率不小于第一预设值和/或表/索引的使用频率不小于第二预设值。如果确定获取的统计信息满足所述预设条件,则提供获取的统计信息,如果确定获取的统计信息不满足所述预设条件,则不提供获取的统计信息。
另一种情况,可将符合提供统计信息的时间间隔要求且满足预设条件的统计信息提供给后台监控服务。
图3示出根据本发明示例性实施例的提供统计信息的步骤的流程图。
参照图3,在步骤S301中,监测对待整理数据库所执行的操作是否完成。
如果监测到对待整理数据库所执行的操作没有完成,则返回执行步骤S301继续对该操作进行检测。
如果监测到对待整理数据库所执行的操作已完成,则执行步骤S302:确定在上一次提供统计信息之后是否过去预定时间。这里,上一次提供统计信息的时刻可指操作完成之前最近一次提供统计信息的时刻。例如,也可确定操作完成的时刻与上一次提供统计信息的时刻之间的时间差是否大于预定时间。
如果确定在上一次提供统计信息之后没有过去预定时间,则返回执行步骤S302继续等待。
如果确定在上一次提供统计信息之后已过去预定时间,则可选择性地执行步骤S303:确定获取的统计信息是否满足预设条件。
如果确定获取的统计信息满足预设条件,则执行步骤S304:提供获取的统计信息。
如果确定获取的统计信息不满足预设条件,则不提供获取的统计信息。
应理解,除上述两种情况之外,提供获取的统计信息的步骤可还包括:当监测到用于关闭待整理数据库句柄的请求时,响应于所述请求提供接收到所述请求之前最新获取的统计信息。例如,可周期性获取统计信息,当监测到所述请求时,可响应于所述请求确定最新获取的统计信息是否满足预设条件,将满足预设条件的统计信息提供给后台监控服务。
优选地,根据本发明示例性实施例的数据库处理方法可还包括:当数据库句柄关闭时,在将获取的统计信息提供给后台监控服务之后,删除关于待整理数据库的统计信息(例如,可将待整理数据库句柄的内存结构中存储的统计信息删除)。
返回图1,在步骤S20中,确定终端的运行状态。作为示例,终端的运行状态可包括CPU的使用率、终端的剩余电量、当前时间中的至少一项。
在步骤S30中,基于确定的终端的运行状态和提供的统计信息确定所述待整理数据库的数据处理方式。
例如,可判断CPU的使用率是否小于第三预设值,如果CPU的使用率不小于(大于等于)第三预设值,表明终端的CPU处于忙碌状态,此时不对终端的待整理数据库进行碎片整理。如果CPU的使用率小于第三预设值,表明终端的CPU处于空闲状态,可对待整理数据库执行碎片整理,此时则继续判断终端的剩余电量是否小于第四预设值,如果终端的剩余电量不小于第四预设值,则判断当前时间是否处于预设时间段,如果当前时间处于预设时间段,则确定对所述待整理数据库进行整体碎片整理(即,针对待整理数据库整体进行碎片整理)。如果终端的剩余电量小于第四预设值和/或当前时间不处于预设时间段,则确定对该统计信息所对应的待整理数据库中的表/索引进行碎片整理(即,针对表和/或索引进行碎片整理)。作为示例,预设时间段可指午夜时段,本领域技术人员可根据需要定义预设时间段的时间范围。
应理解,也可先执行判断当前时间是否处于预设时间段的步骤,再执行判断终端的剩余电量是否小于第四预设值的步骤,本领域技术人员可对上述两个步骤的执行顺序自由调整。
在步骤S40中,以确定的数据处理方式对所述待整理数据库进行碎片整理。这里,可利用现有的各种针对数据库整体或表/索引进行碎片整理的方法来对待整理数据库进行碎片整理。
例如,对于针对待整理数据库整体进行碎片整理的情况,对待整理数据库进行碎片整理的步骤可包括:逐条搬移待整理数据库中的所有表以及索引对应的数据到新的数据库中,在数据搬移过程中进行数据重新排列和紧致,然后无效该待整理数据库,并使用新的数据库。
对于针对表和/或索引进行碎片整理的情况,对待整理数据库进行碎片整理的步骤可包括:对表和/或索引的组成页和/或页内记录逐一进行整理,或者,创建新的表和/或索引,将原表和/或索引的记录搬移到新创建的表和/或索引,删除原表和/或索引。优选地,可将整理后或新创建的表和/或索引仍存储到该待整理数据库中。
优选地,后台监控服务在接收到统计信息时,可对接收到的统计信息进行存储,并以预定时间间隔确定终端的运行状态,以基于确定的终端的运行状态以及存储的统计信息确定数据处理方式。在此情况下,根据本发明示例性实施例的所述数据库处理方法可还包括:在对待整理数据库完成碎片整理之后,删除关于该待整理数据库的统计信息。
图4示出根据本发明示例性实施例的数据库处理设备的结构图。
如图4所示,根据本发明示例性实施例的数据库处理设备包括数据采集器10和数据处理器20。
具体说来,数据采集器10获取关于终端中待整理数据库的统计信息,并将获取的统计信息发送到数据处理器20。作为示例,所述待整理数据库可为嵌入式数据库,例如,SQLite数据库。
优选地,数据采集器10可检测所述待整理数据库是否存在预定标识符,例如,预定标识符可被存储在待整理数据句柄中,从而检测待整理数据句柄中是否存在预定标识符。如果检测到所述待整理数据库存在所述预定标识符,则数据采集器10获取所述待整理数据库的统计信息;如果检测到所述待整理数据库不存在所述预定标识符,则数据采集器10不获取所述待整理数据库的统计信息。
优选地,作为示例,关于终端中待整理数据库的统计信息可包括待整理数据库中的表/索引的碎片率和/或表/索引的使用频率。这里,碎片率可根据待整理数据库中的表/索引的逻辑相邻页在待整理数据库内位置的不连续程度和/或表/索引的组成页的页内的有效空间利用率来确定,使用频率可通过统计对待整理数据库所执行的操作涉及表/索引的次数来确定。
这里,数据采集器10可将关于终端中待整理数据库的统计信息保存在待整理数据库句柄的内存结构中。例如,数据采集器10更新在待整理数据库的内存结构中存储的统计信息的过程为:监测对待整理数据库所执行的操作。例如,该操作可包括查询、插入、删除、更新数据库的操作。统计监测到的操作涉及的待整理数据库中的表/索引的碎片率和/或所述表/所述索引的使用频率,使用统计的碎片率和/或使用频率更新统计信息中对应的碎片率和使用频率。
一种情况,数据采集器10可将满足预设条件的统计信息发送到数据处理器20。
具体说来,数据采集器10确定获取的统计信息是否满足预设条件。所述预设条件可包括:待整理数据库中的表/索引的碎片率不小于第一预设值和/或表/索引的使用频率不小于第二预设值。如果确定获取的统计信息满足所述预设条件,则数据采集器10将获取的统计信息发送到数据处理器20,如果确定获取的统计信息不满足所述预设条件,则数据采集器10不发送统计信息到数据处理器20。
另一种情况,数据采集器10可将符合提供统计信息的时间间隔要求且满足预设条件的统计信息发送到数据处理器20。
例如,当数据采集器10监测到对待整理数据库所执行的操作完成时,如果在数据采集器10上一次发送统计信息之后过去预定时间,则数据采集器10将获取的统计信息发送到数据处理器20。优选地,数据采集器10在上一次发送统计信息之后过去预定时间时,将满足预设条件的统计信息发送到数据处理器20。
除上述两种情况之外,当数据采集器10监测到用于关闭待整理数据库句柄的请求时,数据采集器10响应于所述请求将接收到所述请求之前最新获取的统计信息发送到数据处理器20。
优选地,关闭待整理数据库句柄时,在将获取的统计信息提供给后台监控服务之后,数据采集器10删除关于待整理数据库的统计信息(例如,可将待整理数据库句柄的内存结构中存储的统计信息删除)。
数据处理器20确定终端的运行状态,基于从数据采集器10接收的统计信息和终端的运行状态确定所述待整理数据库的数据处理方式,并以确定的数据处理方式对待整理数据库进行碎片整理。
这里,数据处理器20可在终端的后台进行监控以对待整理数据库进行碎片整理,可有效避免在碎片整理过程中阻碍对待整理数据库所执行的操作。
作为示例,终端的运行状态可包括CPU的使用率、终端的剩余电量、当前时间中的至少一项。
例如,数据处理器20可判断CPU的使用率是否小于第三预设值,如果CPU的使用率不小于(大于等于)第三预设值,表明终端的CPU处于忙碌状态,此时不对终端的待整理数据库进行碎片整理。如果CPU的使用率小于第三预设值,表明终端的CPU处于空闲状态,可对待整理数据库执行碎片整理,此时则数据处理器20继续判断终端的剩余电量是否小于第四预设值,如果终端的剩余电量不小于第四预设值,则数据处理器20判断当前时间是否处于预设时间段,如果当前时间处于预设时间段,则数据处理器20确定对所述待整理数据库进行整体碎片整理(即,针对待整理数据库整体进行碎片整理)。如果终端的剩余电量小于第四预设值和/或当前时间不处于预设时间段,则数据处理器20确定对该统计信息所对应的待整理数据库中的表/索引进行碎片整理(即,针对表和/或索引进行碎片整理)。作为示例,预设时间段可指午夜时段,本领域技术人员可根据需要定义预设时间段的时间范围。
具体说来,对于针对待整理数据库整体进行碎片整理的情况,数据处理器20可逐条搬移待整理数据库中的所有表以及索引对应的数据到新的数据库中,在数据搬移过程中进行数据重新排列和紧致,然后无效该待整理数据库,并使用新的数据库。
对于针对表和/或索引进行碎片整理的情况,数据处理器20可对表和/或索引进行整理,或者,创建新的表和/或索引,将原表和/或索引的记录搬移到新创建的表和/或索引,并无效原表和/或索引。优选地,可将整理后或新创建的表和/或索引仍存储到该待整理数据库中。
这里,数据处理器20在从数据采集器10接收到统计信息时,可对接收到的统计信息进行存储,并以预定时间间隔确定终端的运行状态,以基于确定的终端的运行状态以及存储的统计信息确定数据处理方式。在此情况下,在对待整理数据库/表/索引完成碎片整理之后,数据处理器20删除关于该待整理数据库/表/索引的统计信息。
根据本发明的示例性实施例还提供一种计算机可读存储介质。该计算机可读存储介质存储有当被处理器执行时使得处理器执行上述数据库处理方法的程序指令。该计算机可读记录介质是可存储由计算机系统读出的数据的任意数据存储装置。计算机可读记录介质的示例包括:只读存储器、随机存取存储器、只读光盘、磁带、软盘、光数据存储装置和载波(诸如经有线或无线传输路径通过互联网的数据传输)。计算机可读记录介质也可分布于连接网络的计算机系统,从而计算机可读代码以分布式存储和执行。此外,完成本发明的功能程序、代码和代码段可容易地被与本发明相关的领域的普通程序员在本发明的范围之内解释。
根据本发明的示例性实施例还提供一种计算装置。该计算装置包括处理器和存储器。存储器用于存储程序指令。所述程序指令被处理器执行使得处理器执行如上所述的数据库处理方法的程序指令。
采用本发明示例性实施例的所述数据库处理方法和设备,针对现有嵌入式数据库(如,SQLite数据库)需要由应用层发起碎片整理的缺陷,提出了一种新型的嵌入式数据库自动碎片整理方法。该方法在执行数据库操作时收集数据库中表以及索引的碎片率和/或使用频率的统计信息,并在后台定期监测终端当前运行状态,灵活选择不同的数据处理方案对数据库进行碎片整理,提高后续数据库操作效率。
此外,采用根据本发明示例性实施例的所述数据库处理方法和设备,信息收集统计和碎片整理机制对上层应用基本透明,不影响上层应用的设计实现,信息收集统计工作对数据库操作性能的影响很小,经过碎片整理后的数据库、表或者索引能有效提高后续相关操作性能。
此外,应该理解,根据本发明示例性实施例的数据库处理设备中的各个单元/程序模块可被实现硬件组件和/或软件组件。本领域技术人员根据限定的各个单元所执行的处理,可以例如使用现场可编程门阵列(FPGA)或专用集成电路(ASIC)来实现各个单元。
此外,根据本发明示例性实施例的数据库处理方法可以被实现为计算机可读记录介质中的计算机代码。本领域技术人员可以根据对上述方法的描述来实现所述计算机代码。当所述计算机代码在计算机中被执行时实现本发明的上述方法。
尽管已经参照其示例性实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。

Claims (26)

1.一种数据库处理方法,所述数据库处理方法包括:
获取关于终端中待整理数据库的统计信息,并提供获取的统计信息;
确定终端的运行状态;
基于确定的终端的运行状态和提供的统计信息确定所述待整理数据库的数据处理方式;
以确定的数据处理方式对所述待整理数据库进行碎片整理,
其中,终端的运行状态包括CPU的使用率、终端的剩余电量和当前时间,
其中,基于终端的运行状态确定是对所述待整理数据库进行整体碎片整理还是对与该统计信息对应的待整理数据库中的表/索引进行碎片整理。
2.如权利要求1所述的数据库处理方法,其中,所述统计信息包括所述待整理数据库中的表/索引的碎片率和/或使用频率。
3.如权利要求2所述的数据库处理方法,其中,提供获取的统计信息的步骤包括:
确定获取的统计信息是否满足预设条件;
如果确定获取的统计信息满足所述预设条件,则提供获取的统计信息。
4.如权利要求3所述的数据库处理方法,其中,所述预设条件包括:所述待整理数据库中的表/索引的碎片率不小于第一预设值和/或表/索引的使用频率不小于第二预设值。
5.如权利要求1所述的数据库处理方法,其中,获取关于待整理数据库的统计信息的步骤包括:
检测所述待整理数据库是否存在预定标识符;
如果检测到所述待整理数据库存在所述预定标识符,则获取所述待整理数据库的统计信息。
6.如权利要求2所述的数据库处理方法,其中,所述碎片率根据所述待整理数据库中的表/索引的逻辑相邻页在待整理数据库内位置的不连续程度和/或表/索引的组成页的页内有效空间利用率来确定。
7.如权利要求2所述的数据库处理方法,所述数据库处理方法还包括:
监测对所述待整理数据库所执行的操作;
统计所述操作涉及的所述待整理数据库中的表/索引的碎片率和/或所述表/所述索引的使用频率;
使用统计的碎片率和/或使用频率更新所述统计信息中对应的碎片率和使用频率。
8.如权利要求1所述的数据库处理方法,其中,提供获取的统计信息的步骤包括:
监测对所述待整理数据库所执行的操作是否完成;
如果监测到对待整理数据库所执行的操作已完成,则确定在上一次提供统计信息之后是否过去预定时间;
如果确定在上一次提供统计信息之后过去预定时间,则提供获取的统计信息。
9.如权利要求1所述的数据库处理方法,其中,提供获取的统计信息的步骤包括:
当监测到用于关闭所述待整理数据库句柄的请求时,响应于所述请求提供接收到所述请求之前最新获取的统计信息。
10.如权利要求1所述的数据库处理方法,其中,基于确定的终端的运行状态和获取的统计信息确定所述待整理数据库的数据处理方式的步骤包括:
当CPU的使用率小于第三预设值时,如果终端的剩余电量不小于第四预设值且当前时间处于预设时间段,则确定对所述待整理数据库进行整体碎片整理,如果终端的剩余电量小于第四预设值和/或当前时间不处于预设时间段,则确定对所述统计信息所对应的所述待整理数据库中的表/索引进行碎片整理。
11.如权利要求1所述的数据库处理方法,还包括:
在对所述待整理数据库完成碎片整理之后,删除关于所述待整理数据库的统计信息。
12.如权利要求1所述的数据库处理方法,其中,所述待整理数据库为嵌入式数据库。
13.一种数据库处理设备,所述数据库处理设备包括:
数据采集器,获取关于终端中待整理数据库的统计信息;
数据处理器,确定终端的运行状态,基于从数据采集器接收的统计信息和终端的运行状态确定所述待整理数据库的数据处理方式,并以确定的数据处理方式对所述待整理数据库进行碎片整理,
其中,终端的运行状态包括CPU的使用率、终端的剩余电量和当前时间,
其中,数据处理器基于终端的运行状态确定是对所述待整理数据库进行整体碎片整理还是对与该统计信息对应的待整理数据库中的表/索引进行碎片整理。
14.如权利要求13所述的数据库处理设备,其中,所述统计信息包括所述待整理数据库中的表/索引的碎片率和/或使用频率。
15.如权利要求14所述的数据库处理设备,其中,数据采集器确定获取的统计信息是否满足预设条件,如果确定获取的统计信息满足所述预设条件,则将获取的统计信息发送到数据处理器。
16.如权利要求15所述的数据库处理设备,其中,所述预设条件包括:所述待整理数据库中的表/索引的碎片率不小于第一预设值和/或表/索引的使用频率不小于第二预设值。
17.如权利要求13所述的数据库处理设备,其中,数据采集器检测所述待整理数据库是否存在预定标识符,如果检测到所述待整理数据库存在所述预定标识符,则获取待整理数据库的统计信息。
18.如权利要求14所述的数据库处理设备,其中,数据采集器监测对所述待整理数据库所执行的操作,统计所述操作所涉及的所述待整理数据库中的表/索引的碎片率和/或所述表/所述索引的使用频率,使用统计的碎片率和/或使用频率更新所述统计信息中对应的碎片率和使用频率。
19.如权利要求14所述的数据库处理设备,其中,数据采集器根据所述待整理数据库中的表/索引的逻辑相邻页在文件内位置的不连续程度和/或表/索引的组成页的页内有效空间利用率确定所述碎片率。
20.如权利要求13所述的数据库处理设备,其中,数据采集器监测对所述待整理数据库所执行的操作是否完成,如果监测到对待整理数据库所执行的操作已完成,则确定在上一次提供统计信息之后是否过去预定时间,如果确定在上一次提供统计信息之后过去预定时间,则数据采集器将获取的统计信息发送到数据处理器。
21.如权利要求13所述的数据库处理设备,其中,当数据采集器监测到用于关闭所述待整理数据库句柄的请求时,响应于所述请求将接收到所述请求之前最新获取的统计信息发送到数据处理器。
22.如权利要求13所述的数据库处理设备,其中,当数据处理器确定CPU的使用率小于第三预设值时,如果终端的剩余电量不小于第四预设值且当前时间处于预设时间段,则数据处理器确定对所述待整理数据库进行整体碎片整理,
如果终端的剩余电量小于第四预设值和/或当前时间不处于预设时间段,则数据处理器确定对所述统计信息所对应的待整理数据库中的表/索引进行碎片整理。
23.如权利要求13所述的数据库处理设备,其中,在对所述待整理数据库完成碎片整理之后,数据处理器删除关于所述待整理数据库的统计信息。
24.如权利要求13所述的数据库处理设备,其中,所述待整理数据库为嵌入式数据库。
25.一种计算机可读存储介质,存储有当被处理器执行时使得处理器执行如权利要求1至12中任一项所述的数据库处理方法的程序指令。
26.一种计算装置,包括:
处理器;
存储器,用于存储当被处理器执行时使得处理器执行如权利要求1至12中任一所述的数据库处理方法的程序指令。
CN201710769293.3A 2017-08-31 2017-08-31 数据库处理方法和设备 Active CN107704507B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710769293.3A CN107704507B (zh) 2017-08-31 2017-08-31 数据库处理方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710769293.3A CN107704507B (zh) 2017-08-31 2017-08-31 数据库处理方法和设备

Publications (2)

Publication Number Publication Date
CN107704507A CN107704507A (zh) 2018-02-16
CN107704507B true CN107704507B (zh) 2021-05-25

Family

ID=61170024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710769293.3A Active CN107704507B (zh) 2017-08-31 2017-08-31 数据库处理方法和设备

Country Status (1)

Country Link
CN (1) CN107704507B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491984B (zh) * 2018-10-09 2020-12-15 湖北省农村信用社联合社网络信息中心 散列分组数据库碎片轮询整理方法
CN113961517A (zh) * 2020-07-21 2022-01-21 中兴通讯股份有限公司 文件系统管理方法、电子设备及存储介质
CN114356224B (zh) * 2021-12-15 2024-04-19 广州致存科技有限责任公司 文件地址优化方法、终端、服务器及计算机可读存储介质
CN115543937B (zh) * 2022-03-22 2023-07-11 荣耀终端有限公司 文件碎片整理方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013026779A (ja) * 2011-07-20 2013-02-04 Panasonic Corp 通信端末及び通信方法
CN104298766A (zh) * 2014-10-28 2015-01-21 四川秘无痕信息安全技术有限责任公司 一种清除SQLite数据库中数据的方法
CN104866069A (zh) * 2015-06-12 2015-08-26 广东小天才科技有限公司 一种自动清理后台应用程序的方法及装置
CN105824663A (zh) * 2015-12-31 2016-08-03 维沃移动通信有限公司 后台应用清理方法及移动终端
CN106101271A (zh) * 2016-08-08 2016-11-09 北京小米移动软件有限公司 优化存储空间的方法及装置
CN106843767A (zh) * 2017-01-25 2017-06-13 上海摩软通讯技术有限公司 一种终端的存储空间清理方法和移动终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013026779A (ja) * 2011-07-20 2013-02-04 Panasonic Corp 通信端末及び通信方法
CN104298766A (zh) * 2014-10-28 2015-01-21 四川秘无痕信息安全技术有限责任公司 一种清除SQLite数据库中数据的方法
CN104866069A (zh) * 2015-06-12 2015-08-26 广东小天才科技有限公司 一种自动清理后台应用程序的方法及装置
CN105824663A (zh) * 2015-12-31 2016-08-03 维沃移动通信有限公司 后台应用清理方法及移动终端
CN106101271A (zh) * 2016-08-08 2016-11-09 北京小米移动软件有限公司 优化存储空间的方法及装置
CN106843767A (zh) * 2017-01-25 2017-06-13 上海摩软通讯技术有限公司 一种终端的存储空间清理方法和移动终端

Also Published As

Publication number Publication date
CN107704507A (zh) 2018-02-16

Similar Documents

Publication Publication Date Title
CN107704507B (zh) 数据库处理方法和设备
US11645183B1 (en) User interface for correlation of virtual machine information and storage information
US9448927B1 (en) System and methods for removing obsolete data in a distributed system of hybrid storage and compute nodes
CN104978362B (zh) 分布式文件系统的数据迁移方法、装置及元数据服务器
CN107943718B (zh) 一种清理缓存文件的方法和装置
EP3229142B1 (en) Read cache management method and device based on solid state drive
TW201841122A (zh) 鍵值儲存樹
US12067236B2 (en) Data stability in data storage system
CN111339200B (zh) 一种基于数据库同步的数据校验方法及数据校验系统
TW201842454A (zh) 合併樹廢棄項目指標
US8612402B1 (en) Systems and methods for managing key-value stores
GB2518158A (en) Method and system for data access in a storage infrastructure
CN107122126B (zh) 数据的迁移方法、装置和系统
CN104598495A (zh) 基于分布式文件系统的分级存储方法及系统
US11294805B2 (en) Fast and safe storage space reclamation for a data storage system
CN111782134A (zh) 数据处理方法、装置、系统和计算机可读存储介质
CN103559282B (zh) 实时系统数据的去重方法和装置
US11080239B2 (en) Key value store using generation markers
Pan et al. Penalty-and locality-aware memory allocation in Redis using enhanced AET
CN114090577A (zh) 时序数据的存储、读取方法及装置
CN108959614A (zh) 一种快照管理方法、系统、装置、设备及可读存储介质
WO2023169188A1 (zh) 一种文件系统中的热度识别方法、装置及计算机设备
WO2011137684A1 (zh) 基于嵌入式系统的信息记录的检索方法和装置
US20160253591A1 (en) Method and apparatus for managing performance of database
CN113434492B (zh) 数据的检测方法、装置、存储介质和电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant