ďťż
 
[oracle] czas dzialania insertow na duzej tabeli ďťż
 
[oracle] czas dzialania insertow na duzej tabeli
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] czas dzialania insertow na duzej tabeli



Paweł Dec - 05-07-2007 00:00
[oracle] czas dzialania insertow na duzej tabeli
  Witam,

mam tabele z 80mln wierszy. 3 niewielkie kolumny, 3 indeksy. Insert 100 000
wierszy zajmuje ok 15 minut. Z prob ktore zrobilem wynika ze problemem jest
uaktualnienie indeksow.
(insert do pustej tabeli zajmuje 10sek, insert to pelnej tabeli bez indeksow
zajmuje < 1s)
Pytania:
1) czy rzeczywiscie przyczyna problemu jest ilosc danych w tabeli (moze te
15min to o wiele za dlugo i mozna cos poprawic?)
2) jesli to jest przyczyna, to jak sobie z tym poradzic? Od razu zaznaczam
ze pracuje na wersji Standard i nie mam mozliwosci uzycia partycjonowania
tabel.

Pawel Dec





szaman - 05-07-2007 00:00

  Jak zwykle za mało danych :-)

Chciałem Ci zaproponować zrównoleglenie insertów ale przecież nie mam
pojęcia na jakiej to maszynie stoi a co dopiero o reszcie środowiska.

Do zrównoleglenia nie potrzeba partycjonować (chociaż wtedy osiąga sie
najlepsze efekty).

Czy napewno to jest istotne aby ten proces przyspieszyc,
czy to może tylko takie dywagacje?




Paweł Dec - 05-07-2007 00:01

 
>
> Chciałem Ci zaproponować zrównoleglenie insertów ale przecież nie mam
> pojęcia na jakiej to maszynie stoi a co dopiero o reszcie środowiska.

juz uzupelniam:
Oracle 8.1.7 Standard Edition na SunFire V440 (4 procesory), 4GB RAM, Sun
Solaris 5.9

> Do zrównoleglenia nie potrzeba partycjonować (chociaż wtedy osiąga sie
> najlepsze efekty).
>

dzieki, sprobuje

> Czy napewno to jest istotne aby ten proces przyspieszyc,
> czy to może tylko takie dywagacje?

To nie dywagacje. To jest czesc dluzszych przetwarzan i tracimy na tym
lacznie ok 4.5h
Pawel




=?iso-8859-2?Q?=A3ukasz?= - 05-07-2007 00:01

  Dnia Wed, 4 Jul 2007 17:57:52 +0200, Paweł Dec napisał(a):

>
> To nie dywagacje. To jest czesc dluzszych przetwarzan i tracimy na tym
> lacznie ok 4.5h
> Pawel

Wnioskuję, że to może jakieś wsadowe przetwarzanie. To może spróbuj przed
insertami wyłączyć indeksy a po wpisaniu włączyć je. Baza niema wtedy
potrzeby na bieżąco aktualizować indeksów. Odbudowanie indeksu po
zainsertowaniu całej porcji danych powinno być szybsze niż bieżące
odświeżanie i cała operacja może przyśpieszyć.

Pozdrawiam
Łukasz





szaman - 06-07-2007 00:03

  Łukasz pisze:
> Dnia Wed, 4 Jul 2007 17:57:52 +0200, Paweł Dec napisał(a):
>
>
>> To nie dywagacje. To jest czesc dluzszych przetwarzan i tracimy na tym
>> lacznie ok 4.5h
>> Pawel
>
> Wnioskuję, że to może jakieś wsadowe przetwarzanie. To może spróbuj przed
> insertami wyłączyć indeksy a po wpisaniu włączyć je.

O tym również myślałem pisząc że brak danych co do środowiska :-)
Jeżeli to jest tabela produkcyjna to odpada jakiekolwiek wyłączanie
indeksów i triggerów.
Ale jeżeli nie to jak najbardziej.

Następnym krokiem to może być dobranie do akurat tego procesu optymalnej
liczby rekordów w transakcji. Napewno nie jest optymalnym insertować po
jednym rekordzie a zbyd dużych transakcji na tysiące rekordów tez nie
należy budować. Optimum jest gdzieś pomiędzy ;-)

Niestety nie mogę sie zbytnio pochwalić doświadczeniem z taką dość już
leciwą wersją bazy - ale jeżeli rzeczywiście to jakieś przetwarzanie
"wsadowe" to zainteresuj się loadrem z sql plus'a albo czymś podobnym (w
nowszych wersjach bazy jest w czym przebierać).

Czy w wersji 8 była juz możliwość użycia tabel typu external?

Co do zrównoleglenia to te cztery procesory mogą rodzić nadzieję na
powodzenie zmniejszenia czasu importu - po zastosowaniu insertów na
kilku równoległych sesjach. Ważne aby te sesje miały tak dobrane dane
aby nie wchodziły sobie w paradę tzn. np nie blokowały czegoś jedna
drugiej - wtedy korzyści ze zrównoleglenia dotyczą nie tylko insertów a
wszystkich innych aspektów "przetwarzania wsadowego".

Mi się udało przyspieszyć i to czasem o dwa rzędy szybciej - no ale
procesorów było ponad 40 :-)




Paweł Dec - 11-07-2007 00:00

  Dziekuje za pomoc. Tak naprawde bardziej inetersowalo mnie czy takie czasy
wykonania przy podanej ilosci wierszy uznacie za prawdopodobne.

To przetwarzanie nie jest wsadowe w takim sensie ze baza nic nie robi tylko
przyjmuje dane. Nie bardzo potrafie sobie wyobrazic zrownoleglenie tych
insertow. Przed nimi i za nimi sa inne zapytania i instrukcje DML. Zatem
rowniez niechetnie bym wstawial po kawalku i commitowal. Przez chwile mialem
nadzieje na rownolegle wykonanie tych insertow ale opcja parallel tez jest
tylko od wersji enterprise. Zreszta redukcja tego czasu powiedzmy o polowe
nie bardzo mnie satysfakcjonuje.
Sciaganie indeksow i ich ponowne zalozenie po insercie, mozliwe z punktu
widzenia "srodowiska" nie bedzie szybsze przy takich proporcjach danych: 80M
wierszy w tabeli do 100K wierszy wstawianych.

Nie wiem co sa tabele typu external, ale domyslam sie ze byc moze mialyby
zastosowanie przy przetwarzaniu wsadowym

Wydaje mi sie ze ostatecznie rozwiazaniem bedzie "zasymulowanie"
partycjonowania:
stworzenie nowej tabeli z danymi historycznymi, niepotrzebnymi do biezacych
przetwarzan i okresowe przerzucanie danych do tej tabeli, tak zeby tabela
"glowna" pozostawala wzglednie mala. I do tego view gdy chce ogladac dane
zarowno biezace jak i historyczne.
Taka operacja potrwa zapewne kilka godzin ale to jest do zaakceptowania

Pawel

15min -> To czesc dluzszych przetwarzan w ktorych procesu produkcyjnego

Użytkownik "szaman" <t.cwajda@datamining.com> napisał w wiadomości
news:f6i46l$kq5$1@atlantis.news.tpi.pl...
> Łukasz pisze:
>> Dnia Wed, 4 Jul 2007 17:57:52 +0200, Paweł Dec napisał(a):
>>
>>
>>> To nie dywagacje. To jest czesc dluzszych przetwarzan i tracimy na tym
>>> lacznie ok 4.5h
>>> Pawel
>>
>> Wnioskuję, że to może jakieś wsadowe przetwarzanie. To może spróbuj przed
>> insertami wyłączyć indeksy a po wpisaniu włączyć je.
>
> O tym również myślałem pisząc że brak danych co do środowiska :-)
> Jeżeli to jest tabela produkcyjna to odpada jakiekolwiek wyłączanie
> indeksów i triggerów.
> Ale jeżeli nie to jak najbardziej.
>
> Następnym krokiem to może być dobranie do akurat tego procesu optymalnej
> liczby rekordów w transakcji. Napewno nie jest optymalnym insertować po
> jednym rekordzie a zbyd dużych transakcji na tysiące rekordów tez nie
> należy budować. Optimum jest gdzieś pomiędzy ;-)
>
> Niestety nie mogę sie zbytnio pochwalić doświadczeniem z taką dość już
> leciwą wersją bazy - ale jeżeli rzeczywiście to jakieś przetwarzanie
> "wsadowe" to zainteresuj się loadrem z sql plus'a albo czymś podobnym (w
> nowszych wersjach bazy jest w czym przebierać).
>
> Czy w wersji 8 była juz możliwość użycia tabel typu external?
>
> Co do zrównoleglenia to te cztery procesory mogą rodzić nadzieję na
> powodzenie zmniejszenia czasu importu - po zastosowaniu insertów na kilku
> równoległych sesjach. Ważne aby te sesje miały tak dobrane dane aby nie
> wchodziły sobie w paradę tzn. np nie blokowały czegoś jedna drugiej -
> wtedy korzyści ze zrównoleglenia dotyczą nie tylko insertów a wszystkich
> innych aspektów "przetwarzania wsadowego".
>
> Mi się udało przyspieszyć i to czasem o dwa rzędy szybciej - no ale
> procesorów było ponad 40 :-)
  • 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] 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?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?= [Oracle] =?ISO-8859-2?Q?=A3=B1czenie_wierszy_z_zapytania_?==?ISO-8859-2?Q?w_jeden_string?= =?iso-8859-2?q?[oracle_10g]_jak_da=E6_grant_do_gv$=2E=2E=2E=2E_=3F?= [Oracle] 10g wersja =?ISO-8859-2?Q?pe=B3na_i_Express_Editi?==?ISO-8859-2?Q?on?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • melooonka.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