Oracle篇—分区表和分区索引常用检查语句(第四篇,总共五篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨

💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️

💖💖💖大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注💖💖💖

    新的一周,新的开始。今天将继续探讨分区表和分区索引。在前三篇中,详细介绍了分区表和分区索引的基本概念、创建方法和分区索引的重建和管理。而今天,我将聚焦于分区表和分区索引的常用检查语句。掌握它们,不仅能帮助我们更好地了解现有分区表和分区索引的具体情况,更能为后续的维护工作提供有力的支持,以便我们进行针对性的优化。

    这篇文章只介绍分区表和分区索引的常用检查语句,所以涉及到的内容不多,需要了解分区表和分区索引的基本概念、创建方法和分区索引的重建和管理的小伙伴,请参考之前的文章哦。

    因为分区技术需要介绍的太多,那么我将分成五篇来进行介绍,以便大家因为篇幅过长而感到阅读疲惫。五篇的内容分别如下:

第一篇:分区表和分区索引的介绍和分类

第二篇:分区表的管理

第三篇:分区索引的重建和管理

第四篇:分区表和分区索引常用的检查语句(当前篇)

第五篇:普通表迁移到分区表


    

查看用户下所有分区的表:

方式一:SQL> select * from dba_part_tables where owner='用户';

                 

方式二:SQL> select * from dba_tables where owner='用户' and partitioned='YES';

   

查询表是否分区,有多少分区,按哪个字段分区:

SQL> select * from dba_part_tables where table_name='表名';              ---表是否分区

间隔分区:interval字段确定是不是间隔范围分区;PARTITION_COUNT字段对于间隔分区表,此列的值总是1048575

            

SQL> select * from dba_tab_partitions where table_name='表名';          ---表的分区信息

        

SQL> select * from dba_tab_subpartitions where table_name='表名';    ---表的子分区信息

        

SQL> select * from DBA_PART_KEY_COLUMNS where NAME='表名';           ---查询分区表以哪个列分区

         

SQL> select * from DBA_SUBPART_KEY_COLUMNS where NAME='表名';    ---查询子分区表以哪个列分区

    

查询表中某个分区、子分区的数据、分区表的大小

SQL> select * from table_name partition(分区名);

        

SQL> select * from table_name subpartition(子分区名);   

              

SQL> select sum(bytes)/1024/1024/1024 ||'G' from dba_segments where owner='用户' and segment_name='表名';                   ---分区表的总大小

             

SQL> select segment_name,partition_name,segment_type,bytes/1024/1024/1024 ||'G' from dba_segments where owner='用户' and segment_name='表名';      ---分区表每个分区的大小

    

查看表是否有分区索引,分区索引的类型,分区:

SQL> select * from dba_part_indexes where table_name='表名';                  ---表是否有分区索引(普通索引用dba_indexes)

间隔分区:interval字段确定是不是间隔范围分区;PARTITION_COUNT字段对于间隔分区表,此列的值总是1048575

            

SQL> select * from dba_ind_partitions where index_name='分区索引名';          ---表的分区索引信息

        

SQL> select * from dba_ind_subpartitions where index_name='分区索引名';    ---表的子分区索引信息

          

SQL> select segment_name,partition_name, segment_type, bytes/1024/1024/1024 || 'G' from dba_segments where segment_name in (select index_name from dba_part_indexes where table_name='表名');                 ---分区索引的大小

    

分区表索引及各个索引的索引列

SQL> select * from dba_ind_columns where index_name in (select index_name from dba_part_indexes where table_name ='表名');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奈斯DB

打赏到账,我飘啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值