CN115129712A - 基于Oracle数据库的分区快速创建方法及系统 - Google Patents
基于Oracle数据库的分区快速创建方法及系统 Download PDFInfo
- Publication number
- CN115129712A CN115129712A CN202210652046.6A CN202210652046A CN115129712A CN 115129712 A CN115129712 A CN 115129712A CN 202210652046 A CN202210652046 A CN 202210652046A CN 115129712 A CN115129712 A CN 115129712A
- Authority
- CN
- China
- Prior art keywords
- partition
- year
- data table
- oracle database
- information
- 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.)
- Pending
Links
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Oracle数据库的分区快速创建方法及系统,方法包括:创建临时数据表,并在临时数据表中预设所需字段;根据Oracle数据库的系统表,提取当前年份的所有分区信息,并插入临时数据表;根据临时数据表中的信息拼装得到分区创建SQL语句,并将分区创建SQL语句中的当前年份的年月信息替换为下一年份的年月信息,形成可执行SQL语句;根据可执行SQL语句分析得到创建分区所需的空间,并与Oracle数据库的剩余空间进行比较;在判定Oracle数据库的剩余空间足够创建分区时,执行可执行SQL语句,完成下一年份数据表的分区创建。通过本发明的技术方案,能够实现定期、快速、准确创建数据分区,从而保证系统稳定运行。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种基于Oracle数据库的分区快速创建方法以及一种基于Oracle数据库的分区快速创建系统。
背景技术
电信行业目前核心数据存放,使用oracle数据库仍占比较大,对于数据库中几百万或上千万的流水表来说,oracle给出的建议是做表分区管理(相比创建年月分表来说,创建表分区可以减少数据库对象的数量,方便管理)。因创建的分区会占用资源,故通常按年来创建未来年月分区来保证系统使用,由此形成了每年12月或1月开始批量创建未来1年系统要使用表分区的例行任务。
在现有技术中,部门通常是一个个获取建表脚本,根据其当年的分区语句,修改为alter可执行语句,并将分区替换为下一年的分区,然后到数据库中执行。按该方法,通常需要投入至少5人参与脚本编写(每人平均2000+条语句),耗时3小时以上。
发明内容
针对上述问题,本发明提供了一种基于Oracle数据库的分区快速创建方法及系统,通过将Oracle数据库中已有系统表的分区信息插入预设的临时数据表,拼装得到分区创建SQL语句并对SQL语句替换分区创建信息,利用形成的可执行SQL语句进行分区创建,能够实现定期、快速、准确创建数据分区,从而保证系统稳定运行。
为实现上述目的,本发明提供了一种基于Oracle数据库的分区快速创建方法,包括:
创建临时数据表,并在所述临时数据表中预设所需字段;
根据Oracle数据库的系统表,提取当前年份的所有分区信息,并插入所述临时数据表;
根据所述临时数据表中的信息拼装得到分区创建SQL语句,并将所述分区创建SQL语句中的当前年份的年月信息替换为下一年份的年月信息,形成可执行SQL语句;
根据所述可执行SQL语句分析得到创建分区所需的空间,并与所述Oracle数据库的剩余空间进行比较;
在判定所述Oracle数据库的剩余空间足够创建分区时,执行所述可执行SQL语句,完成下一年份数据表的分区创建。
在上述技术方案中,优选地,基于Oracle数据库的分区快速创建方法还包括:
抽取所述系统表中散列的年月信息标签,并核查所创建的下一年份数据表中年月信息是否创建完全。
在上述技术方案中,优选地,基于Oracle数据库的分区快速创建方法还包括:
检查所创建的下一年份数据表中索引状态,以分析是否存在因分区创建导致的索引失效,若有,则执行索引重建。
在上述技术方案中,优选地,所述分区信息包括一维分区和二维分区方式,一维分区方式为按照年月分区,二维分区方式包括两种,一种为一维分区为区域范围、二维分区为年月分区,另一种为一维分区为年月分区、二维分区为区域范围或哈希值。
在上述技术方案中,优选地,在创建临时数据表之前,确认操作用户针对所述Oracle数据库的用户权限。
本发明还提出一种基于Oracle数据库的分区快速创建系统,应用如上述技术方案中任一项公开的基于Oracle数据库的分区快速创建方法,包括:
临时数表创建模块,用于创建临时数据表,并在所述临时数据表中预设所需字段;
系统数表提取模块,用于根据Oracle数据库的系统表,提取当前年份的所有分区信息,并插入所述临时数据表;
语句拼装替换模块,用于根据所述临时数据表中的信息拼装得到分区创建SQL语句,并将所述分区创建SQL语句中的当前年份的年月信息替换为下一年份的年月信息,形成可执行SQL语句;
分区空间判断模块,用于根据所述可执行SQL语句分析得到创建分区所需的空间,并与所述Oracle数据库的剩余空间进行比较;
数据分区创建模块,用于在判定所述Oracle数据库的剩余空间足够创建分区时,执行所述可执行SQL语句,完成下一年份数据表的分区创建。
在上述技术方案中,优选地,基于Oracle数据库的分区快速创建系统还包括信息完全核查模块,用于抽取所述系统表中散列的年月信息标签,并核查所创建的下一年份数据表中年月信息是否创建完全。
在上述技术方案中,优选地,基于Oracle数据库的分区快速创建系统还包括索引失效检查模块,用于检查所创建的下一年份数据表中索引状态,以分析是否存在因分区创建导致的索引失效,若有,则执行索引重建。
在上述技术方案中,优选地,所述分区信息包括一维分区和二维分区方式,一维分区方式为按照年月分区,二维分区方式包括两种,一种为一维分区为区域范围、二维分区为年月分区,另一种为一维分区为年月分区、二维分区为区域范围或哈希值。
在上述技术方案中,优选地,在所述临时数表创建模块创建临时数据表之前,确认操作用户针对所述Oracle数据库的用户权限。
与现有技术相比,本发明的有益效果为:通过将Oracle数据库中已有系统表的分区信息插入预设的临时数据表,拼装得到分区创建SQL语句并对SQL语句替换分区创建信息,利用形成的可执行SQL语句进行分区创建,能够实现定期、快速、准确创建数据分区,从而保证系统稳定运行。
附图说明
图1为本发明一种实施例公开的基于Oracle数据库的分区快速创建方法的流程示意图;
图2为本发明一种实施例公开的基于Oracle数据库的分区快速创建方法的逻辑示意图;
图3为本发明一种实施例公开的基于Oracle数据库的分区快速创建系统的模块示意图。
图中,各组件与附图标记之间的对应关系为:
11.临时数表创建模块,12.系统数表提取模块,13.语句拼装替换模块,14.分区空间判断模块,15.数据分区创建模块,16.信息完全核查模块,17.索引失效检查模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1和图2所示,根据本发明提供的一种基于Oracle数据库的分区快速创建方法,包括:
创建临时数据表,并在临时数据表中预设所需字段;
根据Oracle数据库的系统表,提取当前年份的所有分区信息,并插入临时数据表;
根据临时数据表中的信息拼装得到分区创建SQL语句,并将分区创建SQL语句中的当前年份的年月信息替换为下一年份的年月信息,形成可执行SQL语句;
根据可执行SQL语句分析得到创建分区所需的空间,并与Oracle数据库的剩余空间进行比较;
在判定Oracle数据库的剩余空间足够创建分区时,执行可执行SQL语句,完成下一年份数据表的分区创建。
在该实施方式中,通过将Oracle数据库中已有系统表的分区信息插入预设的临时数据表,拼装得到分区创建SQL语句并对SQL语句替换分区创建信息,利用形成的可执行SQL语句进行分区创建,能够实现定期、快速、准确创建数据分区,从而保证系统稳定运行。
具体地,在上述实施方式中,分区信息优选包括一维分区和二维分区方式,一维分区方式为按照年月分区,二维分区方式包括两种,一种为一维分区为区域范围、二维分区为年月分区,另一种为一维分区为年月分区、二维分区为区域范围或哈希值。
针对上述三种分区方式,分3种类型场景,快速形成对应的可执行sql语句:
场景A:一维分区表,按年月分区;
场景B:二维分区表,一维分区为range(通常为地市或其他可枚举的标识),二维分区为年月分区;
场景C:二维分区表,一维分区为年月分区,二维分区为range或hash。
具体地,对于场景A,首先创建一张临时数据表tab_part,表中含字段“表属主”、“表名”、“分区名”、“分区值(high_value)”、“表空间名”;然后通过系统表all_tab_partitions提取当前年份的所有年月分区信息,插入临时数据表tab_part;接下来通过临时数据表tab_part中的信息,开始拼装年月分区创建SQL语句;最后将分区创建SQL语句中的“当前年份的年月信息”替换为“下一年的年月信息”,形成可执行SQL语句。
对于场景B,首先创建一张临时数据表tab_subpart,表中含字段“表属主”、“表名”、“分区名”、“子分区名”、“分区值(high_value)”、“表空间名”;然后通过系统表all_tab_subpartitions提取当前年份的所有年月分区信息,插入临时数据表tab_subpart;接下来通过临时数据表tab_subpart中的信息,开始拼装二维分区创建SQL语句;最后将分区创建SQL语句中的“当前年份的年月信息”替换为“下一年的年月信息”,形成可执行SQL语句。
对于场景C,首先导出对应表的建表语句;找到建表语句中“当前年份”的年月分区语句段(partition xxx....),添加alter table“owner.table_name”add(alter是数据库SQL语言的修改语句,可以用来修改基本表)形成分区创建SQL语句;最后将分区创建SQL语句中的“当前年份的年月信息”替换为“下一年的年月信息”,形成可执行SQL语句。
根据上述可执行SQL语句的量,计算创建分区所需的表空间大小,并与Oracle数据库中表空间剩余量比较,保证有足够的表空间来创建分区。在此基础上执行上述可执行SQL语句,完成分区创建。
在上述实施方式中,优选地,基于Oracle数据库的分区快速创建方法还包括:
抽取系统表all_tab_partitions或all_tab_subpartitions中散列的年月信息标签(1个当前年份的年月标签、3个未来的年月标签),并核查所创建的下一年份数据表中年月信息是否创建完全。
在上述实施方式中,优选地,基于Oracle数据库的分区快速创建方法还包括:
通过系统表all_indexes、all_ind_partitions、all_ind_subpartitions,检查所创建的下一年份数据表中索引状态,以分析是否存在因分区创建导致的索引失效,若有,则执行索引重建。
在上述实施方式中,优选地,在创建临时数据表之前,确认操作用户针对Oracle数据库的用户权限。
如图3所示,本发明还提出一种基于Oracle数据库的分区快速创建系统,应用如上述实施方式中任一项公开的基于Oracle数据库的分区快速创建方法,包括:
临时数表创建模块11,用于创建临时数据表,并在临时数据表中预设所需字段;
系统数表提取模块12,用于根据Oracle数据库的系统表,提取当前年份的所有分区信息,并插入临时数据表;
语句拼装替换模块13,用于根据临时数据表中的信息拼装得到分区创建SQL语句,并将分区创建SQL语句中的当前年份的年月信息替换为下一年份的年月信息,形成可执行SQL语句;
分区空间判断模块14,用于根据可执行SQL语句分析得到创建分区所需的空间,并与Oracle数据库的剩余空间进行比较;
数据分区创建模块15,用于在判定Oracle数据库的剩余空间足够创建分区时,执行可执行SQL语句,完成下一年份数据表的分区创建。
在该实施方式中,通过将Oracle数据库中已有系统表的分区信息插入预设的临时数据表,拼装得到分区创建SQL语句并对SQL语句替换分区创建信息,利用形成的可执行SQL语句进行分区创建,能够实现定期、快速、准确创建数据分区,从而保证系统稳定运行。
在上述实施方式中,优选地,基于Oracle数据库的分区快速创建系统还包括信息完全核查模块16,用于抽取系统表中散列的年月信息标签,并核查所创建的下一年份数据表中年月信息是否创建完全。
在上述实施方式中,优选地,基于Oracle数据库的分区快速创建系统还包括索引失效检查模块17,用于检查所创建的下一年份数据表中索引状态,以分析是否存在因分区创建导致的索引失效,若有,则执行索引重建。
在上述实施方式中,优选地,分区信息包括一维分区和二维分区方式,一维分区方式为按照年月分区,二维分区方式包括两种,一种为一维分区为区域范围、二维分区为年月分区,另一种为一维分区为年月分区、二维分区为区域范围或哈希值。
在上述实施方式中,优选地,在临时数表创建模块11创建临时数据表之前,确认操作用户针对Oracle数据库的用户权限。
根据上述实施方式中公开的基于Oracle数据库的分区快速创建系统,其各模块所要实现的功能分别与上述实施方式中公开的分区快速创建方法中的各步骤分别对应一致,具体参见上述实施方式,在此不再赘述。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Oracle数据库的分区快速创建方法,其特征在于,包括:
创建临时数据表,并在所述临时数据表中预设所需字段;
根据Oracle数据库的系统表,提取当前年份的所有分区信息,并插入所述临时数据表;
根据所述临时数据表中的信息拼装得到分区创建SQL语句,并将所述分区创建SQL语句中的当前年份的年月信息替换为下一年份的年月信息,形成可执行SQL语句;
根据所述可执行SQL语句分析得到创建分区所需的空间,并与所述Oracle数据库的剩余空间进行比较;
在判定所述Oracle数据库的剩余空间足够创建分区时,执行所述可执行SQL语句,完成下一年份数据表的分区创建。
2.根据权利要求1所述的基于Oracle数据库的分区快速创建方法,其特征在于,还包括:
抽取所述系统表中散列的年月信息标签,并核查所创建的下一年份数据表中年月信息是否创建完全。
3.根据权利要求1所述的基于Oracle数据库的分区快速创建方法,其特征在于,还包括:
检查所创建的下一年份数据表中索引状态,以分析是否存在因分区创建导致的索引失效,若有,则执行索引重建。
4.根据权利要求1所述的基于Oracle数据库的分区快速创建方法,其特征在于,所述分区信息包括一维分区和二维分区方式,一维分区方式为按照年月分区,二维分区方式包括两种,一种为一维分区为区域范围、二维分区为年月分区,另一种为一维分区为年月分区、二维分区为区域范围或哈希值。
5.根据权利要求1所述的基于Oracle数据库的分区快速创建方法,其特征在于,在创建临时数据表之前,确认操作用户针对所述Oracle数据库的用户权限。
6.一种基于Oracle数据库的分区快速创建系统,其特征在于,应用如权利要求1至5中任一项所述的基于Oracle数据库的分区快速创建方法,包括:
临时数表创建模块,用于创建临时数据表,并在所述临时数据表中预设所需字段;
系统数表提取模块,用于根据Oracle数据库的系统表,提取当前年份的所有分区信息,并插入所述临时数据表;
语句拼装替换模块,用于根据所述临时数据表中的信息拼装得到分区创建SQL语句,并将所述分区创建SQL语句中的当前年份的年月信息替换为下一年份的年月信息,形成可执行SQL语句;
分区空间判断模块,用于根据所述可执行SQL语句分析得到创建分区所需的空间,并与所述Oracle数据库的剩余空间进行比较;
数据分区创建模块,用于在判定所述Oracle数据库的剩余空间足够创建分区时,执行所述可执行SQL语句,完成下一年份数据表的分区创建。
7.根据权利要求6所述的基于Oracle数据库的分区快速创建系统,其特征在于,还包括信息完全核查模块,用于抽取所述系统表中散列的年月信息标签,并核查所创建的下一年份数据表中年月信息是否创建完全。
8.根据权利要求6所述的基于Oracle数据库的分区快速创建系统,其特征在于,还包括索引失效检查模块,用于检查所创建的下一年份数据表中索引状态,以分析是否存在因分区创建导致的索引失效,若有,则执行索引重建。
9.根据权利要求6所述的基于Oracle数据库的分区快速创建系统,其特征在于,所述分区信息包括一维分区和二维分区方式,一维分区方式为按照年月分区,二维分区方式包括两种,一种为一维分区为区域范围、二维分区为年月分区,另一种为一维分区为年月分区、二维分区为区域范围或哈希值。
10.根据权利要求6所述的基于Oracle数据库的分区快速创建系统,其特征在于,在所述临时数表创建模块创建临时数据表之前,确认操作用户针对所述Oracle数据库的用户权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210652046.6A CN115129712A (zh) | 2022-06-09 | 2022-06-09 | 基于Oracle数据库的分区快速创建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210652046.6A CN115129712A (zh) | 2022-06-09 | 2022-06-09 | 基于Oracle数据库的分区快速创建方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129712A true CN115129712A (zh) | 2022-09-30 |
Family
ID=83377462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210652046.6A Pending CN115129712A (zh) | 2022-06-09 | 2022-06-09 | 基于Oracle数据库的分区快速创建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129712A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809268A (zh) * | 2022-11-23 | 2023-03-17 | 深圳计算科学研究院 | 一种基于分片索引的自适应查询方法和装置 |
CN116049197A (zh) * | 2023-03-07 | 2023-05-02 | 中船重工奥蓝托无锡软件技术有限公司 | 一种基于HBase的数据均衡存储方法 |
-
2022
- 2022-06-09 CN CN202210652046.6A patent/CN115129712A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809268A (zh) * | 2022-11-23 | 2023-03-17 | 深圳计算科学研究院 | 一种基于分片索引的自适应查询方法和装置 |
CN115809268B (zh) * | 2022-11-23 | 2024-01-16 | 深圳计算科学研究院 | 一种基于分片索引的自适应查询方法和装置 |
CN116049197A (zh) * | 2023-03-07 | 2023-05-02 | 中船重工奥蓝托无锡软件技术有限公司 | 一种基于HBase的数据均衡存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2610764B1 (en) | Systems and methods for migrating database data | |
CN115129712A (zh) | 基于Oracle数据库的分区快速创建方法及系统 | |
EP2610765B1 (en) | Systems and methods for migrating database data | |
CN106021594B (zh) | 数据库表和xml报文的映射处理方法及其系统 | |
CN109376142B (zh) | 数据迁移方法及终端设备 | |
CN111143368A (zh) | 一种关系型数据库数据对比方法及系统 | |
CN111414378B (zh) | 一种基于GraphQL的类元数据框架 | |
CN105760485A (zh) | 财务数据抽取方法及系统 | |
CN106802928B (zh) | 电网历史数据管理方法及其系统 | |
US20090198647A1 (en) | Apparatus and method for identifying locale-specific data based on a total ordering of supported locales | |
CN107609151A (zh) | 基于Redis实现XBRL实例文档缓存的方法 | |
CN105843605B (zh) | 一种数据映射方法及装置 | |
CN112486532B (zh) | 配置文件的管理方法、装置、电子设备及存储介质 | |
CN111914028A (zh) | 一种基于图增量同步异构数据源数据关系的方法及装置 | |
CN113238865A (zh) | 基于Excel一键导入的快速构建知识图谱的方法 | |
CN112817984A (zh) | 数据处理方法及装置、数据来源获取方法及装置 | |
CN116775488A (zh) | 异常数据确定方法、装置、设备、介质及产品 | |
CN114356454A (zh) | 对账数据处理方法、设备、存储介质及程序产品 | |
CN114925142A (zh) | 一种orm框架的多类型数据库兼容方法、装置、设备及介质 | |
CN110807037B (zh) | 一种数据修改方法、装置、电子设备及存储介质 | |
CN110837365A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN111798309A (zh) | 风控变量加工系统、方法及可读介质 | |
CN111221846B (zh) | 一种sql语句的自动翻译方法及装置 | |
CN112817931A (zh) | 一种增量版本文件的生成方法及装置 | |
Zhan et al. | An SG-CIM Verification Method Based on Schema Comparison |
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 |