ďťż
 
[oracle] partycjonowanie ďťż
 
[oracle] partycjonowanie
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[oracle] partycjonowanie



Ra - 10-09-2006 00:59
[oracle] partycjonowanie
  POczytałem sobie na temat jw i mam parę wątlipwości

- przy typie range podajemy np konkretny zakres dat, czy jeżeli chcę mie
c partycje per miesiac to co miesiac muszę sam recznie ją tworzyc czy
jest jakis automagiczny sposob żeby same się tworzyły

- czy mogą uzywac własnych funkcji hashujących ? czy przyspieszenie
zapytan wynika tylko z faktu ze partycje są w róznych tablespace'ach na
różnych dyskach ?

Powiedzmy że mam tabele do której zapisywane są statystyki odwiedzanych
stron, wysyłanych kampani meilowych itp - ok 17mln wierszy/13GB
Czy tutaj najlepiej zrobic partycje tylko wg typu zdarzenia (kliknięcie
na stronie, wysłanie meila). Podział wg zakresu dat chyba nie ma sensu
bo raczej mam zapytania typu date < jakas_data.
Jakie indeksy zastosowac: global non-partitioned chyba nie przyspieszą
zapytań
Na co jeszcze zwrócic uwagę ?

P. Arek





Michał Kuratczyk - 10-09-2006 00:59

  Ra wrote:
> - przy typie range podajemy np konkretny zakres dat, czy jeżeli chcę mie
> c partycje per miesiac to co miesiac muszę sam recznie ją tworzyc czy
> jest jakis automagiczny sposob żeby same się tworzyły
No generalnie musisz mieć partycje, do których wrzucasz dane, ale zrobienie
zadania, które co jakiś czas utworzy kolejnych N partycji nie jest przecież
żadnym problemem.

> czy przyspieszenie zapytan wynika tylko z faktu ze partycje są w róznych
> tablespace'ach na różnych dyskach ?
Tablespace nie ma tu raczej znaczenia.
http://download-uk.oracle.com/docs/c....htm#sthref177

> Powiedzmy że mam tabele do której zapisywane są statystyki odwiedzanych
> stron, wysyłanych kampani meilowych itp - ok 17mln wierszy/13GB
> Czy tutaj najlepiej zrobic partycje tylko wg typu zdarzenia (kliknięcie
> na stronie, wysłanie meila). Podział wg zakresu dat chyba nie ma sensu
> bo raczej mam zapytania typu date < jakas_data.
Musisz określić co chcesz osiągnąć. Dlaczego w ogóle myślisz
o partycjonowaniu tej tabeli? Co jest nie tak, jaki problem
chcesz rozwiązać?

> Na co jeszcze zwrócic uwagę ?
Na to, że partycjonowanie jest przede wszystkim narzędziem ułatwiającym
zarządzanie bazą ("okna danych" - trzymasz ostatnie X miesięcy czy lat),
a dopiero w drugiej kolejności narzędziem poprawiającym wydajność. Do
poprawy wydajności używa się go głównie w hurtowaniach danych lub przy
hurtowanianych funkcjach systemu OLTP.

--
Michał Kuratczyk




Ra - 10-09-2006 01:00

  On 2006-09-08, Michał Kuratczyk <kura@lj.pl> wrote:
> Ra wrote:
>
>> Powiedzmy że mam tabele do której zapisywane są statystyki odwiedzanych
>> stron, wysyłanych kampani meilowych itp - ok 17mln wierszy/13GB
>> Czy tutaj najlepiej zrobic partycje tylko wg typu zdarzenia (kliknięcie
>> na stronie, wysłanie meila). Podział wg zakresu dat chyba nie ma sensu
>> bo raczej mam zapytania typu date < jakas_data.
> Musisz określić co chcesz osiągnąć. Dlaczego w ogóle myślisz
> o partycjonowaniu tej tabeli? Co jest nie tak, jaki problem
> chcesz rozwiązać?
>
przede wszystkim chce przyspieszyc wykonywanie sie pewnego procesu,
który de facto leci tylko po wierszach ktore dotycza meili - wiec wzglednie
maly zbior danych w stosunku do calej tabeli
- czy wieksza liczba partycji ma jakies zle strony ? np alokuje
wiecej miejsca na dysku
- jak najlpiej - tak aby przerwa byla krotka lub wcale-wykonac takie
partycjonowanie, jak rozumiem zawsze trzeba utworzyc nowa table i
najwyzej zmienic jej potem nazwe, czy przez
create table as select czy alter table ... exchange.
Jeszcze zauwazylem ze view oparte na tej tabeli maja warunki typu
user_is is not null wiec ew. trzeba zalozyc indeks na funkcji ?

P. Arek




Michał Kuratczyk - 10-09-2006 01:00

  Ra wrote:
> przede wszystkim chce przyspieszyc wykonywanie sie pewnego procesu,
> który de facto leci tylko po wierszach ktore dotycza meili - wiec
> wzglednie maly zbior danych w stosunku do calej tabeli
A jesteś pewien, że odpowiednie indeksowanie nie rozwiąże sprawy?

> - czy wieksza liczba partycji ma jakies zle strony ? np alokuje
> wiecej miejsca na dysku
Pewnie tak, ale raczej pomijalnie więcej. Ja mam tabele posiadające
po kilkaset partycji i nie jest to problem.

> - jak najlpiej - tak aby przerwa byla krotka lub wcale-wykonac takie
> partycjonowanie, jak rozumiem zawsze trzeba utworzyc nowa table i
> najwyzej zmienic jej potem nazwe, czy przez
> create table as select czy alter table ... exchange.
No można zrobić nową tabelę a potem istniejącą tabelę zamienić z partycją
tej nowej i zmienić nazwę nowej na starą. Przerwa będzie minimalna.

> Jeszcze zauwazylem ze view oparte na tej tabeli maja warunki typu
> user_is is not null wiec ew. trzeba zalozyc indeks na funkcji ?
A jaka tu jest funkcja? :->
Pomyśl, czy nie możesz dodać "not null" w definicji tabeli.

--
Michał Kuratczyk
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= Oracle 19g +Insert +Insert +Insert... [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • quentinho.opx.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com