Skip to content

Partitioning Table: Informasi Segment & Tablespace

Kadang kita bingung, ketika query TABLESPACE_NAME di view DBA_TABLES, kok nilai TABLESPACE_NAME ada yang NULL (blank/kosong).

SQL> select distinct TABLESPACE_NAME from dba_tables;
TABLESPACE_NAME
------------------------------
SYSTEM
                                            <--- Kosong/blank/NULL
USERS
SYSAUX

Tidak perlu bingung, itu tandanya ada tabel berpartisi di database tersebut. Pada tabel yang berpartisi, data disimpan di dalam partisinya. Contoh, lihat tabel berpartisi PENJUALAN_RANGE yang pernah dibahas di Partitioning Table: Definisi dan Contoh.

CREATE TABLE penjualan_range
( no_invoice  NUMBER,
tgl_jual    DATE NOT NULL,
area varchar2(10))
PARTITION BY RANGE (tgl_jual)
(
PARTITION jual_kw1 VALUES LESS THAN (TO_DATE('01-APR-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw2 VALUES LESS THAN (TO_DATE('01-JUL-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw3 VALUES LESS THAN (TO_DATE('01-OCT-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw4 VALUES LESS THAN (TO_DATE('01-JAN-2009','DD-MON-YYYY')) TABLESPACE users
);

Coba lihat, view DBA_TABLES. Hasil query berikut ini adalah 1 record, di mana nilai kolom TABLESPACE_NAME adalah NULL.

SQL> select tablespace_name from dba_tables where table_name='PENJUALAN_RANGE';
TABLESPACE_NAME
------------------------------
SQL> select count(*) from dba_tables where table_name='PENJUALAN_RANGE';
  COUNT(*)
----------
         1

Sekarang, query view DBA_TAB_PARTITIONS. Tampak bahwa data disimpan di partisi JUAL_KW1, JUAL_KW2, JUAL_KW3, dan JUAL_KW4.

SQL> select TABLESPACE_NAME,PARTITION_NAME from DBA_TAB_PARTITIONS where table_name='PENJUALAN_RANGE';

TABLESPACE_NAME                PARTITION_NAME
------------------------------ ------------------------------
USERS                          JUAL_KW1
USERS                          JUAL_KW2
USERS                          JUAL_KW3
USERS                          JUAL_KW4

Lihat juga informasi di view DBA_SEGMENTS

SQL> select SEGMENT_NAME,PARTITION_NAME,TABLESPACE_NAME
from dba_segments where SEGMENT_NAME='PENJUALAN_RANGE';

SEGMENT_NAME       PARTITION_NAME  TABLESPACE
------------------ --------------- ----------
PENJUALAN_RANGE    JUAL_KW1        USERS
PENJUALAN_RANGE    JUAL_KW2        USERS
PENJUALAN_RANGE    JUAL_KW3        USERS
PENJUALAN_RANGE    JUAL_KW4        USERS


Silahkan baca yang berikut ini juga :

6 Comments

  1. hana

    pak rohmad, sy newbie di oracle. Sy masih bingung dgn konsep tablespace.
    Bagaimana hubungannya dgn table. Kalo di DB spt Mysql kan hanya ada DB dan table2 saja.
    Tolong jelaskan pak. Terima kasih

    Posted on 30-Oct-08 at 8:21 am | Permalink
  2. Blin … really beautifully written! All this is so familiar … and truthfully!

    Posted on 06-Nov-08 at 2:53 am | Permalink
  3. budi

    pak rohmad, mohon pencerahan…..sewaktu saya akan insert data melalui form aplikasi, muncul eror begini pak….ORA-14400: inserted partition key does not map to any partition…mohon pencerahan nya pak…terima kasih

    Posted on 01-Dec-08 at 4:49 am | Permalink
  4. andes

    pak rohmad,

    gimana untuk tuning segment pada table partition ? karena setiap saya shrink muncul error :
    ERROR at line 1:
    ORA-10631: SHRINK clause should not be specified for this object

    Thanks

    Posted on 17-Feb-09 at 8:07 am | Permalink
  5. nana nj

    pak kalaiu ada malh dengan performasi database

    Posted on 14-Jul-09 at 7:05 am | Permalink
  6. nice info gan

    Posted on 05-Apr-11 at 9:16 am | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*