IOT a partycjonowanie
Piotr Pastuszka - 21-03-2006 01:00
IOT a partycjonowanie
Witam: Sytuacja: Tablica 17GB, 120mln elementów , 1 index na 3 kolumnach ( dodatkowe 5 GB) , dane przybywają czasowo, tzn są to jakies dane transakcyjne na których robiona analiza. Przybywają, a stare nie są modyfikowane. Dostęp głownie do ostatnich 6 miesięcy. Co lepsze patrząc na wydajność: IOT (Index Organized Tables - Tablice indexowe) ? Czy może lepiej użyć partycjonowania (partycja na dacie z podziałem na miesiące) ?
Obecnie Oracle 9i 9.2.0.1 64 bin , Solaris 2x900MHz SParc3 8GB RAM, Macierz .. Oczywiście na serwerze inne dane są także przetwarzane.
Nie możńa uzyć Partycjonowania i IOT jednocześnie. Więc trzeba wybrać. Na testy za bardzo nie ma czasu (ale nie przesądzam ze może będzie trzeba). Co lepsze z Państwa doświadczenia IOT czy Partycje w powyższym przypadku ?
Pozdr PiotrP
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 21-03-2006 01:00
"Piotr Pastuszka" <piotr.pastuszka@wp.pl> wrote: > Nie możńa uzyć Partycjonowania i IOT jednocześnie.
Można: http://download-west.oracle.com/docs...titi.htm#23472
You can partition both regular (heap organized) tables and index-organized tables, including those containing LOB columns. You can create nonpartitioned global indexes, range-partitioned global indexes, and local indexes on partitioned tables.
A w 10g jest jeszcze sporo usprawnień dla partycjonowania IOTów.
-- Michał Kuratczyk
Pedro44 - 22-03-2006 00:06
> > Nie możńa uzyć Partycjonowania i IOT jednocześnie. > > Można: > http://download- west.oracle.com/docs/cd/B10501_01/server.920/a96521/partiti.htm > #23472 > > You can partition both regular (heap organized) tables and > index-organized tables, including those containing LOB columns. You can > create nonpartitioned global indexes, range-partitioned global indexes, > and local indexes on partitioned tables. > > A w 10g jest jeszcze sporo usprawnień dla partycjonowania IOTów. >
IOTy mają sens tylko jeśli tabela nie ma znacząco więcej kolumn niż sam indeks, a tu widać ze skoro jest taka dysproporcja rozmiarów (3GB a 17GB) to tabela zawiera kolumn dużo więcej. Zamiana jej w IOT-a to leczenie dżumy za pomocą cholery i ładowanie się z jednego problemu w drugi. Nie do takich zastosowań oracle wymyślił IOTy.
Partycjonowanie może być drogą wyjścia z problemu ale nie musi - sporo zależy od aplikacji i rzeczywistego korzystania z danych historycznych.
Więcej nie sposób powiedzieć bo w zasadzie nie opisałeś jaki masz problem i z czym.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 22-03-2006 00:06
"Pedro44" <pedro44@WYTNIJ.gazeta.pl> wrote: > Partycjonowanie może być drogą wyjścia z problemu ale nie musi - > sporo zależy od aplikacji i rzeczywistego korzystania z danych > historycznych. Zgadzam się. Z tego co pytający napisał, to partycjonowanie wydaje się właściwym kierunkiem - powinno poprawić wydajność (skoro interesują nas głównie dane z konkretnego okresu, to aż się prosi o partycjonowanie po datach), a także zarządzanie tym wszystkim (obrót danych - dokładanie nowych i wyrzucanie przestarzałych przez proste operacje na partycjach).
> Więcej nie sposób powiedzieć bo w zasadzie nie opisałeś jaki masz > problem i z czym. Ano właśnie. Dlatego ograniczyłem się do zwrócenia uwagi, że można użyć jednego i drugiego, jeśli pytający czuje taką potrzebę.
-- Michał Kuratczyk
dap - 22-03-2006 00:06
Piotr Pastuszka wrote: > Witam: > Sytuacja: > Tablica 17GB, 120mln elementów , 1 index na 3 kolumnach ( dodatkowe 5 GB) , > dane przybywają czasowo, tzn są to jakies dane transakcyjne na których > robiona analiza. Przybywają, a stare nie są modyfikowane. Dostęp głownie do > ostatnich 6 miesięcy. > Co lepsze patrząc na wydajność: > IOT (Index Organized Tables - Tablice indexowe) ? > Czy może lepiej użyć partycjonowania (partycja na dacie z podziałem na > miesiące) ? > > Obecnie Oracle 9i 9.2.0.1 64 bin , Solaris 2x900MHz SParc3 8GB RAM, > Macierz .. > Oczywiście na serwerze inne dane są także przetwarzane. > > Nie możńa uzyć Partycjonowania i IOT jednocześnie. Więc trzeba wybrać. > Na testy za bardzo nie ma czasu (ale nie przesądzam ze może będzie trzeba). > Co lepsze z Państwa doświadczenia IOT czy Partycje w powyższym przypadku ?
Czesc, wszystko zalezy...
Najlepiej (nie najprosciej) przebuduj tak aplikacje by nie potrzebowala az tyle danych w 1 tabeli. Np. zrob jedna tabele LAST_HALF_YEAR a wszystko co starsze wrzucaj do innej. Jesli ktos potrzebuje szybkiego dostepu to dasz mu view ktore bedzie dzialalo na obu tabelach. Do takieg podzialu mozna uzyc tez tzw. materialized view.
Inne rozwiazanie to odpowiednie ustawianie parameterow storage dla tabeli. Prawdopodobnie tabla jak i index maja PCTFREE 10, czyli jesli ustawisz na PCTFREE 0, zaoszczedzisz ok 1,7 GB :). Dodaj tez local_managed i uniform size.
Dodatkowa mozliwosc to zastosowanie kompresji tabeli i indeksow pozwala zaoszczedzic do ok 66% miejsca. (Ale chyba dziala tylko w enterprise)
Do partycjonowania potrzebujesz wersji enterprise oraz dodatkowych licencji.
uzp
dap -- xoops.pl polanski.biz
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 22-03-2006 00:06
dap <news997@gazeta.pl> wrote: > Np. zrob jedna tabele LAST_HALF_YEAR a wszystko co starsze wrzucaj do > innej. Do tego właśnie służy partycjonowanie (i działa to znacznie lepiej). :-)
PS Oczywiście zakładając, że mamy na nie licencję. -- Michał Kuratczyk
dap - 22-03-2006 00:06
Michał Kuratczyk wrote: > dap <news997@gazeta.pl> wrote: > >>Np. zrob jedna tabele LAST_HALF_YEAR a wszystko co starsze wrzucaj do >>innej. > > Do tego właśnie służy partycjonowanie (i działa to znacznie lepiej). :-)
:) Oczywiscie ze tak, ale jak to mawial A.Slodowy "Zrob to sam" - tez przynosi efekty.
dap
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[Postgresql] =?ISO-8859-2?Q?Zapychaj=B1ca_si=EA_partycja_/?==?ISO-8859-2?Q?var_z_baz=B1_postgresql?=
instalacja sql 2005 poza partycją c:\
[MSSQL 2005] Zmiana partycjonowania tabeli
Oracle - na ktorej hash-partycji jest rekord?
MSSQL - partycjonowanie i nie chce dzialac
[oracle] partycje na tabeli i update'y
[oracle] partycjonowanie
PostgreSQL 8.1 - ustawienia sortowania itp.
SQL Server 2005 SP2
Pervasive + linux
zanotowane.pldoc.pisz.plpdf.pisz.plponland.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|