Home / MAKALELER / Veri Tabanı / Tabloların Sıkıştırılması

Tabloların Sıkıştırılması

Tabloların yada tablo veri setlerinin sıkıştırılma yöntemleri.

İlk oracle 9i sürümünde alan kazancı amacıyla çıkarılmıştır. Artıları IO performansı arttırır, db cache’ deki memory kullanımı azalır, ancak bu işlemlerin hepsi için extra CPU yükü doğurur.

Sıkıştırma işlemleri tablolarda, partition  ve tablespace düzeyinde yapılabilir.
NOCOMPRESS seçeneği default olan seçenektir. Kullanıldığı zaman sıkıştırılma yapılmaz.
COMPRESS seçeneğinde ise sıkıştırılma yapılır. Tablo ve partition’larda direct-path insert esnasında bu seçenek kullanılabilir.
COMPRESS FOR DIRECT_LOAD OPERATIONS yukarıdaki seçenekle aynı etkisi gösterir.
COMPRESS FOR OLTP seçeneği  OLTP sistemler için kabul edilip kullanılan sıkıştırma tekniğidir. COMPATIBLE  başlangıç parametresi en az 11.1.0 ve üst versiyonlarda set edilmişse bu seçenek aktiftir
Kullanımı:
--birinci tablo

CREATE TABLE test_tab1 (
  id            NUMBER(10)    NOT NULL,
  description   VARCHAR2(50)  NOT NULL,
  created_date  DATE          NOT NULL
)
COMPRESS FOR OLTP;


--ikinci tablo. Farklı partitionları farklı compress seçenekleri ile  sıkıştırma .

CREATE TABLE test_tab2 (
  id            NUMBER(10)    NOT NULL,
  description   VARCHAR2(50)  NOT NULL,
  created_date  DATE          NOT NULL
)
PARTITION BY RANGE (created_date) (
  PARTITION test_tab_quart1 VALUES LESS THAN (TO_DATE(’01/01/2012′, ‘DD/MM/YYYY’)) COMPRESS,
  PARTITION test_tab_quart2 VALUES LESS THAN (TO_DATE(’01/04/2012′, ‘DD/MM/YYYY’)) COMPRESS FOR DIRECT_LOAD OPERATIONS,
  PARTITION test_tab_quart3 VALUES LESS THAN (TO_DATE(’01/07/2012′, ‘DD/MM/YYYY’)) COMPRESS FOR OLTP,
  PARTITION test_tab_quart4 VALUES LESS THAN (MAXVALUE) NOCOMPRESS
);
SQL> ALTER TABLE test_tab1 DROP COLUMN description;

ERROR at line 1:

ORA-39726: unsupported add/drop column operation on compressed tables

Sıkıştırılmış bir tablodaki kolon silemeyiz. Silebilmemiz için önce o kolonu unused yapmamız gerekiyor.

SQL> ALTER TABLE test_tab1 SET UNUSED (description);
Table altered.

Daha sonra unused olan kolonları aşağıdaki gibi silebiliriz..

SQL> ALTER TABLE TEST DROP unused columns;
Table altered.
farklı makalelerle görüşmek üzere...

 

About Muhammet Ucar

2005 Selçuk Üniversitesi Teknik eğitim Fakültesi Bilgisayar Sistemleri Öğretmenliğinden mezun olduktan sonra İstanbul 'da yaşamaya başladım. 2009 yılından beri Oracle yönetimsel anlamda çalışıp makale paylaşımı yapmaktayım. OCP 11gR2 ve OCA 11gR2 sertifikalarına sahibim. Daha çok kişisel projelerde çalıştım. Free Veritabanı Danışmanlığı ve Eğitmenliği yapıyorum.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın