LOB(Large Object) Veri Tipleri’nin amacı boyutu büyük olan verileri saklamaktır. Örn. doküman(txt, word, excel, xml ), resim, video, ses vb. Bu tarz veriler önceden long, raw , long raw gibi veri tiplerinde tutulurdu günümüzde ise daha çok BLOB, CLOB, NCLOP gibi veri tiplerinde büyük objeler tutulur. long, raw , long raw gibi veri tipleri daha çok eskiye yönelik destek için kullanılmaktadır.
BLOB : Verileri binary olarak saklar. Max 128 TB a kadar veri saklar . Resim , video gibi dosyalar bu veri tipinde saklanabilir .
CLOB : Verileri karakter olarak saklar . Max 128 TB a kadar veri saklar . TXT dosyalarının içerisindeki verileri CLOB veri tipinde saklayabiliriz.
Oracle 11g ile ile birlikte yukarıda saydığımız veri tiplerini saklamak için Oracle Securefile yapısı duyurulmuştur. Securefile ile birlikte lob alanlarda sıkıştırma, yenilenen veriyi engelleme(deduplicate) şifreleme, önbellğe alma(cachinhg), loglama mekanizmasını belirleme gibi özellikler gelmiştir.
- Deduplicate : LOB alanlarda bu özelliği belirledikten sonra her kayıt için hash değerler çıkartılacak örtüşen hash değerler veritabanına 1 defa yazılacaktır. Burada aslında tabloda ne kadar yenileyen verimiz varsa o kadar avantajlıdır. Örnek verecek olursak benim çalıştığım tablolardan birinde 50 GB’lık tabloyu 7 GB’a düşürdü.
ALTER TABLE TEST MOVE LOB (VERI) STORE AS SECUREFILE ( DEDUPLICATE );
veya
CREATE TABLE TEST ( ID NUMBER, VERI CLOB ) TABLESPACE "TEST_SECUREFILE" LOB ("VERI") STORE AS SECUREFILE (TABLESPACE "TEST_SECUREFILE" DEDUPLICATE);
- Compress : Secure file burada standart sıkıştırma teknolojilerini kullanıyor ve verileriniz özellikle text tabanlıysa çok büyük avantajlar sağlayabiliyor bu daha çok verininizin tipine bağlı ama özellikle xml ve türevleri için şiddetle tavsiye ederim. Örnek verecek olursam benim ele aldığım bir tabloda 400 GB’dan 50 GB’a düştü tablo. Ve compress teknolojisiyle sadece disk alanından değil daha az i/o yapacağı için performansdan’da ciddi kazanç sağlanılıyor. Çok güzel sonuçlar aldım kesinlikle testler yapıp sonuçlarına göre uygulamaınızı öneririrm.
- Encryption : Verilerinizi wallet ile şifreleyebilirsiniz.
- Caching : Sık kullandığımız veri ise file systemden farklı olarak verilerimizi cache tutabiliriz.
- Logging : lob alanlarda ki verilerimiz büyük olduğu için redo loga gitmeden işlemlerimizin yapılmasını isteyebiliriz.
Securefile ile ilgili hikaye kısmından sonra gerçek hayattan tecrübelerimize gelecek olursak lob alanlarda saklanan veriye bağlı olarak deduplication ve compress özelliği disk alanı ve performans(disk io’dan dolayı) olarak çok etkileyici sonuçlar verebiliyor. Buda aslında pozitif olarak bütün yapıyı etkiliyor rman(yedek alacağı veritabanının boyutu azalıyor), datapump, data guard gibi ;
NOT : Securefile’ı kullanacağınız tabloyu mutlaka ve mutlaka tek tek test ettikten sonra karar verin çünkü tablonun içerdiği veriye bağlı olarak herhangi bir kazancı olmadığı gibi performans olarak kayba neden olabiliyor.
NOT : Aşağıdaki testler insert içindir delete ve select içinde bu paralelde sonuçlar vermektedir.
NOT : db_securefile parametresi veritabanında securefile kullanımını belirler.
- Permitted : Varsayılan değerdir. Varsayılan olarak lob lar basicfile olarak oluşturulur ama isteğe bağlı olarak securefile oluşturulabilir.
- Always : Varsayılan olarak lob alanlar securefile ile oluşturulur.
- Never : Lob alanlarda securefile kullanımını engeller.
- Ignore : Securefile kelimesi yok sayılır.
Yararlı olması Dilegiyle …
Yazar : Mustafa Bektaş Tepe