Oracle实践--PL/SQL表分区的基础

简介:

PL/SQL基础入门之表分区

         PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言。是对SQL的扩展。支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的运行加入程序逻辑,与Oracleserver和Oracle工具紧密集成,具有可移植性。灵活性和安全性。

------------------------------------------------------------------------------------------------------------

表分区

/*

    分区:Oracle同意用户将一个表分成多个分区,与表的创建一起

    长处:1.用户能够运行查询,仅仅訪问当中特定的分区。

          2.将不同的分区存储在不同的磁盘。提高訪问性能和安全性

          3.能够独立备份和恢复分区。

*/

1.范围分区:以表中一个列或一组列的值得范围分区

--keyword:partition by range values less than

create table person1(
      pid number primary key,
      birthday date
)
partition by range (birthday)(
     partition p1 values less than (to_date('1980-01-01','yyyy-mm-dd')),
     partition p2 values less than (to_date('1990-01-01','yyyy-mm-dd')),
     --partition p1 values less than (maxvalue)
)
insert into person1 values(1,'ysjian',to_date('1965-02-03','yyyy-mm-dd'));
insert into person1 values(2,'ysjian',to_date('1985-02-03','yyyy-mm-dd'));
insert into person1 values(3,'ysjian',to_date('1995-02-03','yyyy-mm-dd'));
select * from person1 partition(p2);

2.散列分区:同意用户对不具有逻辑范围的数据进行分区,keyword:hash

--通过在分区键上运行hash函数决定存储的分区,将数据平均分配到不同的分区

create table person2(
      pid number primary key,
      pname varchar2(20),
      birthday date
)
partition by hash(birthday)(
         partition p1 [TABLESPACE tbs1],
         partition p2 [TABLESPACE tbs2],
         partition p3 [TABLESPACE tbs3]
)

3.列表分区:同意用户将不相关的数据组织在一起,keyword:list,values

create table person3(
      pid number primary key,
      birthday date。
      address varchar2(50)
)
partition by list(address)(
      partition hubei values('武汉','黄石','黄冈'),
      partition shanxi values('西安','渭南','宝鸡')
)

4.复合分区:keyword:subpartition

create table person4(
      pid number primary key,
      birthday date,
      address varchar2(50)
)
partition by range(birthday)
subpartition by hash(birthday)
subpartitions4(
     partition p1 values less than (to_date('1980-01-01','yyyy-mm-dd')),
     partition p2 values less than (to_date('1990-01-01','yyyy-mm-dd')),
     partition p3 values less than (to_date('2000-01-01','yyyy-mm-dd'))
)

--分区的维护:
1.新增分区:在最后一个分区之后加入新分区

alter table person1 add partition P4 values less than (4000);

2.删除分区:删除一个指定的分区,分区的数据也随之删除

alter table person1 truncate partition P3;

3.截断分区:删除指定分区中的全部记录,不记录日志,不可恢复

alter table person1 truncate partition P3;

4.合并分区 -将范围分区或复合分区的两个相邻分区连接起来

alter table person1 merge partitions p1, p2 into partition p2;

5.拆分分区 -将一个大分区中的记录拆分到两个分区中

alter table person1split partition p2 AT (1500) into (partition P21,partition P22);

/*

           表分区同意将一个表划分成几部分,以改善大型应用系统的性能

           分区方法包含范围分区、散列分区、复合分区和列表分区

           分区维护操作包含加入、删除、截断、合并和拆分分区

*/

文章来源:http://blog.csdn.net/ysjian_pingcx/article/details/25646805

版权声明:本文博客原创文章,博客,未经同意,不得转载。







本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4652569.html,如需转载请自行联系原作者


相关文章
|
7天前
|
SQL Oracle 关系型数据库
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
|
2月前
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
|
5月前
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
|
5月前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
155 3
|
5月前
|
SQL Oracle 关系型数据库
Oracle SQL:了解执行计划和性能调优
Oracle SQL:了解执行计划和性能调优
145 1
|
SQL Oracle 关系型数据库
|
6月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
8月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
210 13
|
8月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
123 9
|
8月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
103 6

热门文章

最新文章

推荐镜像

更多