Oracle 数据库 锁和表分区的方式

原创 2018年04月16日 10:24:57

Oracle  数据库   锁和表分区的方式


范围分区

每个分区都由一个分区键值范围指定()。

列表分区

每个分区都由一个分区键值列表指定()。

散列分区

将散列算法用于分区键来确定指定行所在的分区

组合范围散列分区

范围和散列分区技术的组合,通过该组合,首先对表进行范围分区,然后针对每个单独的范围分区再使用散列分区技术进一步细分。索引组织表只能进行范围分区。


组合范围列表分区

范围和列表分区技术的组合,通过该组合,首先对表进行范围分区,然后针对每个单独的范围分区再使用列表分区技术进一步细分。索引组织表可以按范围、列表或散列进行分区。



一.范围分区:
范围分区将数据基于范围映射到每一个分区,这个范围是你在创建分区时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期。举个例子:你可能会将销售数据按照月份进行分区。
当使用范围分区时,请考虑以下几个规则:
1、每一个分区都必须有一个VALUES LESS THEN子句,它指定了一个不包括在该分区中的上限值。分区键的任何值等于或者大于这个上限值的记录都会被加入到下一个高一些的分区中。
2、所有分区,除了第一个,都会有一个隐式的下限值,这个值就是此分区的前一个分区的上限值。

3、在最高的分区中,MAXVALUE被定义。MAXVALUE代表了一个不确定的值。这个值高于其它分区中的任何分区键的值,也可以理解为高于任何分区中指定的VALUE LESS THEN的值,同时包括空值。


CREATE TABLE CUSTOMER 

    CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, 
    FIRST_NAME VARCHAR2(30) NOT NULL, 
    LAST_NAME   VARCHAR2(30) NOT NULL, 
    PHONE        VARCHAR2(15) NOT NULL, 
    EMAIL        VARCHAR2(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 

)


二.列表分区:

该分区的特点是某列的值只有几个,基于这样的特点我们可以采用列表分区。

CREATE TABLE PROBLEM_TICKETS 

    PROBLEM_ID   NUMBER(7) NOT NULL PRIMARY KEY, 
    DESCRIPTION VARCHAR2(2000), 
    CUSTOMER_ID NUMBER(7) NOT NULL, 
    DATE_ENTERED DATE NOT NULL, 
    STATUS       VARCHAR2(20) 

PARTITION BY LIST (STATUS) 

      PARTITION PROB_ACTIVE   VALUES ('ACTIVE') TABLESPACE PROB_TS01, 
      PARTITION PROB_INACTIVE VALUES ('INACTIVE') TABLESPACE PROB_TS02

);


三.散列分区:
这类分区是在列值上使用散列算法,以确定将行放入哪个分区中。当列的值没有合适的条件时,建议使用散列分区。

散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。

CREATE TABLE HASH_TABLE 

COL NUMBER(8), 
INF VARCHAR2(100) 

PARTITION BY HASH (COL) 

PARTITION PART01 TABLESPACE HASH_TS01, 
PARTITION PART02 TABLESPACE HASH_TS02, 
PARTITION PART03 TABLESPACE HASH_TS03 
)

简写:
CREATE TABLE emp
(
    empno NUMBER (4),
    ename VARCHAR2 (30),
    sal   NUMBER 
)
PARTITION BY HASH (empno) PARTITIONS 8

STORE IN (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);


四、组合分区

(范围-散列分区,范围-列表分区)

范围-散列分区


TP3锁和表分区的ppt

  • 2010年04月03日 20:00
  • 594KB
  • 下载

MySql数据库行锁与表锁解析

mysql数据库行锁与表锁解析一般而言 表锁发生的情况不会影响表的查询操作 只对写入会有限制,例如select * from tableName for update 并且没有commit的时候会产...
  • m13120331539
  • m13120331539
  • 2016-10-24 11:10:14
  • 293

ORACLE11g 区的管理与分配

这篇文章是对ORACLE空间管理实验2:区的管理与分配中实验四的一个补充
  • ch7543658
  • ch7543658
  • 2014-08-23 15:21:46
  • 562

数据库分区及分区优点

此文从以下几个方面来整理关于分区表的概念及操作:         1.表空间及分区表的概念         2.表分区的具体作用         3.表分区的优缺点         4.表分区的几种类...
  • liukun321
  • liukun321
  • 2015-05-18 16:11:50
  • 6626

Oracle 数据库创建数据库和表

三大主流数据库,SQL Server、MySQL,还有就是Oracle ,前面两个经常使用,而后者是刚刚接触,花了点时间研究,终于走上正轨!首先,我的思维一开始觉得三种数据库的安装和使用是大同小异的,...
  • wwyxhqc_zy
  • wwyxhqc_zy
  • 2017-09-01 16:57:38
  • 412

共享锁(S锁)和排它锁(X锁)

共享锁,又称为读锁,可以查看但无法修改和删除的一种数据锁。 中文名: 共享锁 外文名: Share Locks 其他用户: 可以并发读取数据 都不能获...
  • longxingzhiwen
  • longxingzhiwen
  • 2016-12-28 11:42:04
  • 443

oracle使用三(锁和表分区)

1. 行级锁只对用户正在访问的行进行锁定授权用户:connect  yyaccp/acccp;create user user2 identified by chenmp;grant create s...
  • lavly
  • lavly
  • 2008-02-20 15:56:00
  • 604

oracle行级锁和表级锁

http://blog.sina.com.cn/s/blog_9d12d07f0102xbln.html
  • u011897392
  • u011897392
  • 2017-05-18 11:37:23
  • 621

表空间和表分区的理解

1.表空间:是一个或多个数据文件的集合,主要存放的是表,所有的数据对象都存放在指定的表空间中;一个数据文件只能属于一个表空间,一个数据库空间由若干个表空间组成,其中包括: a.系统表空间:10g以前...
  • pzasdq
  • pzasdq
  • 2015-11-03 16:34:07
  • 1805
收藏助手
不良信息举报
您举报文章:Oracle 数据库 锁和表分区的方式
举报原因:
原因补充:

(最多只允许输入30个字)