Tworzę tabelę, w której przechowuję XML. Do przechowywania XML używam typu danych CLOB. Maksymalny rozmiar mojego XML to 5kb. Jaki rozmiar kolumny CLOB powinienem zdefiniować podczas tworzenia tabeli?Definiowanie rozmiaru obiektu CLOB w Oracle
Odpowiedz
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:
- 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.)
- 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
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 –