Lepiej laczyc sie raz czy co zapytanie?
luco - 17-11-2006 07:14
Lepiej laczyc sie raz czy co zapytanie?
Witam! Pisze aplikacje (w Javie, jesli to ma jakies znaczenie) korzystajaca z bazy danych (Postgresql 8.0, jesli to ma jakies znaczenie:) i zastanawiam sie co jest lepsza praktyka: laczyc sie z baza danych i utrzymywac polaczenie do konca sesji, czy tez laczyc sie tylko na czas zapytania sql i po otrzymaniu odpowiedzi konczyc polaczenie? Jakie sa plusy i minusy tych opcji? Co z wzgledami bezpieczenstwa?
z gory dzieki za odpowiedz, pozdrawiam, Lukasz
konserwa44@gmail.com - 17-11-2006 07:14
luco napisał(a): > Witam! > Pisze aplikacje (w Javie, jesli to ma jakies znaczenie) korzystajaca z > bazy danych (Postgresql 8.0, jesli to ma jakies znaczenie:) i > zastanawiam sie co jest lepsza praktyka: laczyc sie z baza danych i > utrzymywac polaczenie do konca sesji, czy tez laczyc sie tylko na czas > zapytania sql i po otrzymaniu odpowiedzi konczyc polaczenie? Jakie sa > plusy i minusy tych opcji? Co z wzgledami bezpieczenstwa? > > z gory dzieki za odpowiedz, > pozdrawiam, > Lukasz
heh, ale glupie pytanie, jasne ze laczyc sie za kazdym razem....a jak sesja bedzie trwala godzine ? to co ?:P pzdr Krzychoo
sg - 17-11-2006 07:14
konserwa44@gmail.com napisał(a): > luco napisał(a): >> Witam! >> Pisze aplikacje (w Javie, jesli to ma jakies znaczenie) korzystajaca z >> bazy danych (Postgresql 8.0, jesli to ma jakies znaczenie:) i >> zastanawiam sie co jest lepsza praktyka: laczyc sie z baza danych i >> utrzymywac polaczenie do konca sesji, czy tez laczyc sie tylko na czas >> zapytania sql i po otrzymaniu odpowiedzi konczyc polaczenie? Jakie sa >> plusy i minusy tych opcji? Co z wzgledami bezpieczenstwa? >> >> z gory dzieki za odpowiedz, >> pozdrawiam, >> Lukasz > > heh, ale glupie pytanie, jasne ze laczyc sie za kazdym razem....a jak > sesja bedzie trwala godzine ? to co ?:P > pzdr > Krzychoo >
no właśnie, to co?
-- Na wszystko skutecznie pomaga woda. Dwie, trzy krople na szklankę wódki
wloochacz - 18-11-2006 00:03
>> Witam! >> Pisze aplikacje (w Javie, jesli to ma jakies znaczenie) korzystajaca z >> bazy danych (Postgresql 8.0, jesli to ma jakies znaczenie:) i NTG
>> zastanawiam sie co jest lepsza praktyka: laczyc sie z baza danych i >> utrzymywac polaczenie do konca sesji, czy tez laczyc sie tylko na czas >> zapytania sql i po otrzymaniu odpowiedzi konczyc polaczenie? Jakie sa >> plusy i minusy tych opcji? Co z wzgledami bezpieczenstwa? To zależy... Rozwiązaniem prawie idealnym chętnie i często stosowanym jest ConenctionPooling. Implementacja tego w Javie jest raczej prosta - right?
> heh, ale glupie pytanie, jasne ze laczyc sie za kazdym razem....a jak > sesja bedzie trwala godzine ? to co ?:P Jaja sobie robisz, prawda? Bo jeśli nie, to tak durnej propozycji dawno nie widziałem...
-- wloochacz
Grzesiek G. - 18-11-2006 00:03
sg napisał(a): > konserwa44@gmail.com napisał(a): > >> luco napisał(a): >> >>> Witam! >>> Pisze aplikacje (w Javie, jesli to ma jakies znaczenie) korzystajaca z >>> bazy danych (Postgresql 8.0, jesli to ma jakies znaczenie:) i >>> zastanawiam sie co jest lepsza praktyka: laczyc sie z baza danych i >>> utrzymywac polaczenie do konca sesji, czy tez laczyc sie tylko na czas >>> zapytania sql i po otrzymaniu odpowiedzi konczyc polaczenie? Jakie sa >>> plusy i minusy tych opcji? Co z wzgledami bezpieczenstwa? >>> >>> z gory dzieki za odpowiedz, >>> pozdrawiam, >>> Lukasz >> >> >> heh, ale glupie pytanie, jasne ze laczyc sie za kazdym razem....a jak >> sesja bedzie trwala godzine ? to co ?:P >> pzdr >> Krzychoo >> > > no właśnie, to co? > Przy utrzymywaniu połączenia będą zaalokowane zasoby na serwerze przez tą godzinę.
Pozdrawiam
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
Michał Kuratczyk - 18-11-2006 00:03
Grzesiek G. wrote: > Przy utrzymywaniu połączenia będą zaalokowane zasoby na serwerze przez > tą godzinę. Co w ogólnym przypadku jest znacznie lepsze niż ciągłe alokowanie i zwalnianie tych zasobów przy nawiązywaniu i kończeniu połączeń. Connection pooling nie powstał przypadkiem - służy właśnie do zminimalizowania narzutu wynikającego z nawiązywania połączenia. Natomiast nie zmienia to faktu, że należy programować w taki sposób, żeby ograniczyć ilość wywołań (np. wywołać procedurę składowaną, która wykona wszystkie potrzebne zapytania i zwróci gotowy wynik, zamiast wysyłać te zapytania jedno po drugim z zewnątrz).
-- Michał Kuratczyk
mwgomez - 18-11-2006 00:03
We wszystkich językach programowania utrzymuje się stale połączenie z bazą danych. Takie nawiazaywanie połączenia za każdym razem miałoby sens jedynie wówczas gdyby odwołania do bazy danych odbywały sie nizmiernie żadko. Poza tym wiekszość językó posiada już środki do przechwytywania wyjątków i taką sytację, ze utracono połączenie da się wychwycić.
Pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Grzesiek G. - 18-11-2006 00:03
mwgomez napisał(a): > We wszystkich językach programowania utrzymuje się stale połączenie z bazą > danych. Nie we wszystkich. Te z rodziny .NET są wręcz zaprojektowane do pracy bez ciągłego utrzymywania połączenia. Oczywiście można na siłę takie otwarte połączenie utrzymywać:-).
Takie nawiazaywanie połączenia za każdym razem miałoby sens jedynie > wówczas gdyby odwołania do bazy danych odbywały sie nizmiernie żadko.
Tak to wygląda z punktu widzenia bazy danych. Baza sobie czeka na polecenia wydawane przez aplikacje.
Pozdrawiam
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
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?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
[sql][pgsql] zapytanie sql
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 |
|