在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Oracle的分区表有什么用

156次阅读
没有评论

共计 7023 个字符,预计需要花费 18 分钟才能阅读完成。

这篇文章主要讲解了“Oracle 的分区表有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“Oracle 的分区表有什么用”吧!

下面对分区表进行简单的实验:

先查询所需要进行分区表的表结构:

sys@FX1TEST desc fqtbb
 Name Null? Type
 -------------------------------------------------------------------------- -------- --------------------------------------------------
 ID NUMBER
 YXTIME DATE
 HASH VARCHAR2(50)
 GOODLOOK VARCHAR2(20)

  查询表当前的数据:

 sys@FX1TEST select * from fqtbb;
ID YXTIME HASH GOODLOOK
---------- ------------------- -------------------- ----------
 1 2011-01-02 00:00:00 java111 no
 1 2011-04-02 00:00:00 java121 no
 1 2011-05-02 00:00:00 java131 no
 1 2012-02-02 00:00:00 java141 no
 1 2013-01-02 00:00:00 java1ds no
 1 2012-06-04 00:00:00 java1da no
 1 2013-12-21 00:00:00 java771 no
 1 2013-02-02 00:00:00 java771 no
 1 2014-06-25 00:00:00 java661 no
 1 2014-01-02 00:00:00 java156 no
 1 2015-05-22 00:00:00 java132 no
 1 2015-06-07 00:00:00 java134 no
 1 2016-04-21 00:00:00 java152 yes
 1 2016-11-11 00:00:00 java761 yes
 1 2016-01-21 00:00:00 java171 yes
 1 2017-04-21 00:00:00 java711 yes
 1 2017-05-05 00:00:00 java717 yes
 1 2017-01-02 00:00:00 java174 yes
 1 2018-03-01 00:00:00 java172 yes
 1 2018-01-23 00:00:00 java176 yes
 1 2018-12-22 00:00:00 java166 yes
21 rows selected.

下面便是一些常用的分区方法

范围分区:利用分区键定义范围,根据实际取值,进行分区选择,这种范围一般以数字形式存储,例如时间,分数,工资等等,所以不可避免的这种分区方法做不到均匀分区。

这里我们用时间范围进行划分 :

create table fqtbb_part (
id number,
yxtime date,
hash varchar(50),
goodlook varchar(20))
PARTITION BY RANGE (yxtime)
PARTITION fqtbb_part1 VALUES LESS THAN (TO_DATE( 2011-01-01 , yyyy-mm-dd))
TABLESPACE test,
PARTITION fqtbb_part2 VALUES LESS THAN (TO_DATE( 2014-01-02 , yyyy-mm-dd))
TABLESPACE test1,
PARTITION fqtbb_part3 VALUES LESS THAN (MAXVALUE)
TABLESPACE test2
); 
Table created.

将大表中的数据插到新建表中:

sys@FX1TEST insert into fqtbb_part select * from fqtbb;
21 rows created.
sys@FX1TEST commit;
Commit complete.

接下来查询单独分区的数据信息

sys@FX1TEST select * from fqtbb_part partition(fqtbb_part3);
ID YXTIME HASH GOODLOOK
---------- ------------------- -------------------- ----------
 1 2014-06-25 00:00:00 java661 no
 1 2014-01-02 00:00:00 java156 no
 1 2015-05-22 00:00:00 java132 no
 1 2015-06-07 00:00:00 java134 no
 1 2016-04-21 00:00:00 java152 yes
 1 2016-11-11 00:00:00 java761 yes
 1 2016-01-21 00:00:00 java171 yes
 1 2017-04-21 00:00:00 java711 yes
 1 2017-05-05 00:00:00 java717 yes
 1 2017-01-02 00:00:00 java174 yes
 1 2018-03-01 00:00:00 java172 yes
 1 2018-01-23 00:00:00 java176 yes
 1 2018-12-22 00:00:00 java166 yes
13 rows selected.
sys@FX1TEST select * from fqtbb_part partition(fqtbb_part2);
ID YXTIME HASH GOODLOOK
---------- ------------------- -------------------- ----------
 1 2011-01-02 00:00:00 java111 no
 1 2011-04-02 00:00:00 java121 no
 1 2011-05-02 00:00:00 java131 no
 1 2012-02-02 00:00:00 java141 no
 1 2013-01-02 00:00:00 java1ds no
 1 2012-06-04 00:00:00 java1da no
 1 2013-12-21 00:00:00 java771 no
 1 2013-02-02 00:00:00 java771 no
 
 8 rows selected.

当然如果查询分区表的信息。也有相对应的表供用户查询。例如:

sys@FX1TEST select TABLE_NAME,PARTITIONING_TYPE,PARTITION_COUNT,STATUS from dba_part_tables where table_name= FQTBB_PART 
TABLE_NAME PARTITIONING_TYPE PARTITION_COUNT STATUS
------------------------------ ------------------ --------------- ----------------
FQTBB_PART RANGE3 VALID

查询表分区所处的表空间:

sys@FX1TEST select PARTITION_NAME,NUM_ROWS,TABLESPACE_NAME,SEGMENT_CREATED from dba_tab_partitions where table_name= FQTBB_PART 
PARTITION_NAME NUM_ROWS TABLESPACE SEGMENT_
-------------------- ---------- ---------- --------
FQTBB_PART1TEST YES
FQTBB_PART2TEST1 YES
FQTBB_PART3TEST2 YES

列分区

列分区根据分区键指定的取值列表进行分区,但是这种分区方法适合的比较少,例如部门列表、所属项目组名称等等

这里根据 goodlook 键进行定义:

create table fqtbb_parta (
id number,
yxtime date,
hash varchar(50),
goodlook varchar(20))
PARTITION BY list(goodlook)
PARTITION fqtbb_part1 VALUES (yes)
TABLESPACE test,
PARTITION fqtbb_part2 VALUES (no)
TABLESPACE test1,
PARTITION fqtbb_part3 VALUES (default)
TABLESPACE test2
); 
Table created.

插入数据

sys@FX1TEST insert into fqtbb_parta select * from fqtbb;
21 rows created.
sys@FX1TEST commit;
Commit complete.

分区表创建完成之后进行查询验证:

sys@FX1TEST select * from fqtbb_parta partition(fqtbb_part2);
ID YXTIME HASH GOODLOOK
---------- ------------------- -------------------- ----------
 1 2011-01-02 00:00:00 java111 no
 1 2011-04-02 00:00:00 java121 no
 1 2011-05-02 00:00:00 java131 no
 1 2012-02-02 00:00:00 java141 no
 1 2013-01-02 00:00:00 java1ds no
 1 2012-06-04 00:00:00 java1da no
 1 2013-12-21 00:00:00 java771 no
 1 2013-02-02 00:00:00 java771 no
 1 2014-06-25 00:00:00 java661 no
 1 2014-01-02 00:00:00 java156 no
 1 2015-05-22 00:00:00 java132 no
 1 2015-06-07 00:00:00 java134 no
12 rows selected.
sys@FX1TEST select * from fqtbb_parta partition(fqtbb_part1);
ID YXTIME HASH GOODLOOK
---------- ------------------- -------------------- ----------
 1 2016-04-21 00:00:00 java152 yes
 1 2016-11-11 00:00:00 java761 yes
 1 2016-01-21 00:00:00 java171 yes
 1 2017-04-21 00:00:00 java711 yes
 1 2017-05-05 00:00:00 java717 yes
 1 2017-01-02 00:00:00 java174 yes
 1 2018-03-01 00:00:00 java172 yes
 1 2018-01-23 00:00:00 java176 yes
 1 2018-12-22 00:00:00 java166 yes
9 rows selected.
sys@FX1TEST select * from fqtbb_parta partition(fqtbb_part3);
no rows selected

下面是 oracle 分区表常用的管理操作,如下:

由于我们之前再范围分区时,设置了 default 值,所以无法增加分区,所以这里先演示删除分区

sys@FX1TEST alter table fqtbb_part drop partition fqtbb_part3;
Table altered.
sys@FX1TEST select PARTITION_NAME,NUM_ROWS,TABLESPACE_NAME,SEGMENT_CREATED from dba_tab_partitions where table_name= FQTBB_PART 
PARTITION_NAME NUM_ROWS TABLESPACE_NAME SEGMENT_
------------------------------------------------------------ ---------- ------------------------------------------------------------ --------
FQTBB_PART1 0 TEST YES
FQTBB_PART2 8 TEST1 YES

添加分区

sys@FX1TEST alter table fqtbb_part add partition p3 values less than (to_date( 2019-09-09 , yyyy-mm-dd 
Table altered.

截断分区:截断分区是指清楚数据,保留分区结构,如下

sys@FX1TEST alter table fqtbb_part truncate partition p3;
Table truncated.

合并分区:指将相邻的分区合并成一个分区,例如 2019、2018 这两个分区,合并之后,分区将采用 2019 这个界限,并且合并是要合并到 2019 这个分区里;如下

sys@FX1TEST alter table fqtbb_part merge partitions fqtbb_part1,fqtbb_part2 into partition fqtbb_part2;
Table altered.
sys@FX1TEST select PARTITION_NAME,NUM_ROWS,TABLESPACE_NAME,SEGMENT_CREATED from dba_tab_partitions where table_name= FQTBB_PART 
PARTITION_NAME NUM_ROWS TABLESPACE_NAME SEGMENT_
------------------------------------------------------------ ---------- ------------------------------------------------------------ --------
FQTBB_PART2SYSTEM YES
P3SYSTEM YES

拆分分区:有合并当然就有拆分,意思就是将一个分区拆成两个分区,而之前的分区将不存在;如下

sys@FX1TEST alter table fqtbb_part split partition fqtbb_part2 at(to_date( 2014-01-01 , yyyy-mm-dd)) into (partition p1,partition p2);
Table altered.
sys@FX1TEST select PARTITION_NAME,NUM_ROWS,TABLESPACE_NAME,SEGMENT_CREATED from dba_tab_partitions where table_name= FQTBB_PART 
PARTITION_NAME NUM_ROWS TABLESPACE_NAME SEGMENT_
------------------------------------------------------------ ---------- ------------------------------------------------------------ --------
P1SYSTEM YES
P2SYSTEM YES
P3SYSTEM YES

重命名分区:顾名思义,就是让分区换一个名字

sys@FX1TEST alter table fqtbb_part rename partition p1 to p11;
Table altered.

感谢各位的阅读,以上就是“Oracle 的分区表有什么用”的内容了,经过本文的学习后,相信大家对 Oracle 的分区表有什么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计7023字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久99精品麻豆国产 | 麻豆国产原创视频在线播放 | 久久久久久亚洲精品无码 | 亚洲av永久无码国产精品久久 | 吃奶揉捏奶头高潮视频 | 午夜轮理| 国产av无码专区亚洲av蜜芽 | 婷婷 夜夜| 99久久精品费精品国产一区二区 | 韩国主播19福利视频在线观看 | 国产亚洲精品第一综合麻豆 | 四虎综合网 | 三级在线看中文字幕完整版 | 黄aaa| 日本xxx在线观看免费播放 | 全亚洲最大最好的私人影剧院 | 亚洲乱色熟女一区二区三区麻豆 | 一级特黄aa大片免费 | 国产精品久久久视频 | 精品日本一区二区三区在线观看 | 最新在线防屏蔽国产一区 | 人妻少妇中文字幕久久 | 国产麻豆剧传媒精品网站 | 五月婷婷开心中文字幕 | 黄色片子免费看 | 国产肥白大熟妇bbbb | 影音先锋中文字幕人妻 | 三级视频网站在线观看 | 久久亚洲免费视频 | 亚洲久久久久久久 | 99热综合在线 | 国产午夜福利片在线观看 | 成年人在线观看视频免费 | 日产2021免费一二三四区在线 | 久久91久久91精品免费观看 | 亚洲日韩乱码中文无码蜜桃臀网站 | 免费无码又爽又刺激聊天app | 免费又色又爽又黄的舒服软件 | 国产午夜精品久久久久小说 | 成人欧美s视频在线观看 | 亚洲精品无码久久久久y |