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
This entry was posted in Administration, Performance Tuning and tagged , , , , , . Bookmark the permalink.

6 Responses to Partitioning Table: Informasi Segment & Tablespace

  1. hana says:

    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

  2. Berek says:

    Blin … really beautifully written! All this is so familiar … and truthfully!

  3. budi says:

    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

  4. andes says:

    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

  5. nana nj says:

    pak kalaiu ada malh dengan performasi database

Leave a Reply

Your email address will not be published. Required fields are marked *