zoukankan      html  css  js  c++  java
  • Oracle表分区

      当数据非常庞大的时候,比如,要查询ID<1000的时候,如果不使用表分区的话,需要全表扫描(判断每条记录的ID是否小于1000),这样大大影响了查询的速度。创建索引是性能调优的方法,同样,表分区也是。每个分区都是独立的一个段,可以放在不同的表空间下面。

      表分区有以下优点:

      (1)由于将数据分散到各个区中,减少了数据损坏的可能性。

      (2)可以对单独的分区进行数据的备份与恢复。

      (3)可以将分区分散到不同的物理磁盘,来分散IO。

      (4)提高数据库管理与性能。

      oracle提供了以下几种分区方法:

      (1)范围分区(range)  (2)哈希分区(hash)   (3)列表分区(List) (4)范围-哈希分区   (5)范围-列表分区

      range分区:就是根据表的某个字段值范围进行分区。 如下:创建分区表,根据ID的值进行分区,如果某些值暂时无法预测,可以使用maxvalue。

    create table testpartition(id number,name varchar(100)) partition by range(id)
    (
           partition p1 values less than (10),
           partition p2 values less than (20),
           partition p3 values less than (30),
           partition p4 values less than (maxvalue)
    )

      查看用户表分区情况:

    select * from user_tab_partitions

      

      插入数据:

    insert into testpartition values(15,'zhengxisheng')
    
    insert into testpartition values(5,'jisheng')
    
    insert into testpartition values(32,'jidong')

      查询各个分区的数据:

    select * from testpartition partition(p2)

      

      更新数据:报错如下:

    update testpartition set id ='12' where  id ='5'

      

      需要成设置可移动的分区:

    alter table testpartition enable row movement
    
    update testpartition set id ='12' where  id ='5'

      再次查询分区p2的数据:

      

  • 相关阅读:
    Windows下PHP开启mcrypt扩展和SSL(OpenSSL)扩展支持
    MyBatis 学习笔记
    试用百度云计算平台
    TCP三次握手及四次挥手详细图解
    Java开发中的23种设计模式详解
    Extjs4.1.0_从入门到精通
    SQLite3命令操作大全
    带你了解 HBase 数据模型和 HBase 架构
    让数据库无惧灾难,华为云GaussDB同城双集群高可用方案正式发布!
    论文阅读丨神经清洁: 神经网络中的后门攻击识别与缓解
  • 原文地址:https://www.cnblogs.com/gdpuzxs/p/6979661.html
Copyright © 2011-2022 走看看