ďťż
 
Oracle + Web PLSQL ďťż
 
Oracle + Web PLSQL
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 + Web PLSQL



Szczepan Marchewka - 26-11-2005 22:29
Oracle + Web PLSQL
  Czesc

Tworze aplikacje webowa w PLSQL, operujaca na bardzo duzej bazie danych.
Niektore zapytania do danych tworzone dynamicznie sa tak duze, ze nie jest
mozliwe tworzenie zestawienia na biezaco on-line (timeout'y), ale trzeba je
kolejkowac na serwerze, zapisywac w bazie, a na ekranie w przegladarce
wyswietlac dopiero po ukonczeniu generowania (strona w miedzyczasie sie
odswieza cyklicznie z odpowiednim komunikatem ze trwa oczekiwanie na
zestawienie).
W tej chwili generowanie zestawien jest zrobione w PLSQL jako dynamicznie
tworzone joby bazy danych (pojawiajace sie i znikajace po ukonczeniu ;-)),
a sam proces generowania wyglada tak, ze w pakiecie PLSQL tworzony jest
CLOB (zawierajacy HTML), a nastepnie po zakonczeniu zapisywany do tabeli, z
ktorej potem ma wedrowac do przegladarki.
Problem polega na tym, ze jest to rozwiazanie malo wydajne jak na nasze
potrzeby i sprzet. Samych zapytan SQL juz nie podstroi, gdyz chyba sa juz
wyzylowane na maksa.
Moim zdaniem mozna i trzeba sprobowac przyspieszyc aplikacje (optymalizacja
kodu PLSQL, przyspieszenie engine PLSQL itd, optymalizacja bazy danych w
ktorej jest aplikacja).
W zwiazku z tym mam kilka pytan:
1. W jaki sposob przyspieszyc engine PLSQL (jakie parametry mozna
pozmieniac itd)?
2. Czy natywna kompilacja moze cos tu pomoc i w jakim stopniu?
3. Jakie rozwiazanie zamiast generowania duzej zmiennej CLOB i zapisu jej
do tabeli tymczasowej mozna zastosowac (zapis jako pliki na dysku)?
4. Jaka jest wydajnosc obslugi plikow poprzez UTL_FILE (czy to moze
przyspieszyc tworzenie zestawien)?
5. Jak moze wplywac liczba jobow na baze danych i aplikacje?
6. Czy lepiej miec np 5 stale dzialajacych jobow, cyklicznie obslugujacych
kolejne zestawienia, czy tez dopuscic np. 20-30 jobow, odpalanych
dynamicznie na zadanie?
7. Jak wypada wydajnosc procedur pisanych w Java w stosunku do PLSQL?

Oczywiscie nie da sie arbitralnie odpowiedziec na wszystkie pytania, ale
moze ktos juz zadawal sobie niektore z tych pytan i potrafi cos doradzic.
Wszystkie rozwiazania moglbym testowac osobiscie, ale czas nagli, a madrych
ludzi nie brakuje. ;-))

Z gory dzieki za pomoc.

Szczepan@Marchewka.info.pl
-----------------------------------------------------------------------
In the beginner's mind there are many possibilities,
but in the expert's mind there are few. (Shunryu Suzuki 1905-1971)
-----------------------------------------------------------------------





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 26-11-2005 22:29

  Szczepan Marchewka wrote:
> Czesc
>
> Tworze aplikacje webowa w PLSQL, operujaca na bardzo duzej bazie danych.
> Niektore zapytania do danych tworzone dynamicznie sa tak duze, ze nie jest
> mozliwe tworzenie zestawienia na biezaco on-line (timeout'y), ale trzeba je
> kolejkowac na serwerze, zapisywac w bazie, a na ekranie w przegladarce
> wyswietlac dopiero po ukonczeniu generowania (strona w miedzyczasie sie
> odswieza cyklicznie z odpowiednim komunikatem ze trwa oczekiwanie na
> zestawienie).
> W tej chwili generowanie zestawien jest zrobione w PLSQL jako dynamicznie
> tworzone joby bazy danych (pojawiajace sie i znikajace po ukonczeniu ;-)),
> a sam proces generowania wyglada tak, ze w pakiecie PLSQL tworzony jest
> CLOB (zawierajacy HTML), a nastepnie po zakonczeniu zapisywany do tabeli, z
> ktorej potem ma wedrowac do przegladarki.
> Problem polega na tym, ze jest to rozwiazanie malo wydajne jak na nasze
> potrzeby i sprzet. Samych zapytan SQL juz nie podstroi, gdyz chyba sa juz
> wyzylowane na maksa.

Nie wiem, czy dużo osiągniesz optymalizując w sposób jaki chcesz. Raczej
postaraj się aby dane do zestawień były zawsze dostępne w formie która umożliwia
ich przoste i szybkie wybranie selectem, lub procedurą. Możesz to zrobić przy
pomocy triggerów, albo przygotowując co jakiś czasz częściowo zagregowane dane.
Oczywiście nie zawsze da się pójść w tym kierunku, ale zazwyczaj można.

--
P.M.




Lucyna Witkowska - 26-11-2005 22:29

  Paweł Matejski <madej@spam.madej.pl.eu.org> napisał:

> Nie wiem, czy dużo osiągniesz optymalizując w sposób jaki chcesz. Raczej
> postaraj się aby dane do zestawień były zawsze dostępne w formie która umożliwia
> ich przoste i szybkie wybranie selectem, lub procedurą. Możesz to zrobić przy
> pomocy triggerów, albo przygotowując co jakiś czasz częściowo zagregowane dane.
> Oczywiście nie zawsze da się pójść w tym kierunku, ale zazwyczaj można.

Zgadzam sie.
Tez bym poszla w strone, np. materialized view.
Jesli tych stron generowanych do CLOBa jest duzo, to wyciaganie ich z bazy
tez obciaza serwer.

Pozdrowienia,
LW




news - 26-11-2005 22:29

 
> 1. W jaki sposob przyspieszyc engine PLSQL (jakie parametry mozna
> pozmieniac itd)?
> 2. Czy natywna kompilacja moze cos tu pomoc i w jakim stopniu?

W 9i istniala kompilacja natywna kodu PL/SQL - powinna dac do 30%
wydajnosci. Ale i tak musisz to sprawdzic...

> 3. Jakie rozwiazanie zamiast generowania duzej zmiennej CLOB i zapisu jej
> do tabeli tymczasowej mozna zastosowac (zapis jako pliki na dysku)?
> 4. Jaka jest wydajnosc obslugi plikow poprzez UTL_FILE (czy to moze
> przyspieszyc tworzenie zestawien)?
> 5. Jak moze wplywac liczba jobow na baze danych i aplikacje?

job_queue_processes - zmieniany automatycznie

> 6. Czy lepiej miec np 5 stale dzialajacych jobow, cyklicznie obslugujacych
> kolejne zestawienia, czy tez dopuscic np. 20-30 jobow, odpalanych
> dynamicznie na zadanie?

Sprawdz - zakladajac ze w ilosci jobow tkwi problem.

> 7. Jak wypada wydajnosc procedur pisanych w Java w stosunku do PLSQL?

Z tego co slyszalem to PL/SQL jest zawsze najszybszy...

Przy tuningu musisz sobie odpowiedziec co w Twoim przypadku zajmuje
najwiecej czasu. Podales 7 mozliwych punktow, ale sam musisz
przetestowac i dokladnie okreslic co jest waskim gardlem.

Spotkalem sie tez z takim rozwiazaniem, ze strony sa generowane
automatycznie w nocy, a zawartosc w postaci danych z Oracle jest
dolaczana pozniej. Przy pierwszym odwolaniu do strony jest tez
sprawdzane czy jej wyglad (nie tresc) nie zostal zmieniony. Jesli tak to
jest ona na nowo generowana, jesli nie to czeka sie tylko na selekty z
bazy danych.

dap





Radoslaw Witkowicki - 26-11-2005 22:29

  > > 7. Jak wypada wydajnosc procedur pisanych w Java w stosunku do PLSQL?

> Z tego co slyszalem to PL/SQL jest zawsze najszybszy...

To źle Pan słyszał, Java jest o niebo szybsza od PL/SQL.




news - 29-11-2005 10:11

  Radoslaw Witkowicki wrote:
>>> 7. Jak wypada wydajnosc procedur pisanych w Java w stosunku do PLSQL?
>
>> Z tego co slyszalem to PL/SQL jest zawsze najszybszy...
>
> To źle Pan słyszał, Java jest o niebo szybsza od PL/SQL.

Jakies dzialajace przyklady?

dap
  • 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
  • red-hacjenda.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