🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #21074

Re: windows forms i bazy danych

#21074
From: 3P
Date: Tue, 06 Oct 2009 13:38
108 lines
5863 bytes
Dnia 06-10-2009 o 11:40:22 wloochacz <nospam.wloochacz@nospam.dgbit.pl>  
napisał(a):

> 3P pisze:
>> Dnia 05-10-2009 o 12:39:10 wloochacz <nospam.wloochacz@nospam.dgbit.pl>  
>> napisał(a):
>>
>>> 3P pisze:
>>> /ciach/
>>>
>>>> Chyba czegoś nie rozumiesz.
>>> Nie sądzę...
>>>
>>>> Właśnie po to jest connection pooling, abyś zamykał i otwierał  
>>>> połączenia bardzo często.
>>> Niezupełnie.
>>> Connection pooling jest po to, abyś nie musiał robić osobnego  
>>> "connection dla każdego zapytania", ot co...
>>> A "przy okazji" załatwia w inteligentny (mniej lub bardziej) cykl  
>>> życia danego connection, które jest zarządzane pulą.
>>> Generalnie mechanizm jest prosty; potrzebujesz connection prosisz pulę  
>>> o nie. Ono Ci daje to które jest aktualnie wolne, lub tworzy je dla  
>>> Ciebie, kiedy wolnego nie ma.
>>> Kiedy connection nie jest Ci potrzebne - wraca do puli i czeka na  
>>> następne żądania.
>>> Dzięki temu nie musisz się martwić o to, czy dane connection nie jest  
>>> zaalokowane przez inne zapytanie.
>>>
>> Nie rozumiem o czym piszesz w ostatnim zdaniu. A kiedy niby musze się  
>> martwić?
> Otwórz sobie recordset z kursorem po stornie serwera (nawet w .NET da  
> się to zrobić...), nie zamykaj goi do tego samego połączenia (ta sama  
> instancja, czyli bez puli) podepnij nową instancję w/w zapytania.
> Jak trafisz na komunikat "connection is busy with another resultset", to  
> wróć i pogadamy.
Skoro nie da się w .NET to po jakiego grzyba to tutaj piszez? Zauważyłeś  
nazwę grupy?
Poza tym jakbym chciał wykonywać 2 operacje jednocześnie to bym miał 2  
połączenia, albo MARS.

>
> Pisałeś kiedykolwiek w czymś innym niż .NET?
> Tam gdzie nie było poolingu?
Tak, ale nie pisałem aplikacji bazo danowych. A ty chyba w .NET dopiero  
zaczynasz.
>
>> Jednak nie rozumiesz chyba idei connection poolingu.
> Oczywiście.
Dobrze, że tutaj się zgadzamy.
>
>> Ponieważ zalecaną metodą pracy jest tworzenie połączenia na czas  
>> zapytania i zamykanie po jego wykonaniu
> Bzdura.
> Kto to zaleca w WindowsForms?
> Gdzie to jest napisane?
> Pokaż proszę.
> Nie piszę w .NET i nie piszę app webowych.
>
Już kolega zacytował. To po cholerę się wypowiadasz jak nie masz pojęcia o  
.NET?

>> to stosuje się connection pooling, aby nie tracić czasu na tworzenie  
>> nowych połączeń. Dzięki temu
>> masz cały czas dostępne obiekty połączeń do bazy (tzn. klienci mogą się  
>> łączyć do bazy).
> Tak, ale te połączenia i tak zostały stworzone i są utrzymywane przez  
> pulę - wszystko dzieje się automatycznie, to całą różnica.
>
>> Dzięki temu
>> więcej klientów może pracować równolegle.
> Dzięki czemu? Jak pooling przekłąda się na "więcej klientów"?
> Chyba nie rozumiesz idei connection poolingu.
A no tak mądralo, że serwer ma ograniczoną liczbę jednoczesnych połączeń.  
Abyś zrozumiał, bo widzę,
że masz spore problemy wyjaśnię ci na takim przykładzie.
Serwer ma ograniczenie do 3 jednoczesnych połączeń. Wg twojego super  
designe'u 3 klientów odpala
aplikację i wykorzystuje te 3 połączenia. Teraz 4 klient chce się połączyć  
i dupa!

W "moim" projekcie każdy z nich bardzo krótko wykorzystuje połączenie.  
Dzięki temu 4 i 40 klient podłącza się
bez problemu.

Teraz zrozumiałeś jak connection pooling przekłada się na więcej klientów?  
Oczywiście bez CP też można
to osiągnąć, ale uzyskiwanie połączeń będzie dłuższe.

>
>> Connection pooling daje ci tylko to, że szybciej uzyskujesz połączenia.
> Niezupełnie szybciej - po prost pula trzyma połączenia, więc dostajesz
   ^^^^^^^^^^^^^^^^^^^^
> istniejące aktywne połączenie. Jeżeli pula nie ma wolnych aktywnych  
> połączeń to musi je utworzyć; tyle że w przypadku MS SQLa utworzenie  
> połączenia typu pooled nie wymaga wykonania wszystkich akcji, które są  
> wymagane do utworzenia normalnego połączenia - a więc tak, tworzenia  
> połączenia typu pooled jest szybsze.
                          ^^^^^^^^^^^^^
Bez komentarza
>
>> Gdybyś miał cały czas otwarte połączenia to ConnectionPooling do  
>> niczego nie byłby ci potrzebny.
> Co Ty nie powiesz?
> Jest potrzebny - spróbuj utrzymać połączenie i wykonać jakąś operację,  
> ale równolegle w wielu wątkach używając tego samego połączenia (nie  
> puli).
> A potem wróć i pochwal się wynikami...
Już ci napisałem jak to się robi.
Technical Details
Message-ID: <op.u1dr580vmsp0fz@mcs>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsfeed1.plix.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mail
References: <3489e71f-a9c5-4e6a-9c8e-4277001d27bc@m11g2000yqf.googlegroups.com> <ha3ac0$hgl$2@nemesis.news.neostrada.pl> <ha4i1f$4d9$1@nemesis.news.neostrada.pl> <ha4p6t$3nu$1@news.wp.pl> <ha4rg5$emt$2@atlantis.news.neostrada.pl> <ha4s9n$5b4$1@news.wp.pl> <ha51bp$qgu$2@nemesis.news.neostrada.pl> <op.u06mdg0fmsp0fz@mcs> <hacism$53m$1@nemesis.news.neostrada.pl> <op.u1b911l6msp0fz@mcs> <haf3b7$bqo$1@atlantis.news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsfeed1.plix.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mail
From: 3P <nospam@serwer.pl>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: windows forms i bazy danych
Date: Tue, 06 Oct 2009 15:38:22 +0200
Organization: http://onet.pl
Lines: 108
Message-ID: <op.u1dr580vmsp0fz@mcs>
References: <3489e71f-a9c5-4e6a-9c8e-4277001d27bc@m11g2000yqf.googlegroups.com> <ha3ac0$hgl$2@nemesis.news.neostrada.pl> <ha4i1f$4d9$1@nemesis.news.neostrada.pl> <ha4p6t$3nu$1@news.wp.pl> <ha4rg5$emt$2@atlantis.news.neostrada.pl> <ha4s9n$5b4$1@news.wp.pl> <ha51bp$qgu$2@nemesis.news.neostrada.pl> <op.u06mdg0fmsp0fz@mcs> <hacism$53m$1@nemesis.news.neostrada.pl> <op.u1b911l6msp0fz@mcs> <haf3b7$bqo$1@atlantis.news.neostrada.pl>
NNTP-Posting-Host: host-81-190-76-76.gdynia.mm.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1254836326 24397 81.190.76.76 (6 Oct 2009 13:38:46 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Tue, 6 Oct 2009 13:38:46 +0000 (UTC)
User-Agent: Opera Mail/10.00 (Win32)
X-Antivirus: avast! (VPS 091005-0, 2009-10-05), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit