2022年oracle表空间,分区表,索引 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年oracle表空间,分区表,索引 .pdf》由会员分享,可在线阅读,更多相关《2022年oracle表空间,分区表,索引 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于 oracle 的表空间,分区表,以及索引的总结表空间:Oracle 的 UNDOTBS01.DBF文件太大的解决办法1、.禁止 undo tablespace自动增长alter database datafile full_pathundotbs01.dbf autoextend off; 2.- 创建一个新的小空间的undo tablespace create undo tablespace undotBS2 datafile full_pathUNDOTBS02.DBF size 100m; - 设置新的表空间为系统undo_tablespace alter system set u
2、ndo_tablespace=undotBS2; - Drop 旧的表空间drop tablespace undotbs1 including contents; -查看所有表空间的情况select * from dba_tablespaces -创建表空间create tablespace HRPM0 datafile /oradata/misdb/HRPM0.DBF size 5m autoextend on next 10m maxsize unlimited -删除表空间DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES; -
3、修改表空间大小alter database datafile /path/NADDate05.dbf resize 100M 分区表:当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后, 逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上 ),这样查询数据时,不至于每次都扫描整张表。Oracle 中提供了以下几种表分区:一、范围分区:这种类型的分区是使用列的一组值,通常将该列成为分区键。示例 1: 假设有一个CUSTOMER 表, 表中有数据200000 行, 我们将此表通过CUSTOMER_ID进行分
4、区,每个分区存储100000 行,我们将每个分区保存到单独的表空间中,这样数据文件就可以跨越多个物理磁盘。下面是创建表和分区的代码,如下:CREATE TABLE CUSTOMER ( 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, FIRST_NAME V ARCHAR2(30) NOT NULL, LAST_NAME V ARCHAR2(30)
5、 NOT NULL, PHONE VARCHAR2(15) NOT NULL, EMAIL VARCHAR2(80), STATUS CHAR(1) ) PARTITION BY RANGE (CUSTOMER_ID) ( PARTITION CUS_PART1 V ALUES LESS THAN (100000) TABLESPACE CUS_TS01, PARTITION CUS_PART2 V ALUES LESS THAN (200000) TABLESPACE CUS_TS02 ) 注意: 在创建表进行分区时,表空间必须先存在,而且建议将不同的分区放入不同的表空间中。示例 2:假设有
6、 ORDER_ACTIVITIES表,每 6 个月对订单进行清理,我们可以按月份对表进行分区,分区代码如下:CREATE TABLE ORDER_ACTIVITIES ( ORDER_ID NUMBER(7) NOT NULL, ORDER_DATE DA TE, TOTAL_AMOUNT NUMBER, CUSTOTMER_ID NUMBER(7), PAID CHAR(1) ) PARTITION BY RANGE (ORDER_DATE) ( PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE(01-MAY-2003,DD-MON-YYY
7、Y) TABLESPACE ORD_TS01, PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE(01-JUN-2003,DD-MON-YYYY) TABLESPACE ORD_TS02, PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE(01-JUL-2003,DD-MON-YYYY) TABLESPACE ORD_TS03 ) 二、列表分区: 该分区的特点是某列的值只有几个,基于这样的特点我们可以采用列表分区。示例 1:CREATE TABLE PROBLEM_TICKETS ( PRO
8、BLEM_ID NUMBER(7) NOT NULL PRIMARY KEY, DESCRIPTION V ARCHAR2(2000), CUSTOMER_ID NUMBER(7) NOT NULL, DATE_ENTERED DA TE NOT NULL, STATUS VARCHAR2(20) ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - PARTITION BY LIST (STATUS) ( PARTITION P
9、ROB_ACTIVE VALUES (ACTIVE) TABLESPACE PROB_TS01, PARTITION PROB_INACTIVE VALUES (INACTIVE) TABLESPACE PROB_TS02 ) 三、散列分区: 这类分区是在列值上使用散列算法,以确定将行放入哪个分区中。当列的值没有合适的条件时,建议使用散列分区。请看下列示例:示例 1:CREATE TABLE HASH_TABLE ( COL NUMBER(8), INF V ARCHAR2(100) ) PARTITION BY HASH (COL) ( PARTITION PART01 TABLESPACE
10、 HASH_TS01, PARTITION PART02 TABLESPACE HASH_TS02, PARTITION PART03 TABLESPACE HASH_TS03 ) 四、复合范围列表分区: 这种分区是基于范围分区和列表分区,表首先按某列进行范围分区,然后再按某列进行列表分区,分区之中的分区被称为子分区。示例 1:CREATE TABLE SALES ( PRODUCT_ID V ARCHAR2(5), SALES_DATE DA TE, SALES_COST NUMBER(10), STATUS VARCHAR2(20) ) PARTITION BY RANGE(SALES_D
11、ATE) SUBPARTITION BY LIST (STATUS) ( PARTITION P1 VALUES LESS THAN (TO_DA TE(2003-01-01,YYYY-MM-DD) TABLESPACE P1_TS ( SUBPARTITION P1SUB1 V ALUES (ACTIVE) TABLESPACE SUBP1_TS1, SUBPARTITION P1SUB2 V ALUES (INACTIVE) TABLESPACE SUBP1_TS2 ), PARTITION P2 VALUES LESS THAN (TO_DATE(2003-03-01,YYYY-MM-D
12、D) TABLESPACE P2_TS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - ( SUBPARTITION P2SUB1 V ALUES (ACTIVE) TABLESPACE SUBP2_TS1, SUBPARTITION P2SUB2 V ALUES (INACTIVE) TABLESPACE SUBP2_TS2 ) ) 示例 2:使用 TEMPLATE 模板CREATE TABLE SALES ( PRODUCT
13、_ID V ARCHAR2(5), SALES_DATE DA TE, SALES_COST NUMBER(10), STATUS VARCHAR2(20) ) PARTITION BY RANGE(SALES_DATE) SUBPARTITION BY LIST (STATUS) SUBPARTITION TEMPLATE ( SUBPARTITION SUB1 V ALUES (ACTIVE) TABLESPACE SUBP1_TS1, SUBPARTITION SUB2 V ALUES (INACTIVE) TABLESPACE SUBP2_TS2 ) ( PARTITION P1 VA
14、LUES LESS THAN (TO_DATE(2003-01-01,YYYY-MM-DD) TABLESPACE P1_TS, PARTITION P2 VALUES LESS THAN (TO_DATE(2003-03-01,YYYY-MM-DD) TABLESPACE P2_TS ) 五、复合范围散列分区: 这种分区是基于范围分区和散列分区,表首先按某列进行范围分区,然后再按某列进行散列分区。与上面的定义方式非常的类似,在此不单独举例。表分区对于用户来说是透明的,我们在插入数据时Oracle 会自动判断插入的数据,然后放入相应的表分区中。但有时我们想单独查询某个分区中的数据时,就必须手工
15、指定分区的名称。示例 1: (此示例基于:四、复合范围列表分区的示例一) 向 SALES 表插入记录,不必指定表分区。INSERT INTO SALES V ALUES(00001,01-1 月-02,100,ACTIVE) / INSERT INTO SALES V ALUES(00002,01-1 月-01,200,ACTIVE) / INSERT INTO SALES V ALUES(00003,01-2 月-03,300,INACTIVE) / INSERT INTO SALES V ALUES(00004,04-2 月-03,300,INACTIVE) / INSERT INTO S
16、ALES V ALUES(00005,04-2 月-02,300,INACTIVE) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - / 不指定表分区查看SALES 表信息:SELECT * FROM SALES; 结果如下所示:指定 P1 表分区查询SALES 表信息:SELECT * FROM SALES PARTITION(P1); 结果如下所示:指定 P1SUB1 子分区查询SALES 表信息 : SELECT * FR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年oracle表空间 分区表 索引 2022 oracle 空间 分区表 索引
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内