当前位置: 首页 > news >正文

从视图查询表分区的相关信息

分区表的分区键和分区类型都可以通过获取创建该分区表的DDL定义语句来了解,那么可不可以直接查询字典视图来获取这些信息呢?常用的dba_tab_partitions视图并没有包含我们想要的分区属性信息;这里我们可以用到dba_part_key_columns(describes the partitioning key columns for all partitioned objects in the database. Its columns are the same as those in ALL_PART_KEY_COLUMNS)和dba_part_tables(displays the object-level partitioning information for all partitioned tables in the database. Its columns are the same as those in ALL_PART_TABLES)这2个视图:
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0      Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

SQL> desc dba_part_tables;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                              VARCHAR2(30)
 TABLE_NAME                                         VARCHAR2(30)
 PARTITIONING_TYPE                                  VARCHAR2(9)
 SUBPARTITIONING_TYPE                               VARCHAR2(9)
 PARTITION_COUNT                                    NUMBER
 DEF_SUBPARTITION_COUNT                             NUMBER
 PARTITIONING_KEY_COUNT                             NUMBER
 SUBPARTITIONING_KEY_COUNT                          NUMBER
 STATUS                                             VARCHAR2(8)
 DEF_TABLESPACE_NAME                                VARCHAR2(30)
 DEF_PCT_FREE                                       NUMBER
 DEF_PCT_USED                                       NUMBER
 DEF_INI_TRANS                                      NUMBER
 DEF_MAX_TRANS                                      NUMBER
 DEF_INITIAL_EXTENT                                 VARCHAR2(40)
 DEF_NEXT_EXTENT                                    VARCHAR2(40)
 DEF_MIN_EXTENTS                                    VARCHAR2(40)
 DEF_MAX_EXTENTS                                    VARCHAR2(40)
 DEF_MAX_SIZE                                       VARCHAR2(40)
 DEF_PCT_INCREASE                                   VARCHAR2(40)
 DEF_FREELISTS                                      NUMBER
 DEF_FREELIST_GROUPS                                NUMBER
 DEF_LOGGING                                        VARCHAR2(7)
 DEF_COMPRESSION                                    VARCHAR2(8)
 DEF_COMPRESS_FOR                                   VARCHAR2(12)
 DEF_BUFFER_POOL                                    VARCHAR2(7)
 DEF_FLASH_CACHE                                    VARCHAR2(7)
 DEF_CELL_FLASH_CACHE                               VARCHAR2(7)
 REF_PTN_CONSTRAINT_NAME                            VARCHAR2(30)
 INTERVAL                                           VARCHAR2(1000)
 IS_NESTED                                          VARCHAR2(3)
 DEF_SEGMENT_CREATION                               VARCHAR2(4)

SQL> desc dba_part_key_columns;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                              VARCHAR2(30)
 NAME                                               VARCHAR2(30)
 OBJECT_TYPE                                        CHAR(5)
 COLUMN_NAME                                        VARCHAR2(4000)
 COLUMN_POSITION                                    NUMBER

SQL> col table_name for a20
SQL> col column_name for a20
SQL> col partition for a20

SQL> select t.table_name, kc.column_name, t.partitioning_type
  2    from dba_part_key_columns kc, dba_part_tables t
  3   where kc.owner = t.owner
  4     and kc.name = t.table_name
  5     and t.table_name='COSTS';

TABLE_NAME           COLUMN_NAME          PARTITION
-------------------- -------------------- ---------
COSTS                TIME_ID              RANGE

/* 针对存在子分区的表,需要用到dba_subpart_key_columns视图 */

SQL> select t.table_name, kc.column_name, t.partitioning_type
  2    from dba_part_key_columns kc, dba_part_tables t
  3   where kc.owner = t.owner
  4     and kc.name = t.table_name
  5     and t.table_name='PRODUCTS'
  6   union all
  7  select u.table_name,skc.column_name,u.subpartitioning_type
  8    from dba_subpart_key_columns skc,dba_part_tables u
  9   where skc.owner=u.owner
 10   and skc.name=u.table_name
 11   and u.subpartitioning_type!='NONE'
 12   and u.table_name='PRODUCTS';

TABLE_NAME           COLUMN_NAME          PARTITION
-------------------- -------------------- ---------
PRODUCTS             T1                   RANGE
PRODUCTS             T2                   HASH

Script:

select t.table_name, kc.column_name, t.partitioning_type
  from dba_part_key_columns kc, dba_part_tables t
 where kc.owner = t.owner
   and kc.name = t.table_name
   and t.table_name = '&TABNAME'
   and t.owner = '&OWNAME'
union all
select u.table_name, skc.column_name, u.subpartitioning_type
  from dba_subpart_key_columns skc, dba_part_tables u
 where skc.owner = u.owner
   and skc.name = u.table_name
   and u.subpartitioning_type != 'NONE'
   and u.table_name = '&TABNAME'
   and u.owner = '&OWNAME';

相关文章:

  • 仓库库存动态分析 手册
  • Linux下关闭远程windows server 2003
  • 哦,高斯!4次乘法变3次的天才。
  • 精彩十年(7)——稍有遗憾的再版
  • ftp术语,ftp错误
  • 使用squid+HAVP+ClamAV 建置防毒 HTTP Proxy
  • 30天敏捷生活:开篇
  • oralce rownum 分页
  • [转]TransactionScope应用
  • 上海外企急聘:Information Security Risk Management
  • EMC捕“蝉” Oracle成“黄雀”?
  • ffmpeg视频转换及截图
  • 交换机的背板容量、交换容量和包转发能力有何区别?
  • 寻找迷失的自己
  • html meta 之 http-equiv
  • Android优雅地处理按钮重复点击
  • ES学习笔记(12)--Symbol
  • js
  • JS专题之继承
  • nginx 配置多 域名 + 多 https
  • node 版本过低
  • Objective-C 中关联引用的概念
  • Octave 入门
  • PHP的类修饰符与访问修饰符
  • redis学习笔记(三):列表、集合、有序集合
  • Wamp集成环境 添加PHP的新版本
  • webpack+react项目初体验——记录我的webpack环境配置
  • 安卓应用性能调试和优化经验分享
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于 Babel 的 npm 包最小化设置
  • 离散点最小(凸)包围边界查找
  • 排序(1):冒泡排序
  • 网络应用优化——时延与带宽
  • 我与Jetbrains的这些年
  • 一个SAP顾问在美国的这些年
  • 在electron中实现跨域请求,无需更改服务器端设置
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #微信小程序:微信小程序常见的配置传旨
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (力扣)循环队列的实现与详解(C语言)
  • (七)Knockout 创建自定义绑定
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 8.0 发布到 IIS
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Reactor简单使用教程
  • .Net Web窗口页属性