用于处理数据库数据的方法和系统技术方案

技术编号:13796137 阅读:57 留言:0更新日期:2016-10-06 14:42
在用于在数据库管理系统中处理数据的方法中,处理器对第一数据容器执行删除操作,其中第一数据容器包括一个或多个数据记录,删除操作逻辑删除一个或多个数据记录中的至少一个数据记录。处理器将所执行的删除操作的时间与第一数据容器相关联。处理器对第一数据容器的第一数据记录执行写入操作。处理器将所执行的写入操作的时间与第一数据容器的第一数据记录相关联。响应于接收针对第一数据容器的数据库查询,至少基于所执行的写入操作的时间按时间顺序在所执行的删除操作的时间之后,处理器准许对第一数据容器的第一数据记录的访问。

【技术实现步骤摘要】

本专利技术涉及数据库管理系统,更具体地,涉及由数据库管理系执行的删除操作。
技术介绍
一些数据库管理系统用标记更新表的每一行,以便指示所标记的行应当被视为已删除。用于处理标记的扫描过程和计算开销可导致全表删除的较慢性能。许多分析系统的全删除操作性能可能很慢,因为分析系统通常对于分析查询和处理任务是性能优化的,而并非对于批量删除。特别地,在提供快照隔离的数据库管理系统中的全删除操作,如例如在多版本并发控制(MVCC)系统中,趋于较慢,因为这种系统扫描表的每个单行,包括检查已经被逻辑删除的记录,以便执行全删除操作。删除单独行可能导致这种系统中的较差性能,而全表删除可能导致阻塞后续的写入事务,并因此可能阻塞并且与将要执行的分析和/或其它任务冲突。例如,在全表删除已经完成之前,重载通常不能开始。
技术实现思路
本专利技术的实施例的各方面公开了用于在数据库管理系统中处理数据的方法、计算机程序产品和计算机系统。处理器对第一数据容器执行删除操作,其中第一数据容器包括一个或多个数据记录,删除操作逻辑删除一个或多个数据记录中的至少一个数据记录。处理器将所执行的删除操作的时间与第一数据容器相关联。处理器对第一数据容器的第一数据记录执行写
入操作。处理器将所执行的写入操作的时间与第一数据容器的第一数据记录相关联。响应于接收针对第一数据容器的数据库查询,至少基于所执行的写入操作的时间按时间顺序在所执行的删除操作时间之后,处理器准许对第一数据容器的第一数据记录的访问。附图说明下面,作为示例,参考附图对本专利技术的实施例进行详细的描述,其中:图1描绘了根据本专利技术的实施例的包括数据库管理系统的计算系统;图2描绘了根据本专利技术的实施例的计算机实现的方法;图3描绘了根据本专利技术的实施例的第一数据容器的数据块。具体实施方式现在参考附图详细描述本专利技术。图1描绘了根据本专利技术的一个实施例的计算机系统,其被标记为102。图1描绘了根据本专利技术的说明性实施例的计算机系统102的组件的框图。应当知道,图1仅仅提供一个实现的图示,并不意味着对其中可实现不同实施例的环境的任何限制。可以对所描绘的环境进行许多修改。计算机系统102可以是管理服务器、网络服务器、或者能够接收和发送数据并处理程序指令的任何其它电子装置或计算系统。在一些实施例中,计算机系统102可以是膝上型计算机、平板计算机、上网本计算机、个人计算机(PC)、桌上型计算机、或任何可编程电子装置。根据本专利技术的实施例,计算机系统102包括数据库管理系统(DBMS)132。DBMS 132包括第一数据容器116,其包括多个数据记录134。第一数据容器116可以是例如数据库表或数据库表的分区。DBMS 132还包括用于接收数据库查询的接口110。接口110可以是例如结构化查询语言(SQL)接口。DBMS 132还包括程序逻辑114。程序逻辑114可以被配置为:在对第一数据容器116执行了创建或修改第一数据容器116的一个数据记录的写入操作后,与所述数据记录相关联地存储当前时间作为创建
时间(参见图1,列124)(参见图2,步骤202);在对第一数据容器116执行了删除第一数据容器116的全部数据内容的全删除操作后,与第一数据容器116相关联地存储当前时间作为全删除时间(例如,全删除时间136、138),全删除时间采用每一全删除操作和每一数据内容被完全删除的第一数据容器116对单一数据值的形式存储(参见图2,步骤204);响应于接收针对第一数据容器116的数据库查询,评估与第一数据容器116相关联的一个或多个单值全删除时间,诸如全删除时间136、138,并有选择地提供所接收的数据库查询对在第一数据容器116中包含的数据记录134中所分配的创建时间比与第一数据容器116相关联地存储的最新全删除时间晚的数据记录的访问。例如,有选择地提供对数据记录(诸如来自数据记录134的数据记录)的访问可包括允许读取和/或写入操作知道数据记录的存在并分析该数据记录的数据内容。读取和/或写入操作可例如被客户端计算机(未示出)请求。例如,所接收的数据库查询可以是SELECT、UPDATE或DELETE语句。图2描绘了根据本专利技术的实施例的用于操作DBMS(例如DBMS 132)的程序逻辑114的流程图。例如,DBMS可被实现为如图1所描绘的DBMS132。DBMS 132被配置为管理第一数据容器116。第一数据容器116包括多个数据记录134。在步骤202中,在对第一数据容器116执行创建或修改第一数据容器116的多个数据记录134中的一个数据记录时,程序逻辑114将当前时间与所述数据记录相关联地存储,作为创建时间(参见图1,列124)。在步骤204中,在对第一数据容器116执行删除第一数据容器116的全部数据内容的全删除操作时,程序逻辑114将当前时间与第一数据容器116相关联地存储,作为全删除时间(例如,全删除时间136、138)。在一些实施例中,全删除时间(例如,全删除时间136、138)采用每一全删除操作和每一数据内容被完全删除的第一数据容器116对单一数据值的形式存储。在步骤206中,响应于接收针对第一数据容器116的数据库查询,程
序逻辑114评估与第一数据容器116相关联的一个或多个单值全删除时间(例如136、138),并有选择地提供对在第一数据容器116中包含的多个数据记录134中所分配的创建时间比与第一数据容器116相关联地存储的最新全删除时间(例如,138)晚的数据记录的访问。例如,所接收的数据库查询可以是读取SQL查询(例如,SELECT语句)或写入SQL查询(例如,UPDATE、INSERT或DELETE语句)。如果所述数据记录的创建时间指示所述数据记录在对所述数据容器(例如,第一数据容器116)执行的最新全删除操作之前创建,则数据库查询将被DBMS 132或其中的程序逻辑禁止访问和识别特定数据记录的存在。全删除功能可以由DBMS 132或其中的程序逻辑提供,其能够通过仅存储与被执行了全删除功能的第一数据容器116相关联的单一数据值,快速禁止对巨量数据记录(例如,在诸如第一数据容器116的数据容器中存储的所有数据记录,诸如多个数据记录134)的访问。无需将单独的数据记录标记为“已删除”或“不可见”。存储指示最新全删除时间的单一数据值所需的时间将阻止随后的事务一段时间。第一数据容器116可以是例如数据库表。在这种实施例中,全删除操作是对第一数据容器116有选择地执行的全表删除操作。可替代地,第一数据容器116可以是数据库表分区。在这种实施例中,全删除操作是对第一数据容器116有选择地执行的全分区删除操作。DBMS 132可包括一些是数据库表的数据容器和其它是数据库表分区的数据容器,DBMS或其中的程序逻辑能够执行全表删除操作以及全表分区删除操作。其数据内容应被删除的表可由表标识符来标识,分区可由分区标识符来标识。根据一些实施例,全删除操作可由全表刷新命令或全分区刷新命令、TRUNCATE语句、或者缺少WHERE子句的DELETE FROM TABLE语句来触发。根据一些实施例,DELETE FROM TABLE语句以与TRUNCATE语句相同的方式实现。在这两种情况下,例如,用本文档来自技高网
...

【技术保护点】
一种用于在数据库管理系统中处理数据的方法,包括:由一个或多个处理器对第一数据容器执行删除操作,其中,所述第一数据容器包括一个或多个数据记录,所述删除操作逻辑删除所述一个或多个数据记录中的至少一个数据记录;由一个或多个处理器将所执行的删除操作的时间与所述第一数据容器相关联;由一个或多个处理器对所述第一数据容器的第一数据记录执行写入操作;由一个或多个处理器将所执行的写入操作的时间与所述第一数据容器的所述第一数据记录相关联;以及响应于接收针对所述第一数据容器的数据库查询,由一个或多个处理器至少基于所述所执行的写入操作的时间按时间顺序在所述所执行的删除操作的时间之后,准许对所述第一数据容器的所述第一数据记录的访问。

【技术特征摘要】
2015.03.23 US 14/6652321.一种用于在数据库管理系统中处理数据的方法,包括:由一个或多个处理器对第一数据容器执行删除操作,其中,所述第一数据容器包括一个或多个数据记录,所述删除操作逻辑删除所述一个或多个数据记录中的至少一个数据记录;由一个或多个处理器将所执行的删除操作的时间与所述第一数据容器相关联;由一个或多个处理器对所述第一数据容器的第一数据记录执行写入操作;由一个或多个处理器将所执行的写入操作的时间与所述第一数据容器的所述第一数据记录相关联;以及响应于接收针对所述第一数据容器的数据库查询,由一个或多个处理器至少基于所述所执行的写入操作的时间按时间顺序在所述所执行的删除操作的时间之后,准许对所述第一数据容器的所述第一数据记录的访问。2.根据权利要求1所述的方法,其中,所述第一数据容器是数据库表,所述删除操作是对所述第一数据容器有选择地执行的全表删除操作。3.根据权利要求1所述的方法,其中,所述第一数据容器是数据库表分区,所述删除操作是对所述第一数据容器有选择地执行的全分区删除操作。4.根据权利要求1所述的方法,其中,所述第一数据容器包括多个数据块,所述多个数据块中的一个或多个数据块包括所述一个或多个数据记录中的数据记录,包括所述一个或多个数据记录中的数据记录的每个数据块具有指示在所述数据块中存储的最新创建的数据记录的关联时间。5.根据权利要求4所述的方法,其中,对所述第一数据容器执行删除操作包括:由一个或多个处理器对所述多个数据块中的所述一个或多个数据块执行物理删除操作,其中,所述物理删除操作包括:对于所述一个或多个数据块中的每个数据块,由一个或多个处理器基于与在所述数据块中存储的每个数据记录相关联的时间,识别所述数据块的最新数据记录;由一个或多个处理器将与在所述数据块中存储的最新数据记录相关联的时间与所述所执行的删除操作的时间进行比较;以及响应于与在所述数据块中存储的最新数据记录相关联的时间按时间顺序在所述所执行的删除操作的时间之前,由一个或多个处理器物理删除所述数据块。6.根据权利要求1所述的方法,其中,所述所执行的删除操作的时间是在执行所述删除操作时的...

【专利技术属性】
技术研发人员:O·本克J·S·克恩D·马丁K·施托尔策
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1