首页 > 数据库 >oracle表分区

oracle表分区

时间:2023-08-24 13:44:38浏览次数:48  
标签:-- 分区 partition 分区表 tablespace oracle part

转:http://www.bxcqd.com/news/43471.html

【ORACLE表分区】

一.表分区策略 1.识别大表 采用ANALYZE TABLE语句进行分析,然后查询数据字典获得相应的数据量。 2.大表如何分区 可根据月份,季度以及年份等进行分区; 3.分区的表空间规划 要对每个表空间的大小进行估计 二.创建表分区 a.创建范围分区的关键字是'RANGE' 1.范围分区 create table ware_retail_part --创建一个描述商品零售的数据表 id integer primary key,--销售编号 retail_date date,--销售日期 ware_name varchar2(50)--商品名称 partition by range(retail_date) --2011年第一个季度为part_01分区 partition par_01 values less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace TEMP01, --2011年第二个季度为part_02分区 partition par_02 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace TEMP01, --2011年第三个季度为part_03分区 partition par_03 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace TEMP01, --2011年第四个季度为part_04分区 partition par_04 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace TEMP01 ); 2.创建散列分区 3.组合分区: 4.interval 分区 三.创建索引分区 索引分区分为本地索引分区和全局索引分区,全局索引不反应基础表的结构,要分区只能进行范围分区。 创建索引分区要参照表分区 四.分区技术简介 优点: 1.减少维护工作量 2.增强数据的可用性 3.均衡I/O,提升性能 4.提高查询速度 5.分区对用户保持透明,用户感觉不到分区的存在。 五,管理表分区 1.添加表分区 ALTER TABLE...ALTER PARATITION 2.合并表分区 3.删除分区 ALTER TABLE...DROP PARTITION 删除分区时,里面的数据也会被删除。 -创建表和分区 create table sales--创建一个销售记录表 id number primary key,--记录编号 goodsname varchar2(10),--商品名 saledate date--销售日期 partition by range(saledate)--按照日期分区 --第一季度数据 partition part_sea1 values less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace tbsp_1, --第二季度数据 partition part_sea2 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace tbsp_2, --第三季度数据 partition part_sea3 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace tbsp_1, --第四季度数据 partition part_sea4 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace tbsp_2 ); --创建局部索引 create index index_3_4 on sales(saledate) local( partition part_seal tablespace tbsp_1, partition part_sea2 tablespace tbsp_2, partition part_sea3 tablespace tbsp_1, partition part_sea4 tablespace tbsp_2 ); --并入分区 alter table sales merge partitions part_sea3,part_sea4 into partition part_sea4; --重建局部索引 alter table sales modify partition part_sea4 rebuild unusable local indexes; 六.管理索引分区 删除索引:DROP PARTITION 重建分区:REBUILT PARTITION 更名索引分区:RENAME PARTITION 分割索引分区:SPLIT PARTITION   【查看表分区信息】 这样SELECT TABLE_NAME,PARTITION_NAME,TABLESPACE_NAME FROM USER_TAB_PARTITIONS 注: USER_TAB_PARTITIONS:可查看分区表的名字、归属表空间以及表的详细分区情况。 USER_PART_TABLES:可查看用户所有的分区表,以及分区方式。 扩展资料: 分区表的作用 Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。 分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。 但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。   【查看分区数据量】 显示分区表信息 显示数据库所有分区表的信息:DBA_PART_TABLES 显示当前用户可访问的所有分区表信息:ALL_PART_TABLES 显示当前用户所有分区表的信息:USER_PART_TABLES 显示表分区信息 显示数据库所有分区表的详细分区信息:DBA_TAB_PARTITIONS 显示当前用户可访问的所有分区表的详细分区信息:ALL_TAB_PARTITIONS 显示当前用户所有分区表的详细分区信息:USER_TAB_PARTITIONS 显示子分区信息 显示数据库所有组合分区表的子分区信息:DBA_TAB_SUBPARTITIONS 显示当前用户可访问的所有组合分区表的子分区信息:ALL_TAB_SUBPARTITIONS 显示当前用户所有组合分区表的子分区信息:USER_TAB_SUBPARTITIONS 显示分区列 显示数据库所有分区表的分区列信息:DBA_PART_KEY_COLUMNS 显示当前用户可访问的所有分区表的分区列信息:ALL_PART_KEY_COLUMNS 显示当前用户所有分区表的分区列信息:USER_PART_KEY_COLUMNS 显示子分区列 显示数据库所有分区表的子分区列信息:DBA_SUBPART_KEY_COLUMNS 显示当前用户可访问的所有分区表的子分区列信息:ALL_SUBPART_KEY_COLUMNS 显示当前用户所有分区表的子分区列信息:USER_SUBPART_KEY_COLUMNS --------------------------------------------------------------------------------------------------- select * from user_tables a where a.partitioned='YES' 删除一个表的数据是truncate table table_name;   【一次查询多个分区】 CREATE TABLE CUSTOMER CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, FIRST_NAME VARCHAR2(30) NOT NULL, LAST_NAME VARCHAR2(30) NOT NULL, PHONEVARCHAR2(15) NOT NULL, EMAILVARCHAR2(80), STATUS CHAR(1) PARTITION BY RANGE (CUSTOMER_ID) PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01, PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02 具体如下: 1、简介 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。 2、介绍 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。 3、支持平台 在2001年发布的Oracle9i之前,甲骨文公司把他们的数据库产品广泛的移植到了不同的平台上。近期,甲骨文公司巩固了一小部分的操作系统平台。   【查询最大、最小分区及分区数量】 最大最小分区,分区数量,可以通过user_segments获得。 因为每一个表分区都是一个segment,所以可以通过这个获得。 一般情况下,我们认为表中的bytes就是这个分区的大小。 user的视图中欧式当前用户的分区,通过table_name分组,paratition_name is not null 然后就可以求出最大分区和最小分区,count求出分区数量。   【查询表分区】 1、首先打开plsql,输入用户名密码,登陆访问表所在的数据库。 2、这就是登陆成功后的界面了。 3、点击左上的新建图标。 4、选择sql Window。 5、右下区域会出现如图的弹窗。 6、在弹窗中,输入查询表的sql语句:select * from 表名。 7、点击左上的执行图标。 8、稍作等待,下区域便会展示要查的表的全部信息。

翻译

搜索

复制

标签:--,分区,partition,分区表,tablespace,oracle,part
From: https://www.cnblogs.com/qsds/p/17653938.html

相关文章

  • Dbeaver工具,导出oracle 表注释、字段注释
    --表注释SELECTtable_name,comments,'commentontable'||table_name||'is'''||comments||''';'FROMall_tab_commentsWHEREowner='用户名'ANDtable_nameIN('表名')ORDERBYtable_name;--字段注......
  • MySQL表按天分区
    建表语句要分区的字段必须为主键或联合主键之一CREATETABLE`test_partition`(`id`int(11)NOTNULLAUTO_INCREMENT,`day`datetimeNOTNULL,`name`varchar(20)DEFAULTNULL,PRIMARYKEY(`id`,`day`));插入数据INSERTINTOtest_partitionvalues (1,......
  • 【Oracle RAC Database】Oracle Grid Infrastructure 启动流程与日志
    OS启动OHASD(OracleHighAvailabilityServices)init.ohasd.run被启动,该进程负责启动ohasd.bin守护进程[root@node01~]#ps-ef|grepohasd|grep-vgreproot5151018:59?00:00:00/bin/sh/etc/init.d/init.ohasdrun>/dev/null2>&1</dev/......
  • 4、oracle查看表空间使用情况
    oracle查看表空间使用情况查看表空间大小、使用率、剩余空间selecta.tablespace_name,total,free,total-freeasused,substr(free/total*100,1,5)as"FREE%",substr((total-free)/total*100,1,5)as"USED%"from(selecttablespace_name,sum(bytes)/10......
  • 15、oracle误删数据恢复
    目录oracle误删数据恢复1、delete删除数据2、drop删除表恢复oracle误删数据恢复1、delete删除数据回滚到指定时间点的数据select*fromgscommtypeasoftimestampto_timestamp('2019-08-2823','yyyy-mm-ddhh24');2、drop删除表恢复selectobject_name,origi......
  • Oracle行列操作--合并行与按字段拆分
    1、在实际工作中遇到根据某一字段将多行合并成一行的情况,我们下面以选修课的例子进行说明:--createtablecreatetableXXK(idNUMBER,rymcNVARCHAR2(50),xxkmcNVARCHAR2(50))---inserttestdatainsertintoXXKvalues(1,'小明','编程');insertintoXXKv......
  • Oracle 运维常用命令
    介绍在管理Oracle数据库时,我们经常会使用到各种命令,这些命令或长或短。除了经常使用的命令我们能记得住,像那种偶尔会用一次的,很难靠记忆敲出来。为了避免在使用中再次百度找半天,于是就将这些命令写下来了,方便以后查阅。命令Linux命令命令说明命令备注查看oracle主进程状态ps-ef|gr......
  • 1、oracle监听器服务的开启与关闭
    目录oracle监听器服务的开启与关闭1、查看监听状态2、开启监听3、关闭监听4、重启监听oracle监听器服务的开启与关闭Oracle监听器服务关闭时,不让外部进行数据库连接。1、查看监听状态lsnrctlstatus2、开启监听lsnrctlstart3、关闭监听lsnrctlstop4、重启监听lsnrc......
  • 6、linux的oracle更改实例名
    目录linux的oracle更改实例名1、查看当前实例名1.1、查看配置的ORACLE_SID1.2、查看数据库的实例名2、关闭数据库2.1、关闭数据库启动服务2.2、关闭数据库监听服务3、修改环境变量ORACLE_SID4、修改/etc/oratab文件,将sid名由ifrsdb修改为ifrssit5、进入到$ORACLE_HOME/dbs目录6、......
  • 1、oracle表空间
    目录oracle表空间1、查询表空间目录2、创建表空间2.1、linux创建表空间文件根路径以及表空间文件2.2、plsql执行创建表空间3、删除表空间(谨慎操作)3.1、删除非空表空间,包含物理文件3.2、删除非空表空间,不包含物理文件3.3、删除空的表空间,不包含物理文件3.4、删除空表空间,包含物理文......