2013-04-05 38 views

Odpowiedz

10

Nie określasz rozmiaru dokładnie podczas ustawiania klobu (w przeciwieństwie do varcharu). to po prostu clob.

Maksymalny rozmiar lobu to 4Gb.

Storage mądry będzie wykorzystywać przestrzeń w następujący sposób:

  1. jeśli lob jest zdefiniowana jak w wierszu, a lob jest mniej niż ~ 4kB, to będzie po prostu zająć się ilość miejsca w dokumencie jest. (np. przechowuj xml 512 bajtów w rzędzie i użyje 512 bajtów.)
  2. jeśli lob jest zdefiniowany z rzędu (lub przekroczony 4kb), to użyje wielokrotności rozmiaru "chunk", który zdefiniowałeś kiedy . tworzenia tabeli

podczas tworzenia kolumny LOB, można określić jego zapis pamięci kontrolować w rzędzie i out-of-rzędu opcje tak:

LOB (c) STORE AS lobseg (DISABLE STORAGE IN ROW CHUNK 16384) 

tj które określają, że lob nigdy nie może być przechowywany w zwykłym pliku danych tabeli i przydziela pamięć masową w wielokrotności 16 kb na porcję, więc nawet jeśli twój dokument wynosił 1kb, zajęłoby to 16 kb wściekłość.

jeśli twoje dokumenty xml to tylko 5kb, możesz chcieć rozważyć przechowywanie w wierszu i umieścić niewielki rozmiar porcji (minimalny rozmiar porcji to 1 blok, więc jeśli masz tabelę z rozmiarem 4kb, twoja porcja minumum rozmiar będzie 4kb, jeśli podasz mniej, zostanie zignorowany). wadą polegającą na dopuszczeniu wgłębień w rzędzie jest to, że stół będzie większy, więc skany z dużym zakresem mogą nieco ucierpieć (ale pobieranie lobów jest szybsze).

Również w 11g masz możliwość kompresji odcinków lobowych, które możesz rozważyć (jeśli twoja licencja obejmuje to). Jednak przy tak małych dokumentach może nie być wielkiej korzyści.

więcej tu: http://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm

+5

W 11 g, maksymalna wielkość LOB jest (4 GB - 1) * (DB rozmiar bloku), które działa się między 8 i 128 TB. Nie, żeby wiele osób musiało przekroczyć stary limit 4 GB, ale możesz. http://docs.oracle.com/cd/B28359_01/server.111/b28320/limits001.htm –