搜索
首页数据库mysql教程Oralce水平分表
Oralce水平分表Jun 07, 2016 pm 05:59 PM
分表插入水平遇到

工作中遇到一张表每天都插入很多数据,随着时间的推移数据量会变的很大上百万条甚至上千万条记录。这样我们能不能把表进行拆分呢,答案是肯定的Oracle 很早就考虑到这个问题提供了水平拆分。 Oracle 10 g 中提供下面三中分区: 1)范围分区(Range partition)

工作中遇到一张表每天都插入很多数据,随着时间的推移数据量会变的很大上百万条甚至上千万条记录。这样我们能不能把表进行拆分呢,答案是肯定的Oracle 很早就考虑到这个问题提供了水平拆分。

Oracle 10 g 中提供下面三中分区:

1)范围分区(Range partition)

2) 哈希分区(Hash  partition)

-

3)列表分区(List partition)

由于水平有限下面重点介绍范围分区

范围分区,顾名思义,就是根据表的某个字段的值,以固定的一个范围作为一个分区来划分数据

1.1可以根据序号分区建表

create table test1

1.(  
2.  ID         NUMBER not null,   3.  JQBH       VARCHAR2(20),  
4.  FJH        VARCHAR2(20)  
5.)  
6.partition by range (ID)   7.(  
8. partition part_01 values less than(30000000) tablespace WLKP_FP_DATA_2011,   9. partition part_02 values less than(60000000) tablespace WLKP_FP_DATA_2012,   10. partition part_03 values less than(maxvalue) tablespace WLKP_FP_DATA_2013   11. ); 
从上面我们看出按照序号分区1-30000000数据存储在part_01分区表中,30000000-60000000数据存储在第part_02分区表中。这样就达到水平拆分表的目的

1.2可以根据日期分区建表

create table test2

1.(  
2.  ID         NUMBER not null,   3.  JQBH       VARCHAR2(20),  
4.  FJH        VARCHAR2(20),  
5.   KPRQ       DATE  6.)  
7.partition by range (KPRQ)   8.(  
9. partition part_01 values less than(TO_DATE('2012-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) tablespace WLKP_FP_DATA_2011,   10. partition part_02 values less than(TO_DATE('2013-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) tablespace WLKP_FP_DATA_2012,   11. partition part_03 values less than(MAXVALUE) tablespace WLKP_FP_DATA_2013   12. ); 
从上面建表语句我们可以看到通过时间按照年存储数据表。

通过以上方式以上方式我们可以将数据比较大的表根据ID 时间自动拆分的其他分区表中。

以上方式在系统设计表结构的时候就考虑到分表情况,实际工作中由于对系统数据量的遇见不足,没有在设计表的时候考虑的表水平切分情况。那么我们有没有办法对现有表进行拆分和改造呢。答案是肯定的。

现在对表WLKP_FP_KJ进行扩展改造

1.创建新表空间

CREATE TABLESPACE "WLKP_FP_DATA_2010"

表空间创建代码

1.LOGGING   
2.DATAFILE 'E:\Oracle\product\10.2.0\oradata\wlkp\WLKP_FP_DATA_2010.ORA'    3.SIZE 5M REUSE AUTOEXTEND   
4.ON NEXT  1024K MAXSIZE  32767M EXTENT MANAGEMENT LOCAL   
5.SEGMENT SPACE MANAGEMENT  AUTO ;  
6.commit; 
这里我们新建WLKP_FP_DATA_2010表空间,按照年来存储扩展WLKP_FP_KJ表当然也可以建立2011、2012、2013...表空间存储未来的数据

2创建新表WLKP_FP_KJ_TEST

表结构按照1.2日期分区建表

3.新表建立后,复制老表数据

insert into wlkp_fp_kj_test select* from wlkp_fp_kj

4.将老表wlkp_fp_kj 删除

5.重命名wlkp_fp_kj_test 为wlkp_fp_kj

这样通过以上方式我们可以讲原来wlkp_fp_kj 按照时间水平分割存储到不同的表空间了.

通过分区表查询数据分别存储在哪个分区表中.

select * from WLKP_FP_KJ partition(WLKP_FP_DATA_2011) ;

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用SQL中的MINUS操作符使用SQL中的MINUS操作符Feb 18, 2024 pm 04:53 PM

SQL中MINUS的用法及具体代码示例在SQL中,MINUS是一种用于在两个结果集之间执行差集操作的运算符。它用于从第一个结果集中删除与第二个结果集中相同的行。MINUS操作符返回的结果集将包含仅存在于第一个结果集中的行。下面通过具体的代码示例来演示MINUS的用法:假设有两个表-"table1"和"table2",它们的结构如下:表名:table1字段

3060显卡的性能如何?3060显卡的性能如何?Jan 27, 2024 am 10:36 AM

有很多游戏玩家对显卡3060表示非常好奇,想入手一张3060的显示,但是不知道RTX3060是在一个什么水平,其实这款显卡也是在一个比较主流的水平。3060显卡什么水平:答:主流水平。这款RTX3060显卡非常受广大玩家的欢迎,并且也在热卖中,其拥有RTX30的系列特有的优点,性价比非常高,对游戏画面要求较高的玩家可以选择这张显卡。3060显卡拓展介绍:帧率:被广大玩家所喜爱,拥有12GB的大显存,非常受欢迎。在12GB的大显存下,能够流畅运行起3A大作无任何卡顿,帧数甚至可达到60。性价比:它

我们可以在Java列表中插入空值吗?我们可以在Java列表中插入空值吗?Aug 20, 2023 pm 07:01 PM

SolutionYes,Wecaninsertnullvaluestoalisteasilyusingitsadd()method.IncaseofListimplementationdoesnotsupportnullthenitwillthrowNullPointerException.Syntaxbooleanadd(Ee)将指定的元素追加到此列表的末尾。类型参数E −元素的运行时类型。参数e −要追加到此列表的元

wps文档里插入中国地图的图文方法wps文档里插入中国地图的图文方法Mar 27, 2024 pm 02:01 PM

1、打开wps软件,进入wps文字的操作界面。2、在该界面内找到插入选项。3、点击插入选项,在其编辑区域内找到形状选项。4、点击形状选项,在其子级菜单那里找到推荐选项。5、在推荐选项内找到中国地图选项。6、点击中国地图选项,用鼠标左键在编辑输入区里拖拽,就得到了我们需要的中国地图。

评测麒麟9000s的性能与水平评测麒麟9000s的性能与水平Mar 18, 2024 pm 03:21 PM

麒麟9000s作为今年手机市场的一颗新星,备受关注。伴随着智能手机市场的竞争日益激烈,作为华为公司的旗舰处理器,麒麟系列一直以来都备受瞩目。而作为最新推出的一款处理器,麒麟9000s究竟表现如何,它的性能和水平又如何呢?下面将对麒麟9000s进行评测,从各个方面来剖析其优劣。首先从性能方面来看,麒麟9000s采用了先进的5nm工艺制造,集成了ARM最新的Co

在C++中递归插入和遍历链表在C++中递归插入和遍历链表Sep 10, 2023 am 09:21 AM

我们得到了用于形成链表的整数值。任务是使用递归方法先插入然后遍历单链表。在末尾递归添加节点如果head为NULL→将节点添加到head否则添加到head(head→next)递归遍历节点如果head为NULL→退出否则打印(head→next)示例输入−1-2-7-9-10输出输出strong>−链表:1→2→7→9→10→NULL输入−12-21-17-94-18输出−链表:12→21→17→94→18→NULL下面程序中使用的方法如下在这种方法中,我们将使用函数添加节点并遍历单链表并递

如何实现MySQL中插入多行数据的语句?如何实现MySQL中插入多行数据的语句?Nov 08, 2023 pm 09:54 PM

如何实现MySQL中插入多行数据的语句?在MySQL中,有时我们需要一次性插入多行数据到表中,这时我们可以使用INSERTINTO语句来实现。下面将介绍如何使用INSERTINTO语句来插入多行数据,并给出具体的代码示例。假设我们有一个名为students的表,包含id、name和age字段,现在想要一次性插入多条学生的信息,我们可以按照以下步骤来实现:

PHP实现Oracle数据库分表的方法PHP实现Oracle数据库分表的方法May 16, 2023 am 08:24 AM

随着数据量的不断增长,传统的单表数据库设计已经无法满足需求。针对大规模数据处理,分表设计已经被广泛采用,并成为优化系统性能的重要手段。Oracle数据库是管理大规模数据的常用数据库之一,针对Oracle数据库实现分表设计非常重要和有价值。本文将介绍如何使用PHP来实现Oracle数据库分表的方法。什么是分表设计?分表设计是将一个大表拆分成多个小表进行管理的一

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)