Beng Dou

一只站在树上的鸟儿,从来不会害怕树枝断裂,因为它相信的不是树枝,而是它自己的翅膀。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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;
复制代码

 

posted on   锅边糊  阅读(378)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示