ORACLE資料庫查看分區表相關資訊的方法

來源:互聯網
上載者:User

   ORACLE資料庫如何查看分區表的相關資訊呢?不知道你有沒有總結過這方面的知識。下面我們先建立兩個表TEST、 GPRS_CELLTOPVOL_WK來做實驗,指令碼如下:

  CREATE TABLE GPRS_CELLTOPVOL_WK

  (

  DATE_CD NUMBER ( 8 ) NOT NULL ,

  WK_CD NUMBER ( 2 ) NOT NULL ,

  CITY_ID NUMBER ( 10 ) ,

  CELL_EN_NAM VARCHAR2 ( 64 ) NOT NULL ,

  CELL_CN_NAM VARCHAR2 ( 64 ) NOT NULL ,

  CELL_VOL NUMBER ,

  CELL_VOL_PCT NUMBER ,

  AVG_RAT NUMBER ,

  CONSTRAINT PK_GPRS_CELLTOPVOL_WK PRIMARY KEY (DATE_CD, WK_CD, CITY_ID, CELL_EN_NAM, CELL_CN_NAM)

  ) PARTITION BY RANGE(DATE_CD)

  (

  PARTITION TEST_RANGE_1 VALUES LESS THAN (201104) TABLESPACE USERS,

  PARTITION TEST_RANGE_2 VALUES LESS THAN (201105) TABLESPACE USERS,

  PARTITION TEST_RANGE_3 VALUES LESS THAN (201106) TABLESPACE USERS

  );

  /

  COMMENT ON TABLE GPRS_CELLTOPVOL_WK IS 'GPRS流量小區周分析'

  /

  COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.DATE_CD IS '日期編碼'

  /

  COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.WK_CD IS '周次編碼'

  /

  COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CITY_ID IS '地市編碼'

  /

  COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CELL_EN_NAM IS '小區英文名'

  /

  COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CELL_CN_NAM IS '小區中文名'

  /

  COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CELL_VOL IS '小區流量'

  /

  COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CELL_VOL_PCT IS '小區流量佔比'

  /

  COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.AVG_RAT IS '平均速率'

  /

  CREATE TABLE TEST

  (

  ID NUMBER(10) ,

  NAME VARCHAR2(20),

  SEX VARCHAR2(2)

  )

  TABLESPACE SYSTEM

  PCTFREE 10

  PCTUSED 40

  INITRANS 1

  MAXTRANS 255

  STORAGE

  (

  INITIAL 64K

  MINEXTENTS 1

  MAXEXTENTS UNLIMITED

  );

  假設你是一個開發人員或DBA,你想查看資料庫裡面那些表或某個表是否分區表,你可以用下面的幾種方法去查看。

  方法1:

  SELECT * FROM ALL_TABLES WHERE TABLE_NAME = 'TEST'

  SELECT * FROM ALL_TABLES WHERE TABLE_NAME = 'GPRS_CELLTOPVOL_WK';

  如圖所示截圖你會發現GPRS_CELLTOPVOL_WK表的TABLESPCAE_NAME為空白,而表TEST的TABLESPCAE_NAME為SYSTEM,所以你可以通過TABLESPCAE_NAME是否為空白來判斷一個表是否為分區表。網上有人給出這種方法,但是要切記的是,不見得TABLESPCAE_NAME為NULL,則該表就是分區表,兩者之間沒有互推關係。OWNER為HR的COUNTRIES表就是一個例子。其實你可以通過 ALL_TABLES裡的欄位PARTITIONED的值為YES或NO來區分該表是否是分區表。如下下所示

  SELECT PARTITIONED FROM ALL_TABLES WHERE TABLESPACE_NAME IS NULL

  方法2 你可以通過DBA_PART_TABLES、 ALL_PART_TABLES、 USER_PART_TABLES來查看分區表資訊、這三者的具體差別如下:

  顯示資料庫所有分區表的資訊:DBA_PART_TABLES

  顯示目前使用者可訪問的所有分區表資訊:ALL_PART_TABLES

  顯示目前使用者所有分區表的資訊:USER_PART_TABLES

  SELECT * FROM ALL_PART_TABLES WHERE TABLE_NAME = 'GPRS_CELLTOPVOL_WK'

  從DBA_PART_TABLES等表中你可以查看分區表的基本資料:例如分區表類型(通過PARTITIONING_TYPE欄位查看)、子分區類型(SUBPARTITIONING_TYPE)、分區個數(PARTITION_COUNT)但是如果你想查看該表的詳細分區資訊,那麼你可以通過DBA_TAB_PARTITIONS、ALL_TAB_PARTITIONS、USER_TAB_PARTITIONS這三個表去查看相關詳細資料。三者之間的區別如下所示

  顯示Oracle查看分區表資訊 顯示資料庫所有分區表的詳細分區資訊:DBA_TAB_PARTITIONS

  顯示目前使用者可訪問的所有分區表的詳細分區資訊:ALL_TAB_PARTITIONS

  顯示目前使用者所有分區表的詳細分區資訊:USER_TAB_PARTITIONS

  如果您想查看分區表的分區列資訊 ,那麼你可以通過DBA_PART_KEY_COLUMNS、ALL_PART_KEY_COLUMNS、USER_PART_KEY_COLUMNS三個表來查看相關資訊,如下圖所示,三者之間的區別如下所示

  顯示目前使用者所有分區表的分區列資訊:USER_PART_KEY_COLUMNS

  顯示目前使用者可訪問的所有分區表的分區列資訊:ALL_PART_KEY_COLUMNS

  顯示分區列 顯示資料庫所有分區表的分區列資訊:DBA_PART_KEY_COLUMNS

  如果你想查看組合表的子分區資訊以及子分區列資訊情況,你可以從下面的這些表去查看具體相關情況

  顯示目前使用者所有組合分區表的子分區資訊:USER_TAB_SUBPARTITIONS

  顯示目前使用者可訪問的所有組合分區表的子分區資訊:ALL_TAB_SUBPARTITIONS

  顯示目前使用者可訪問的所有組合分區表的子分區資訊:ALL_TAB_SUBPARTITIONS

  顯示目前使用者所有分區表的子分區列資訊:USER_SUBPART_KEY_COLUMNS

  顯示目前使用者可訪問的所有分區表的子分區列資訊:ALL_SUBPART_KEY_COLUMNS

  顯示子分區列 顯示資料庫所有分區表的子分區列資訊:DBA_SUBPART_KEY_COLUMNS

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.