CN106557494B - 更新列存储表的方法及装置 - Google Patents
更新列存储表的方法及装置 Download PDFInfo
- Publication number
- CN106557494B CN106557494B CN201510624998.7A CN201510624998A CN106557494B CN 106557494 B CN106557494 B CN 106557494B CN 201510624998 A CN201510624998 A CN 201510624998A CN 106557494 B CN106557494 B CN 106557494B
- Authority
- CN
- China
- Prior art keywords
- data
- storage table
- column
- data volume
- row
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种更新列存储表的方法及装置。其中,该方法包括:获取数据库的列存储表中当前所删除数据的数据量和数据库的行存储表中当前所存储数据的数据量;根据获取的当前所删除数据的数据量和当前所存储数据的数据量确定是否更新列存储表中的列存储索引。本发明解决了相关技术中行存储中的数据量由于只有达到预设阈值时才会转换成列存储中的数据量而造成的列存储响应延时且列存储效率低的技术问题。
Description
技术领域
本发明涉及数据库领域,具体而言,涉及一种更新列存储表的方法及装置。
背景技术
列存储索引通过列存储压缩技术,能够节省对数据库存储空间的占用,从而提升数据库性能。
在相关技术中,列存储过程可以分为3个阶段,分别为:(1)对行存储表中的数据按行分组,得到多个所谓的行组,每个行组能够容纳102,400到1,048,576个数据行;(2)将各个行组按列切分成多个列片段;(3)将各个列片段压缩后,作为列存储索引***实际的列存储表中。
对于上述列存储过程,一方面,划分行组时,可能会存在行存储表的行数不满足行组划分的最低条件的情况,如行存储表中的当前行数小于102,400,此时,数据库会直接以传统行存储即所谓的临时行存储DeltaStore的形式存储这部分数据,直到数据增长到满足行组划分条件为止;另一方面,将行存储转化成列存储,仅仅依赖于SQLServer后台线程的判断结果,即数据在行存储表中累积,直到数据行数达到行组允许的行数时,才将行存储转化成列存储。具体地,数据在行存储表中累积,直到数据行数达到行组允许的行数时,SQLServer才会将该行组标记为“关闭”状态,此时,名为“tuple-mover”的后台进程才会查找已关闭的行组并将其压缩成列片段,进而将相应的列片段存储于列存储表中。
因此,上述列存储过程存在后台进程响应延时、列存储效率低、数据库存储空间占用开销大、查询缓慢等缺陷。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种更新列存储表的方法及装置,以至少解决相关技术中行存储中的数据量由于只有达到预设阈值时才会转换成列存储中的数据量而造成的列存储响应延时且列存储效率低的技术问题。
根据本发明实施例的一个方面,提供了一种更新列存储表的方法,包括:获取数据库的列存储表中当前所删除数据的数据量和上述数据库的行存储表中当前所存储数据的数据量;根据获取的上述当前所删除数据的数据量和上述当前所存储数据的数据量确定是否更新上述列存储表中的列存储索引。
进一步地,根据获取的上述当前所删除数据的数据量和上述当前所存储数据的数据量确定是否更新上述列存储表中的列存储索引包括:判断上述当前所删除数据的数据量对应的行数是否小于等于上述当前所存储数据的数据量对应的行数;在判断结果为是的情况下,更新上述列存储表中的上述列存储索引。
进一步地,在判断上述当前所删除数据的数据量对应的行数是否小于等于上述当前所存储数据的数据量对应的行数之后,上述方法还包括:在判断结果为否的情况下,检测上述数据库的上述行存储表中累积存储数据的数据量对应的行数是否达到上述当前所删除数据的数据量对应的行数;在检测结果为是的情况下,更新上述列存储表中的上述列存储索引。
进一步地,在获取数据库的列存储表中当前所删除数据的数据量和上述数据库的行存储表中当前所存储数据的数据量之前,上述方法还包括:检测是否发生了用于删除上述列存储表中的数据的删除操作,其中,在检测结果为是的情况下,执行获取数据库的列存储表中当前所删除数据的数据量和上述数据库的行存储表中当前所存储数据的数据量的步骤。
进一步地,在检测是否发生了用于删除上述列存储表中的数据的删除操作之后,上述方法还包括:在检测结果为否的情况下,进一步检测上述数据库的上述行存储表中累积数据的数据量对应的行数是否达到预设行组划分阈值;在检测结果达到上述预设行组划分阈值时,更新上述列存储表中的列存储索引。
根据本发明实施例的另一方面,还提供了一种更新列存储表的装置,包括:获取单元,用于获取数据库的列存储表中当前所删除数据的数据量和上述数据库的行存储表中当前所存储数据的数据量;确定单元,用于根据获取的上述当前所删除数据的数据量和上述当前所存储数据的数据量确定是否更新上述列存储表中的列存储索引。
进一步地,上述确定单元包括:判断模块,用于判断上述当前所删除数据的数据量对应的行数是否小于等于上述当前所存储数据的数据量对应的行数;第一更新模块,用于在判断结果为是的情况下,更新上述列存储表中的上述列存储索引。
进一步地,上述确定单元还包括:检测模块,用于在判断上述当前所删除数据的数据量对应的行数是否小于等于上述当前所存储数据的数据量对应的行数之后,在判断结果为否的情况下,检测上述数据库的上述行存储表中累积存储数据的数据量对应的行数是否达到上述当前所删除数据的数据量对应的行数;第二更新模块,用于在检测结果为是的情况下,更新上述列存储表中的上述列存储索引。
进一步地,上述装置还包括:第一检测单元,用于在获取数据库的列存储表中当前所删除数据的数据量和上述数据库的行存储表中当前所存储数据的数据量之前,检测是否发生了用于删除上述列存储表中的数据的删除操作,其中,上述获取单元还用于在检测结果为是的情况下,执行获取数据库的列存储表中当前所删除数据的数据量和上述数据库的行存储表中当前所存储数据的数据量的功能。
进一步地,上述装置还包括:第二检测单元,用于在检测是否发生了用于删除上述列存储表中的数据的删除操作之后,在检测结果为否的情况下,进一步检测上述数据库的上述行存储表中累积数据的数据量对应的行数是否达到预设行组划分阈值;更新单元,用于在检测结果达到上述预设行组划分阈值时,更新上述列存储表中的列存储索引。
在本发明实施例中,采用在删除、修改了列存储中的存储数据时触发行存储转换为列存储的方式,通过获取数据库的列存储表中当前所删除数据的数据量和数据库的行存储表中当前所存储数据的数据量;根据获取的当前所删除数据的数据量和当前所存储数据的数据量确定是否更新列存储表中的列存储索引,达到了减小列存储响应延时的目的,从而实现了提高列存储效率的技术效果,进而解决了相关技术中行存储中的数据量由于只有达到预设阈值时才会转换成列存储中的数据量而造成的列存储响应延时且列存储效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的更新列存储表的方法的流程图;以及
图2是根据本发明实施例的一种可选的更新列存储表的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种更新列存储表的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的更新列存储表的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取数据库的列存储表中当前所删除数据的数据量和数据库的行存储表中当前所存储数据的数据量;
步骤S104,根据获取的当前所删除数据的数据量和当前所存储数据的数据量确定是否更新列存储表中的列存储索引。
由于数据库中的统计信息表会存储元数据,如sysindexes,其中,元数据包括行数字段Rows,因此通过统计收集模块可以查询上述统计信息表,可以得到由数据库表增加、删除和修改带来的DeltaStore的数据量(即行存储表中临时存储的数据量)和Deleted数据量(即从列存储列表中删除的数据量)。另外,在数据库中统计信息表没有及时更新时,还可以通过SELECT COUNT操作,根据数据库表在增加、删除和修改操作前后的数据量对比结果,得出DeltaStore的数据量和Deleted的数据量。
与相关技术中需要在行存储表中的数据积累到预设行组划分阈值时,才会触发将行存储表中的数据分组、压缩、转存到列存储表中的操作逻辑相比,在列存储表中发生数据删除、修改操作时就触发将行存储表中的数据分组、压缩、转存到列存储表中的操作逻辑,能够有效弥补SQL Server数据库自身更新机制的缺陷,定制检测数据更新量的频次,对以列存储的数据进行压缩状态判断,进而进行压缩操作。
通过上述实施例,可以实现减小列存储响应延时的目的,从而实现了提高列存储效率的技术效果。
可选地,根据获取的当前所删除数据的数据量和当前所存储数据的数据量确定是否更新列存储表中的列存储索引包括:
S2,判断当前所删除数据的数据量对应的行数是否小于等于当前所存储数据的数据量对应的行数;
S4,在判断结果为是的情况下,更新列存储表中的列存储索引。
例如,假设***记录的DeltaStore在两次运行之间的行数差为RowsDiff1=(CurrentRows1–PrevRows1),Deleted在两次运行之间的行数差为RowsDiff2=(CurrentRows2–PrevRows2),如果RowsDiff1≥RowsDiff2,则可以更新列存储表中的列存储索引,而如果RowsDiff1<RowsDiff2,则不能更新列存储表中的列存储索引。
例如,假设一个行组包括102400行,由于执行修改操作从列存储表中行组A中删除了2400行,而此时如果行存储表中临时存储了2500行数据,则可以将行存储表中临时存储2400行数据与行组A中剩余的100000行数据进行压缩和重组,以更新列存储表中的相应列存储索引;而此时如果行存储表中临时存储了2300行数据,由于2300行与100000行数据之和未达到行组的预设行阈值102400,因此无法将行存储表中临时存储2300行数据与行组A中剩余的100000行数据进行压缩和重组,从而不能触发更新列存储表中的相应列存储索引的操作。
具体地,在更新列存储表中的列存储索引时,可以调用列存储索引更新模块,列存储索引更新模块的主要作用是触发索引更新命令Rebuild。列存储索引更新模块触发索引更新,命令示例如下:ALTER INDEX index_name ON table_name REBUILD。
通过本发明实施例,可以准确地确定行存储中临时存储的数据量是否能够补充列存储中删除的数据量,进而可以及时准确地更新列存储表中的相应列存储索引。
可选地,在判断当前所删除数据的数据量对应的行数是否小于等于当前所存储数据的数据量对应的行数之后,上述方法还包括:
S6,在判断结果为否的情况下,检测数据库的行存储表中累积存储数据的数据量对应的行数是否达到当前所删除数据的数据量对应的行数;
S8,在检测结果为是的情况下,更新列存储表中的列存储索引。
也即,在判断结果为否的情况下,可以实时检测数据库的行存储表中累积存储数据的数据量对应的行数是否达到当前所删除数据的数据量对应的行数,在检测结果为是的情况下,更新列存储表中的列存储索引。
例如,假设一个行组包括102400行,由于执行修改操作从列存储表中行组A中删除了2400行,而此时如果行存储表中临时存储了2300行数据,无法将行存储表中临时存储2300行数据与行组A中剩余的100000行数据进行压缩和重组,从而不能触发更新列存储表中的相应列存储索引的操作,此时,可以在一段时间内实时检测DeltaStore的累积行数是否达到2400,若达到2400,则更新列存储表中的列存储索引。
该实施方式与等到行存储表中的数据积累到预设行组划分阈值时,才触发将行存储表中的数据分组、压缩、转存到列存储表中的操作逻辑相比,只要行存储表中的数据量积累到列存储表中发生删除操作的行组所删除的数据量即可触发更新列存储表中的列存储索引的操作,减少了列存储操作延时,使得更新更及时。
可选地,在获取数据库的列存储表中当前所删除数据的数据量和数据库的行存储表中当前所存储数据的数据量之前,上述方法还包括:
S10,检测是否发生了用于删除列存储表中的数据的删除操作,其中,在检测结果为是的情况下,执行获取数据库的列存储表中当前所删除数据的数据量和数据库的行存储表中当前所存储数据的数据量的步骤。
通过本发明实施例,一方面,在列存储表发生数据删除操作时,可以及时更新该列存储表中的列存储索引;另一方面,可以避免由于列存储表并未发生数据删除操作而***却一直在频繁检测是否可以执行列存储索引更新操作而造成***负担加重、***资源浪费的缺陷。
可选地,在检测是否发生了用于删除列存储表中的数据的删除操作之后,上述方法还包括:
S12,在检测结果为否的情况下,进一步检测数据库的行存储表中累积数据的数据量对应的行数是否达到预设行组划分阈值;
S14,在检测结果达到预设行组划分阈值时,更新列存储表中的列存储索引。
通过本发明实施例,无论是新增数据在DeltaStore中的行数超过预设行组划分阈值时,还是在列存储表由于执行了更新Update操作或删除Delete操作而导致出现大量标识为deleted的数据后,使得行组中的行数已经远远低于预设行组划分阈值,都可以及时更新列存储中的列存储索引,从而提高列存储的效率,并且可以防止数据库列存储表中的数据一直未被删除或修改时,无法触发行存储中的数据转换为列存储中的数据而导致列存储索引更新不及时的缺陷。
本发明利用数据库中对行存储表和列存储表的实时检测,统计增加、删除或修改操作带来的DeltaStore和deleted数据量,在DeltaStore数据量与列存储表中除去deleted数据量之后剩余的数据量之和达到设定行组划分阈值而SQL Server没有进行压缩重组时,自动进行索引重建来触发压缩重组,克服了由于SQL Server本身的更新机制的不及时,而导致列存储的压缩效率较低以及由此带来的空间占用开销大和查询缓慢的缺陷。
实施例2
根据本发明实施例,提供了一种更新列存储表的装置的实施例。
图2是根据本发明实施例的一种可选的更新列存储表的装置的示意图,如图2所示,该装置包括:获取单元202,用于获取数据库的列存储表中当前所删除数据的数据量和数据库的行存储表中当前所存储数据的数据量;确定单元204,用于根据获取的当前所删除数据的数据量和当前所存储数据的数据量确定是否更新列存储表中的列存储索引。
由于数据库中的统计信息表会存储元数据,如sys indexes,其中,元数据包括行数字段Rows,因此通过统计收集模块可以查询上述统计信息表,可以得到由数据库表增加、删除和修改带来的DeltaStore的数据量(即行存储表中临时存储的数据量)和Deleted数据量(即从列存储列表中删除的数据量)。另外,在数据库中统计信息表没有及时更新时,还可以通过SELECT COUNT操作,根据数据库表在增加、删除和修改操作前后的数据量对比结果,得出DeltaStore的数据量和Deleted的数据量。
与相关技术中需要在行存储表中的数据积累到预设行组划分阈值时,才会触发将行存储表中的数据分组、压缩、转存到列存储表中的操作逻辑相比,在列存储表中发生数据删除、修改操作时就触发将行存储表中的数据分组、压缩、转存到列存储表中的操作逻辑,能够有效弥补SQL Server数据库自身更新机制的缺陷,定制检测数据更新量的频次,对以列存储的数据进行压缩状态判断,进而进行压缩操作。
通过上述实施例,可以实现减小列存储响应延时的目的,从而实现了提高列存储效率的技术效果。
可选地,确定单元包括:判断模块,用于判断当前所删除数据的数据量对应的行数是否小于等于当前所存储数据的数据量对应的行数;第一更新模块,用于在判断结果为是的情况下,更新列存储表中的列存储索引。
例如,假设***记录的DeltaStore在两次运行之间的行数差为RowsDiff1=(CurrentRows1–PrevRows1),Deleted在两次运行之间的行数差为RowsDiff2=(CurrentRows2–PrevRows2),如果RowsDiff1≥RowsDiff2,则可以更新列存储表中的列存储索引,而如果RowsDiff1<RowsDiff2,则不能更新列存储表中的列存储索引。
例如,假设一个行组包括102400行,由于执行修改操作从列存储表中行组A中删除了2400行,而此时如果行存储表中临时存储了2500行数据,则可以将行存储表中临时存储2400行数据与行组A中剩余的100000行数据进行压缩和重组,以更新列存储表中的相应列存储索引;而此时如果行存储表中临时存储了2300行数据,由于2300行与100000行数据之和未达到行组的预设行阈值102400,因此无法将行存储表中临时存储2300行数据与行组A中剩余的100000行数据进行压缩和重组,从而不能触发更新列存储表中的相应列存储索引的操作。
具体地,在更新列存储表中的列存储索引时,可以调用列存储索引更新模块,列存储索引更新模块的主要作用是触发索引更新命令Rebuild。列存储索引更新模块触发索引更新,命令示例如下:ALTER INDEX index_name ON table_name REBUILD。
通过本发明实施例,可以准确地确定行存储中临时存储的数据量是否能够补充列存储中删除的数据量,进而可以及时准确地更新列存储表中的相应列存储索引。
可选地,确定单元还包括:检测模块,用于在判断当前所删除数据的数据量对应的行数是否小于等于当前所存储数据的数据量对应的行数之后,在判断结果为否的情况下,检测数据库的行存储表中累积存储数据的数据量对应的行数是否达到当前所删除数据的数据量对应的行数;第二更新模块,用于在检测结果为是的情况下,更新列存储表中的列存储索引。
也即,在判断结果为否的情况下,可以实时检测数据库的行存储表中累积存储数据的数据量对应的行数是否达到当前所删除数据的数据量对应的行数,在检测结果为是的情况下,更新列存储表中的列存储索引。
例如,假设一个行组包括102400行,由于执行修改操作从列存储表中行组A中删除了2400行,而此时如果行存储表中临时存储了2300行数据,无法将行存储表中临时存储2300行数据与行组A中剩余的100000行数据进行压缩和重组,从而不能触发更新列存储表中的相应列存储索引的操作,此时,可以在一段时间内实时检测DeltaStore的累积行数是否达到2400,若达到2400,则更新列存储表中的列存储索引。
该实施方式与等到行存储表中的数据积累到预设行组划分阈值时,才触发将行存储表中的数据分组、压缩、转存到列存储表中的操作逻辑相比,只要行存储表中的数据量积累到列存储表中发生删除操作的行组所删除的数据量即可触发更新列存储表中的列存储索引的操作,减少了列存储操作延时,使得更新更及时。
可选地,装置还包括:第一检测单元,用于在获取数据库的列存储表中当前所删除数据的数据量和数据库的行存储表中当前所存储数据的数据量之前,检测是否发生了用于删除列存储表中的数据的删除操作,其中,获取单元还用于在检测结果为是的情况下,执行获取数据库的列存储表中当前所删除数据的数据量和数据库的行存储表中当前所存储数据的数据量的功能。
通过本发明实施例,一方面,在列存储表发生数据删除操作时,可以及时更新该列存储表中的列存储索引;另一方面,可以避免由于列存储表并未发生数据删除操作而***却一直在频繁检测是否可以执行列存储索引更新操作而造成***负担加重、***资源浪费的缺陷。
可选地,装置还包括:第二检测单元,用于在检测是否发生了用于删除列存储表中的数据的删除操作之后,在检测结果为否的情况下,进一步检测数据库的行存储表中累积数据的数据量对应的行数是否达到预设行组划分阈值;更新单元,用于在检测结果达到预设行组划分阈值时,更新列存储表中的列存储索引。
通过本发明实施例,无论是新增数据在DeltaStore中的行数超过预设行组划分阈值时,还是在列存储表由于执行了更新Update操作或删除Delete操作而导致出现大量标识为deleted的数据后,使得行组中的行数已经远远低于预设行组划分阈值,都可以及时更新列存储中的列存储索引,从而提高列存储的效率,并且可以防止数据库列存储表中的数据一直未被删除或修改时,无法触发行存储中的数据转换为列存储中的数据而导致列存储索引更新不及时的缺陷。
本发明利用数据库中对行存储表和列存储表的实时检测,统计增加、删除或修改操作带来的DeltaStore和deleted数据量,在DeltaStore数据量与列存储表中除去deleted数据量之后剩余的数据量之和达到设定行组划分阈值而SQL Server没有进行压缩重组时,自动进行索引重建来触发压缩重组,克服了由于SQL Server本身的更新机制的不及时,而导致列存储的压缩效率较低以及由此带来的空间占用开销大和查询缓慢的缺陷。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种更新列存储表的方法,其特征在于,包括:
获取数据库的列存储表中当前所删除数据的数据量和所述数据库的行存储表中当前所存储数据的数据量,其中,所述行存储表为临时行存储表;
根据获取的所述当前所删除数据的数据量和所述当前所存储数据的数据量确定是否更新所述列存储表中的列存储索引。
2.根据权利要求1所述的方法,其特征在于,根据获取的所述当前所删除数据的数据量和所述当前所存储数据的数据量确定是否更新所述列存储表中的列存储索引包括:
判断所述当前所删除数据的数据量对应的行数是否小于等于所述当前所存储数据的数据量对应的行数;
在判断结果为是的情况下,更新所述列存储表中的所述列存储索引。
3.根据权利要求2所述的方法,其特征在于,在判断所述当前所删除数据的数据量对应的行数是否小于等于所述当前所存储数据的数据量对应的行数之后,所述方法还包括:
在判断结果为否的情况下,检测所述数据库的所述行存储表中累积存储数据的数据量对应的行数是否达到所述当前所删除数据的数据量对应的行数;
在检测结果为是的情况下,更新所述列存储表中的所述列存储索引。
4.根据权利要求1所述的方法,其特征在于,在获取数据库的列存储表中当前所删除数据的数据量和所述数据库的行存储表中当前所存储数据的数据量之前,所述方法还包括:
检测是否发生了用于删除所述列存储表中的数据的删除操作,
其中,在检测结果为是的情况下,执行获取数据库的列存储表中当前所删除数据的数据量和所述数据库的行存储表中当前所存储数据的数据量的步骤。
5.根据权利要求4所述的方法,其特征在于,在检测是否发生了用于删除所述列存储表中的数据的删除操作之后,所述方法还包括:
在检测结果为否的情况下,进一步检测所述数据库的所述行存储表中累积数据的数据量对应的行数是否达到预设行组划分阈值;
在检测结果达到所述预设行组划分阈值时,更新所述列存储表中的列存储索引。
6.一种更新列存储表的装置,其特征在于,包括:
获取单元,用于获取数据库的列存储表中当前所删除数据的数据量和所述数据库的行存储表中当前所存储数据的数据量,其中,所述行存储表为临时行存储表;
确定单元,用于根据获取的所述当前所删除数据的数据量和所述当前所存储数据的数据量确定是否更新所述列存储表中的列存储索引。
7.根据权利要求6所述的装置,其特征在于,所述确定单元包括:
判断模块,用于判断所述当前所删除数据的数据量对应的行数是否小于等于所述当前所存储数据的数据量对应的行数;
第一更新模块,用于在判断结果为是的情况下,更新所述列存储表中的所述列存储索引。
8.根据权利要求7所述的装置,其特征在于,所述确定单元还包括:
检测模块,用于在判断所述当前所删除数据的数据量对应的行数是否小于等于所述当前所存储数据的数据量对应的行数之后,在判断结果为否的情况下,检测所述数据库的所述行存储表中累积存储数据的数据量对应的行数是否达到所述当前所删除数据的数据量对应的行数;
第二更新模块,用于在检测结果为是的情况下,更新所述列存储表中的所述列存储索引。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一检测单元,用于在获取数据库的列存储表中当前所删除数据的数据量和所述数据库的行存储表中当前所存储数据的数据量之前,检测是否发生了用于删除所述列存储表中的数据的删除操作,
其中,所述获取单元还用于在检测结果为是的情况下,执行获取数据库的列存储表中当前所删除数据的数据量和所述数据库的行存储表中当前所存储数据的数据量的功能。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二检测单元,用于在检测是否发生了用于删除所述列存储表中的数据的删除操作之后,在检测结果为否的情况下,进一步检测所述数据库的所述行存储表中累积数据的数据量对应的行数是否达到预设行组划分阈值;
更新单元,用于在检测结果达到所述预设行组划分阈值时,更新所述列存储表中的列存储索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510624998.7A CN106557494B (zh) | 2015-09-25 | 2015-09-25 | 更新列存储表的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510624998.7A CN106557494B (zh) | 2015-09-25 | 2015-09-25 | 更新列存储表的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106557494A CN106557494A (zh) | 2017-04-05 |
CN106557494B true CN106557494B (zh) | 2019-09-20 |
Family
ID=58415384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510624998.7A Active CN106557494B (zh) | 2015-09-25 | 2015-09-25 | 更新列存储表的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106557494B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019191A (zh) * | 2017-09-21 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据库信息处理方法及装置 |
CN108959587B (zh) * | 2018-07-10 | 2021-03-02 | 上海达梦数据库有限公司 | 基于列存储的数据更新方法、装置、服务器及存储介质 |
CN108875077B (zh) * | 2018-07-10 | 2021-02-09 | 上海达梦数据库有限公司 | 数据库的列存储方法、装置、服务器及存储介质 |
CN108984719B (zh) * | 2018-07-10 | 2021-08-03 | 上海达梦数据库有限公司 | 基于列存储的数据删除方法、装置、服务器及存储介质 |
CN110755063B (zh) * | 2018-10-06 | 2023-06-02 | 江苏创越医疗科技有限公司 | 低延迟的心电图绘制方法 |
CN111291037A (zh) * | 2018-11-22 | 2020-06-16 | ***通信集团重庆有限公司 | 一种数据存储和查询方法、装置、设备及计算机存储介质 |
CN110515963A (zh) * | 2019-08-30 | 2019-11-29 | 北京东软望海科技有限公司 | 收集统计信息的方法、装置、电子设备及可读存储介质 |
CN113901069B (zh) * | 2021-12-08 | 2022-03-15 | 威讯柏睿数据科技(北京)有限公司 | 一种分布式数据库的数据存储方法和装置 |
CN114398378B (zh) * | 2022-03-25 | 2022-11-01 | 北京奥星贝斯科技有限公司 | 确定索引代价的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | ***通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与*** |
CN102737132A (zh) * | 2012-06-25 | 2012-10-17 | 天津神舟通用数据技术有限公司 | 基于数据库行列混合存储的多规则复合压缩方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195657B2 (en) * | 2010-03-08 | 2015-11-24 | Microsoft Technology Licensing, Llc | Columnar storage of a database index |
-
2015
- 2015-09-25 CN CN201510624998.7A patent/CN106557494B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | ***通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与*** |
CN102737132A (zh) * | 2012-06-25 | 2012-10-17 | 天津神舟通用数据技术有限公司 | 基于数据库行列混合存储的多规则复合压缩方法 |
Non-Patent Citations (1)
Title |
---|
SQL Server 2014 可更新聚集列存储索引;宋沄剑;《http://tech.it168.com/a2014/0518/1624/000001624387_all.shtml》;20140523;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106557494A (zh) | 2017-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106557494B (zh) | 更新列存储表的方法及装置 | |
CN110609865B (zh) | 一种信息同步方法,装置及*** | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
US20180285947A1 (en) | Method and system for determining quality of application based on user behaviors of application management | |
US11579208B2 (en) | Method, apparatus and device for evaluating the state of a distribution transformer, and a medium and a program | |
CN109445768B (zh) | 数据库脚本生成方法、装置、计算机设备及存储介质 | |
CN106933927B (zh) | 数据表的连接方法和装置 | |
CN109360605A (zh) | 基因组测序数据归档方法、服务器及计算机可读存储介质 | |
CN110007967A (zh) | 一种基于流式框架的数据处理方法、装置及设备 | |
CN106649385B (zh) | 基于HBase数据库的数据排序方法和装置 | |
CN112784025B (zh) | 一种目标事件的确定方法和装置 | |
CN104794234B (zh) | 用于同业对标的数据处理方法和装置 | |
CN114281260A (zh) | 应用于分布式存储***的存储方法、装置、设备及介质 | |
CN105653556B (zh) | 一种数据老化方法及装置 | |
CN109299132B (zh) | Sql数据处理方法、***以及电子设备 | |
CN109413166A (zh) | 一种工业网关及其数据管理方法 | |
CN106504298B (zh) | 曲线绘制方法及装置 | |
CN108228759B (zh) | 记录集的存储处理方法、装置、计算机设备和存储介质 | |
CN111258968A (zh) | 企业冗余数据清理方法、装置及大数据平台 | |
CN104462422A (zh) | 对象的处理方法及装置 | |
CN116010479A (zh) | 针对慢查询语句的处理方法及相关设备 | |
KR102357475B1 (ko) | 개선된 gbtd 알고리즘을 이용한 에너지 절도 검출 시스템 및 방법 | |
EP2953266A1 (en) | Data compression device, data compression method, and program | |
CN107205028A (zh) | 一种服务分类方法及装置 | |
CN103995851B (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 | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |