zoukankan      html  css  js  c++  java
  • Oracle分区表常见操作

      Oracle分区表常用于业务中大表使用,如历史交易记录表等,提高表记录查询效率。本文主要描述范围分区表的创建、新增以及索引创建。

    Oracle操作分区表相关信息

    显示数据库所有分区表的信息:DBA_PART_TABLES
    SQL> select owner,table_name,partitioning_type,partition_count,partitioning_key_count,status from 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

    1、分区表创建

    CREATE TABLE range_example(
         range_key_column DATE,
         DATA VARCHAR2(20),
         ID integer
     ) PARTITION BY RANGE(range_key_column)
     (
         PARTITION part_20171101 VALUES LESS THAN (TO_DATE('2017-11-01 00:00:00','yyyy-mm-dd hh24:mi:ss')),
         PARTITION part_20171102 VALUES LESS THAN (TO_DATE('2017-11-02 00:00:00','yyyy-mm-dd hh24:mi:ss')),
         PARTITION part_20171103 VALUES LESS THAN (TO_DATE('2017-11-03 00:00:00','yyyy-mm-dd hh24:mi:ss'))
    );

    说明:如果是已创建的分区表,可以通过PL/SQL查看分区表创建语句。判断分区表类型。

    2、新增分区表

    ALTER TABLE range_example ADD PARTITION part_20171101 VALUES LESS THAN (TO_DATE('2017-11-01 00:00:00','yyyy-mm-dd hh24:mi:ss'));

    3、删除分区表

    ALTER TABLE range_example DROP PARTITION part_20171103;

     4、查看分区表记录数

    1,先生成各个分区的查询语句:
    select 'select count(*) from TABLENAME partition('||partition_name||');' from (select * from user_tab_partitions where table_name='TABLENAME');
    2,然后:
    select (select count(*) from TABLENAME partition(PART1)) p1,
    (select count(*) from TABLENAME partition(PART2)) p2,
    (select count(*) from TABLENAME partition(PART3)) p3,
    (select count(*) from TABLENAME partition(PART4)) p4,
    (select count(*) from TABLENAME partition(PART5)) p5,
    (select count(*) from TABLENAME partition(PART6)) p6,
    (select count(*) from TABLENAME partition(PART7)) p7,
    (select count(*) from TABLENAME partition(PART8)) p8,
    (select count(*) from TABLENAME partition(PART9)) p9,
    (select count(*) from TABLENAME partition(PART10)) p10
    from dual;
  • 相关阅读:
    c#基础语言编程-装箱和拆箱
    c#基础语言编程-集合
    c#基础语言编程-异常处理
    HDU 5038 Grade北京赛区网赛1005
    新建Oracle数据库时,提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序
    Android开发学习笔记--计时器的应用实例
    Android开发学习笔记--一个有界面A+B的计算器
    Android开发学习笔记--给一个按钮定义事件
    HDU 5014 Number Sequence(位运算)
    HDU 5007 Post Robot KMP (ICPC西安赛区网络预选赛 1001)
  • 原文地址:https://www.cnblogs.com/linyfeng/p/7776382.html
Copyright © 2011-2022 走看看