
oracle 已经分区的表需要怎样查询
显示分区表信息
显示数据库所有分区表的信息:DBA_PART_TABLES
显示当前用户可访问的所有分区表信息:ALL_PART_TABLES
显示当前用户所有分区表的信息:USER_PART_TABLES
显示表分区信息 显示数据库所有分区表的详细分区信息:DBA_TAB_PARTITIONS
显示当前用户可访问的所有分区表的详细分区信息:ALL_TAB_PARTITIONS
1、首先打开plsql,输入用户名密码,登陆访问表所在的数据库。
2、这就是登陆成功后的界面了。
3、点击左上的新建图标。
4、选择sql Window。
5、右下区域会出现如图的d窗。
6、在d窗中,输入查询表的sql语句:select from 表名。
7、点击左上的执行图标。
8、稍作等待,下区域便会展示要查的表的全部信息。
这样SELECT TABLE_NAME,PARTITION_NAME,TABLESPACE_NAME
FROM USER_TAB_PARTITIONS
注:
USER_TAB_PARTITIONS:可查看分区表的名字、归属表空间以及表的详细分区情况。
USER_PART_TABLES:可查看用户所有的分区表,以及分区方式。
扩展资料:
分区表的作用
Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护 *** 作的性能大大提高。此外分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。
分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。
但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。
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之前,甲骨文公司把他们的数据库产品广泛的移植到了不同的平台上。近期,甲骨文公司巩固了一小部分的 *** 作系统平台。
数据库分区是每种数据库都需具备的关键功能之一 几乎所有的Oracle数据库都使用分区功能来提高查询的性能 Oracle g分区功能可以简化数据库的日常管理维护工作 大大减轻了DBA(数据库设计和管理工程师)的工作负担
Oracle g中提供的新功能增添了更多的数据库分区功能选择 使分区功能在使用和维护上变得更加灵活;同时 Oracle g也提供更多的分区功能选择
Oracle 版最早推出了表格的分区功能 使Oracle成为了第一个支持物理分区的RDBMS供应商 SQLServer( )和DB 都只支持逻辑分区(使用UNION ALL视图) 而SQL Server 并不直接支持物理分区(需通过分区功能) Oracle的分区功能选择很受用户群的欢迎 因为分区功能能够改善应用程序的性能 可管理性和可用性 其中最重要的是DSS应用程序 由于该功能受到广泛的喜爱 因此每次发布新版本都会有功能上的不断提高
下面的表格列举了随版本更新而不断提高的分区功能(高级)
分区功能类型
现在让我们简单的讨论一下以上每个分区功能的特性
范围分区 数据根据分区键值范围指定进行分布 比如 如果我们选择一个日期列作为分区键 分区 JAN 就会包括所有包含从 JAN 到 JAN 之间的分区键值(假设分区的范围是从这个月的第一天到这个月的最后一天)
散列分区 将散列算法用于分区键来确定指定行所在的分区 这个分区方法能够保持I/O平衡 但是不可用于范围查询或不等式查询
列表分区 数据根据分区键值列表指定进行分布 这个分区方法对于离散的列表非常有用 如地区 国家等
组合分区 结合 个数据分区方法可以成为一个组合分区方法 先用第一个数据分布方法对表格进行分区 然后再用第二个数据分区方法对每个分区进行二次分区 组合分区方法有以下组合
组合范围散列分区 组合范围列表分区 组合范围范围分区 组合列表范围分区 组合列表列表分区 组合列表散列分区
G支持对索引组织表(索引和数据一起的表格)进行范围分区 列表分区或散列分区 但是不支持对其进行组合分区
Interval分区 G版本引入的interval分区范围分区的一种增强功能 可实现equi sized范围分区的自动化 创建的分区作为元数据 只有最开始的分区是永久分区 随着数据的增加会分配更多的部分 并自动创建新的分区和本地索引
SQL>CREATETABLESALES_PART
(TIME_ID NUMBER REGION_ID NUMBER
ORDER_ID NUMBER
ORDER_DATE DATE
SALES_QTY NUMBER( )
SALES_AMOUNT NUMBER( )
)
PARTITIONBY RANGE (ORDER_DATE)
INTERVAL (NUMTOYMINTERVAL( month )
(PARTITION p_first VALUES LESS THAN ( JAN );
Numtoyminterval功能把数字转换成 INTERVAL YEAR TO MONTH文字( YEAR or MONTH )
进行Interval分区的表格有传统的范围部分和自动生成的interval部分 进行范围分区的表格可以通过使用ALTER TABLE命令的SETINTERVAL选项扩展成为Interval分区的表格
外键分区 分区方案的引入是以相关表格通过相同的分区策略获得好处作为前提设想的 Detail表格通过PK FK关系从master表格继承相同的分区方案 我们不需要把分区键存储在detail表格中 通过关键词 PARTITION BY REFERENCE detail表格获得master表格的分区方案
虚拟列分区 在之前的Oracle版本里 只有分区键存在与表格中才可以实现对表格的分区功能 而Oracle G的新功能 虚拟列 打破了这一限制 允许通过使用表格中的一列或多列的表述确定分区键 而虚拟列只作为元数据存储
例如 在表格ACCOUNTS中添加一个虚拟列
SQL>CREATE TABLE ACCOUNTS
(acc_no number( ) not null
acc_name varchar ( ) not null
acc_loc varchar ( )
acc_branch number( ) generated always as (to_number(substr(to_char(acc_no) )));
使用虚拟列作为分区键
SQL>CREATE TABLE accounts
(acc_no number( ) not null
acc_name varchar ( ) not null
acc_loc varchar ( )
acc_branch number( ) generated always as (to_number(substr(to_char(acc_no) )))
partition by list (acc_branch);
分区建议器
lishixinzhi/Article/program/Oracle/201311/18976
Oracle中经常会用到分区查询,按分区查询时,只需要在表名后面通过PARTITION关键字和括号指定分区名字(不能加引号),其它的和非分区的查询没有什么区别。如下是一个例子:
分区表的数据量一般都比较大,有时候,某些查询必须指定分区才能查出来。但是,分区查询的结果,并不直观。为此,我们需要将这些不直观的结果组织在一起。
抽象一下,实际上这个问题是,如何通过SQL查询将零散的值,组织成行和列的形式。
在实际中,这个问题,我并没有一下反应过来。实际上,大概来讲这个分两步考虑:先组织列,假设有两个值,因为单个的值只有一行,分别放在不同的表中,取不同的列别名,两个表连接不带条件(笛卡尔积),就得到了一个一行两列的表;再组织行,不同的行合并只需要统一好列名,然后做 union all 就好了。
为了方便区别,在每一行中可以再加一列,作为每一行的标识。下面是一个示意结果:
oracle查询分区表的数据的时候默认查询B分区。oracle中是根据分区键决定的,分区键有可能是通过某一个函数算出来的。Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护 *** 作的性能大大提高。
以上就是关于oracle 已经分区的表需要怎样查询全部的内容,包括:oracle 已经分区的表需要怎样查询、oracle中怎么查询某张表的分区、oracle数据库如何查看表的表分区的信息(每个表分区的名字和所属表空间)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)