一种表空间移动方法、装置、设备及存储介质与流程

阅读: 评论:0



1.本发明实施例涉及数据库技术领域,尤其涉及一种表空间移动方法、装置、设备及存储介质。


背景技术:



2.数据库系统中,数据储存在数据表中,数据表存储在表空间中。
3.实际应用场景中,出于数据管理的需求,有时需要将整张表或是表的某个分区移动到指定的表空间上。
4.现有技术中,一般是在新的表空间上重新建一张表或是新增一个分区,再将数据转移到新表或新分区上,但是该方案存在以下问题:
5.直接创建新对象无法与原对象同名,后续要额外进行重命名操作。
6.创建的新对象id发生了变化,如果以id为条件在系统表中查询,则无法看到原数据表。
7.如果是移动分区,创建新分区转移数据时,将原分区上的数据插入新分区可能会触发主表上的unique约束冲突,这种情况下若想正常转移数据,还需要借助中间表额外进行一次数据查询插入的操作。


技术实现要素:



8.本发明实施例提供一种表空间移动方法、装置、设备及存储介质,通过基于数据字典交换进行表空间移动解决上述问题,能够提升表空间移动的效率,并降低表空间移动的复杂度。
9.根据本发明的一方面,提供了一种表空间移动方法,包括:
10.获取用户输入的表空间移动语句,其中,所述表空间语句为将目标表移动至目标表空间的数据库语句;
11.根据所述目标表在所述目标表空间中构造中间表,其中,所述中间表与所述目标表的依赖对象的定义相同,且所述中间表与所述目标表的结构相同;
12.将所述目标表和所述中间表进行数据字典交换;
13.将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中。
14.根据本发明的另一方面,提供了一种表空间移动装置,该表空间移动装置包括:
15.获取模块,用于获取用户输入的表空间移动语句,其中,所述表空间语句为将目标表移动至目标表空间的数据库语句;
16.构造模块,用于根据所述目标表在所述目标表空间中构造中间表,其中,所述中间表与所述目标表的依赖对象的定义相同,且所述中间表与所述目标表的结构相同;
17.交换模块,用于将所述目标表和所述中间表进行数据字典交换;
18.迁移模块,用于将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中。
19.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
20.至少一个处理器;以及
21.与所述至少一个处理器通信连接的存储器;其中,
22.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的表空间移动方法。
23.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的表空间移动方法。
24.本发明实施例通过获取用户输入的表空间移动语句,其中,所述表空间语句为将目标表移动至目标表空间的数据库语句;根据所述目标表在所述目标表空间中构造中间表,其中,所述中间表与所述目标表的依赖对象的定义相同,且所述中间表与所述目标表的结构相同;将所述目标表和所述中间表进行数据字典交换;将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中,能够提升表空间移动的效率,并降低表空间移动的复杂度。
25.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
26.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
27.图1是本发明实施例中的一种表空间移动方法的流程图;
28.图2是本发明实施例中的构建中间表的示意图;
29.图3是本发明实施例中的目标表和中间表进行数据字典交换的图示;
30.图4是本发明实施例中的一种表空间移动装置的结构示意图;
31.图5是本发明实施例中的一种电子设备的结构示意图。
具体实施方式
32.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
33.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
34.实施例一
35.图1为本发明实施例提供的一种表空间移动方法的流程图,本实施例可适用于表空间移动的情况,该方法可以由本发明实施例中的表空间移动装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
36.s110,获取用户输入的表空间移动语句。
37.其中,所述表空间语句为将目标表移动至目标表空间的数据库语句。
38.其中,所述目标表可以为分区表,也可以为非分区表。所述目标表空间用于存储目标表。
39.s120,根据所述目标表在所述目标表空间中构造中间表。
40.其中,所述中间表与所述目标表的依赖对象的定义相同,例如可以是,中间表与目标表的索引对象、约束对象以及触发器对象的定义均相同。中间表与目标表的结构相同。
41.其中,所述中间表与所述目标表的结构相同,例如可以是,若目标表为分区表,则中间表为分区表,若目标表非分区表,则中间表非分区表。
42.其中,所述中间表与所述目标表的索引对象、约束对象以及触发器对象的定义均相同,也就是说,若目标表存在索引对象、约束对象以及触发器对象,则中间表也存在索引对象、约束对象以及触发器对象。中间表上的索引对象、约束对象、触发器对象与目标表上的对象一一对应。
43.具体的,根据所述目标表在所述目标表空间中构造中间表的方式可以为:若目标表包括:待移动表,待移动表没有子表,则根据待移动表的结构和待移动表的索引对象、约束对象以及触发器对象的定义构建中间表。根据所述目标表在所述目标表空间中构造中间表的方式还可以为:若目标表包括:待移动表和所述待移动表的子表,则根据待移动表的结构和待移动表的索引对象、约束对象以及触发器对象的定义构建待移动表对应的第一表,根据待移动表的子表的结构和待移动表的子表的索引对象、约束对象以及触发器对象的定义构建待移动表的子表对应的第二表。需要说明的是,若目标表为分区表,可能有很多层,则需要获取分区表对应的中间表,以及每一层对应的中间表,例如可以是,若目标表包括3层,则中间表也包括3层。
44.在一个具体的例子中,创建的中间表是普通表还是分区表由目标表是否包括子表决定。具体的,如果目标表是普通表(普通表是指非分区表),或是分区表的一个叶子层分区,那么构造出的中间表也是一个普通表。如果目标表是整个分区表,或是分区表的中间层分区,那么构造出的中间表也是一个分区表,其分区类型、分区列、分区范围值均与被移动对象保持一致。除表结构外,中间表上的索引对象、约束对象、触发器对象也应与目标表上的对象一一对应。
45.s130,将所述目标表和所述中间表进行数据字典交换。
46.数据库对象包括表、视图、索引、触发器等。每一种数据库对象都包含两部分内容:字典信息和数据。字典信息为数据库对象的元数据,是描述数据库对象的数据。数据库的元数据存储在系统表中,这些元数据描述了数据库对象的名称、属性、结构、对象之间的依赖
关系等信息。
47.如果移动的是整张表,则需交换该表相关的全部字典信息;如果移动的分区表的某一个分区,则只需交换分区相关的字典信息;如果移动的是表上的索引、约束、触发器等,也只需交换索引、约束、触发器等相关的字典信息。后两种因为交换的是该数据库对象全部字典信息中的一部分,因此下文称为部分元数据。
48.下面分别介绍索引和索引组织表时,数据字典的交换情况。
49.对于索引对象来说,索引的元数据描述了索引的名称、键、索引类型、索引的数据页根地址、索引的父对象id等等信息。
50.数据字典交换,就是将两个数据库对象的部分元数据(只需索引相关的元数据即可)进行交换,以达到使某一个对象取代另一个对象的目的。例如,现有表t1和表t2,表t1上有索引i1,表t2上有索引i2,对索引i1和i2的名称、父对象id进行交换,而索引对应的数据页根地址信息保持不变,那么在交换完成后,再次访问t1表的索引i1时,访问到对应的数据页就是原本索引i2对应的数据页。
51.对于索引组织表,如果将表上的所有索引都与另一张表对应的索引进行数据字典交换,那么表上的数据也就完成了一次互换。一次整张表上所有索引的字典交换,表观上看起来就是两张表完成了一次数据和存储属性的互换。
52.具体的,将所述目标表和所述中间表进行数据字典交换的方式可以为:若所述目标表包括:待移动表和所述待移动表的子表,所述中间表包括:和所述待移动表对应的第一表和所述待移动表的子表对应的第二表。则将所述待移动表和所述第一表进行数据字典交换;将所述待移动表的子表和所述第二表进行数据字典交换。将所述目标表和所述中间表进行数据字典交换的方式还可以为:若目标表不包括子表,则将目标表中的索引与中间表中的索引进行数据字典交换。
53.s140,将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中。
54.具体的,将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中的方式可以为:查询数据字典交换后的中间表,得到查询结果;将所述查询结果插入数据字典交换后的目标表中。
55.可选的,根据所述目标表在所述目标表空间中构造中间表,包括:
56.若所述目标表和所述目标表空间均存在,且所述目标表类型非目标类型,则根据所述目标表在所述目标表空间中构造中间表。
57.需要说明的是,在获取到用户输入的表空间移动语句后,需要对表空间移动语句进行有效性检查,若表空间移动语句不支持移动,则报错退出。例如可以是,若满足如下任一条件,则确定表空间移动语句不支持移动:
58.目标表不存在;
59.目标表空间不存在;
60.目标表类型为目标类型。
61.其中,所述目标类型可以为预设表类型,例如可以是,若目标表为系统表或者临时表,则确定表空间移动语句不支持移动。
62.可选的,所述目标表包括:待移动表和所述待移动表的子表,所述中间表包括:所述待移动表对应的第一表和所述待移动表的子表对应的第二表;
63.将所述目标表和所述中间表进行数据字典交换,包括:
64.将所述待移动表和所述第一表进行数据字典交换;
65.将所述待移动表的子表和所述第二表进行数据字典交换。
66.其中,所述第一表为根据所述待移动表构建的中间表,所述第二表为根据待移动表的子表构建的中间表。
67.在一个具体的例子中,如图2所示,若目标表为分区表t1的p2分区表,则根据表p2和表p2的子表(表s2和表s3)构建中间表,中间表包括:表tmp、表s2_tmp以及表s3_tmp。如图3所示,将表p2和表tmp进行数据字典交换,将表s2和表s2_tmp进行数据字典交换,将表s3和表s3_tmp进行数据字典交换。
68.可选的,将所述目标表和所述中间表进行数据字典交换,包括:
69.将所述目标表中的索引与所述中间表中的索引进行数据字典交换。
70.需要说明的是,将所述目标表中的索引与所述中间表中的索引进行数据字典交换的方式可以为:将所述目标表中的所有索引的名称和索引的父对象id与所述中间表中的全部索引的名称和索引的父对象id进行交换,目标表中所有索引对应的数据页跟地址信息和所述中间表中所有索引对应的数据页跟地址信息保持不变。
71.可选的,将所述目标表中的索引与所述中间表中的索引进行数据字典交换,包括:
72.将所述目标表中索引的名称和索引的父对象id与所述中间表中的索引的名称和索引的父对象id进行交换,目标表中索引对应的数据页跟地址信息和所述中间表中索引对应的数据页跟地址信息保持不变。
73.在一个具体的例子中,若表p2上有索引i1和索引i2,表tmp上有索引i3和索引i4,则将索引i1和索引i3的索引的名称和索引的父对象id进行交换,索引对应的数据页跟地址信息不变;将索引i2和索引i4的索引的名称和索引的父对象id进行交换,索引对应的数据页跟地址信息不变。表s2上有索引i5和索引i6,表s2_tmp上有索引i7和索引i8,则将索引i5和索引i7的索引的名称和索引的父对象id进行交换,索引对应的数据页跟地址信息不变;将索引i6和索引i8的索引的名称和索引的父对象id进行交换,索引对应的数据页跟地址信息不变。表s3上有索引i9和索引i10,表s3_tmp上有索引i11和索引i12,则将索引i9和索引i11的索引的名称和索引的父对象id进行交换,索引对应的数据页跟地址信息不变;将索引i10和索引i12的索引的名称和索引的父对象id进行交换,索引对应的数据页跟地址信息不变。
74.可选的,将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中,包括:
75.查询数据字典交换后的中间表,得到查询结果;
76.将所述查询结果插入数据字典交换后的目标表中。
77.需要说明的是,目标表上的所有数据在经过上一步数据字典交换后,变成了归属于中间表的数据,而数据字典交换后的目标表则变成了在目标表空间上的一个空表。这时执行一次从数据字典交换后的中间表到数据字典交换后的目标表上的查询插入,即可完成数据在目标表空间上的迁移。
78.可选的,还包括:
79.删除数据字典交换后的中间表。
80.在一个具体的例子中,本发明实施例中将表或表的分区移动到指定表空间包括如下步骤:
81.步骤1.对用户输入的表空间移动语句进行有效性检查。如果不支持移动,报错退出,否则跳转到步骤2。步骤2.根据目标表在目标表空间中构造出一个同构的中间表tmp。若因内存不足等原因创建失败,报错退出,否则跳转到步骤3。步骤3.将目标表逐个与中间表上对应的对象一一进行数据字典交换。表的名称不需要交换,因为只换了表上的索引。若执行失败,报错退出,否则跳转到步骤4。步骤4.数据移动。具体执行一次从数据字典交换后的中间表到数据字典交换后的目标表上的查询插入,即通过查询获取一份数据字典交换后的中间表的数据插入到数据字典交换后的目标表中。若执行失败,报错退出,否则跳转到步骤5。步骤5.删除数据字典交换后的中间表tmp,完成迁移。
82.本实施例的技术方案,通过获取用户输入的表空间移动语句,其中,所述表空间语句为将目标表移动至目标表空间的数据库语句;根据所述目标表在所述目标表空间中构造中间表,其中,所述中间表与所述目标表的依赖对象的定义均相同,且所述中间表与所述目标表的结构相同;将所述目标表和所述中间表进行数据字典交换,能够提升表空间移动的效率,并降低表空间移动的复杂度。
83.实施例二
84.图4为本发明实施例提供的一种表空间移动装置的结构示意图。本实施例可适用于表空间移动的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供表空间移动功能的设备中,如图4所示,所述表空间移动装置具体包括:获取模块210、构造模块220、交换模块230和迁移模块240。
85.其中,获取模块,用于获取用户输入的表空间移动语句,其中,所述表空间语句为将目标表移动至目标表空间的数据库语句;
86.构造模块,用于根据所述目标表在所述目标表空间中构造中间表,其中,所述中间表与所述目标表的依赖对象的定义均相同,且所述中间表与所述目标表的结构相同;
87.交换模块,用于将所述目标表和所述中间表进行数据字典交换;
88.迁移模块,用于将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中。
89.可选的,所述构造模块具体用于:
90.若所述目标表和所述目标表空间均存在,且所述目标表类型非目标类型,则根据所述目标表在所述目标表空间中构造中间表。
91.可选的,所述目标表包括:待移动表和所述待移动表的子表,所述中间表包括:所述待移动表对应的第一表和所述待移动表的子表对应的第二表;
92.所述交换模块具体用于:
93.将所述待移动表和所述第一表进行数据字典交换;
94.将所述待移动表的子表和所述第二表进行数据字典交换。
95.可选的,所述交换模块具体用于:
96.将所述目标表中的索引与所述中间表中的索引进行数据字典交换。
97.可选的,所述交换模块具体用于:
98.将所述目标表中索引的名称和索引的父对象id与所述中间表中的索引的名称和
索引的父对象id进行交换,目标表中索引对应的数据页跟地址信息和所述中间表中索引对应的数据页跟地址信息保持不变。
99.可选的,所述迁移模块具体用于:
100.查询数据字典交换后的中间表,得到查询结果;
101.将所述查询结果插入数据字典交换后的目标表中。
102.可选的,还包括:
103.删除模块,用于删除数据字典交换后的中间表。
104.上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
105.实施例三
106.图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
107.如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
108.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
109.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如表空间移动方法。
110.在一些实施例中,表空间移动方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的表空间移动方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行表空间移动方法。
111.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统
的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
112.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
113.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
114.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
115.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
116.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
117.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只
要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
118.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术特征:


1.一种表空间移动方法,其特征在于,包括:获取用户输入的表空间移动语句,其中,所述表空间语句为将目标表移动至目标表空间的数据库语句;根据所述目标表在所述目标表空间中构造中间表,其中,所述中间表与所述目标表的依赖对象的定义相同,且所述中间表与所述目标表的结构相同;将所述目标表和所述中间表进行数据字典交换;将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中。2.根据权利要求1所述的方法,其特征在于,根据所述目标表在所述目标表空间中构造中间表,包括:若所述目标表和所述目标表空间均存在,且所述目标表类型非目标类型,则根据所述目标表在所述目标表空间中构造中间表。3.根据权利要求1所述的方法,其特征在于,所述目标表包括:待移动表和所述待移动表的子表,所述中间表包括:所述待移动表对应的第一表和所述待移动表的子表对应的第二表;将所述目标表和所述中间表进行数据字典交换,包括:将所述待移动表和所述第一表进行数据字典交换;将所述待移动表的子表和所述第二表进行数据字典交换。4.根据权利要求1所述的方法,其特征在于,将所述目标表和所述中间表进行数据字典交换,包括:将所述目标表中的索引与所述中间表中的索引进行数据字典交换。5.根据权利要求4所述的方法,其特征在于,将所述目标表中的索引与所述中间表中的索引进行数据字典交换,包括:将所述目标表中索引的名称和索引的父对象id与所述中间表中的索引的名称和索引的父对象id进行交换,目标表中索引对应的数据页跟地址信息和所述中间表中索引对应的数据页跟地址信息保持不变。6.根据权利要求1所述的方法,其特征在于,将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中,包括:查询数据字典交换后的中间表,得到查询结果;将所述查询结果插入数据字典交换后的目标表中。7.根据权利要求1所述的方法,其特征在于,还包括:删除数据字典交换后的中间表。8.一种表空间移动装置,其特征在于,包括:获取模块,用于获取用户输入的表空间移动语句,其中,所述表空间语句为将目标表移动至目标表空间的数据库语句;构造模块,用于根据所述目标表在所述目标表空间中构造中间表,其中,所述中间表与所述目标表的依赖对象的定义相同,且所述中间表与所述目标表的结构相同;交换模块,用于将所述目标表和所述中间表进行数据字典交换;迁移模块,用于将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中。
9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的表空间移动方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的表空间移动方法。

技术总结


本发明公开了一种表空间移动方法、装置、设备及存储介质。该方法包括:获取用户输入的表空间移动语句,其中,所述表空间语句为将目标表移动至目标表空间的数据库语句;根据所述目标表在所述目标表空间中构造中间表,其中,所述中间表与所述目标表的依赖对象的定义相同,且所述中间表与所述目标表的结构相同;将所述目标表和所述中间表进行数据字典交换;将数据字典交换后的中间表中的数据迁移至数据字典交换后的目标表中,通过本发明的技术方案,能够提升表空间移动的效率,并降低表空间移动的复杂度。移动的复杂度。移动的复杂度。


技术研发人员:

朱仲颖 孟正凌 韩朱忠

受保护的技术使用者:

上海达梦数据库有限公司

技术研发日:

2022.10.19

技术公布日:

2022/12/23

本文发布于:2022-12-24 18:19:15,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/44679.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   目标   数据   索引
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图