Article View: alt.pl.comp.lang.csharp
Article #707Re: Pytanie o prace z ADO.Net
From: Jacek WoÂłoszka
Date: Thu, 01 Apr 2004 13:34
Date: Thu, 01 Apr 2004 13:34
47 lines
3271 bytes
3271 bytes
> Hi all > Widze ze grupa sie rozruszalo co mnie bardzo cieszy > Moje pytanie jest dosyc teoretyczne i prosil bym o odpowiedzi praktykow z > wiekszym stazem :) Szpecem nie jestem ale ze ostatnio tez mnie nurtuja podobne problemy to sie podziele swoimi przemysleniami > Chodzi o prace z warstwa ADO.Net i duzymi bazami danych. Dotychczas > pracowalem poprzez DataSet i wszystkie zmiany wykonywalem na nich. Ale od > momentu jak zaczalem pracowac z tabelami o milionie rekordow taka praca > stala sie porazka. Zreszta moze cos zle robie? DataSet i powiazany z nia DataAdapter przy aktualizacjach wykorzystuja dynamicznie budowane zapytanie SQL - zreszta chyba do tego sluzy obiekt SQLCommandBuilder wykorzystywany przy DataAdapter.Update Weic chyba nie ma szczegolnej roznicy poza elegancja kodu w przypadku korzystania z obiektu Command i DataAdapter - a to sa chyba jedyne dwa obiektu pozwalajace na aktualizacje danych > Konkretnie pytanie jest takie, z jakich klas i jakich technik (wlasnie > technik, sekwencji metod ADO.Net) korzystac w celu odczytania wierszyi > przekazania ich do DataRow Gdzies wyczytalem ze do odczytu danych najszybszy jest DataReader- podobno DataSet korzysta w DataReader > DataSet mial mi zapewnic mozliwosc pracy z "odlaczonymi" danymi, ale w > momencie jak z serwerem zaczynaja pracowac 5 aplikacji jednoczesnie, z czego > 3 sa automatami zauwazylem duzy spadek na synchronizacji danych (Update, > AcceptChanges). Moze wiec przeniesc ta warstwe na zapytania (DataReader dla > selectow o ograniczonej ilosci wierszy) a zapisy bezposrednio na baze danych > (SqlCommand z parametrami zapisu?). Problem polega na tym, ze jedna > transakcja to jest wpis w tabele "master" i 3 tabele polaczone z nia kluczem > i na DS takie transakcje sie udawaly. Jak to zrealizowac obecnie? Tylko ze w > ten sposob znika mi warstwa posrednia w aplikacji i zaczynam "dowalac" w > serwer zapytaniami i transakcjami. Ale przy tak wielkich tabelach DS zaczely > mi zamykac pamiec na stacjach roboczych. Jako ze DataSet jest reprezentacja tabeli w pamieci to moze nie pobierac wszystkich rekordow tylko uzyc Fill zwaracajacej np 1000 rekordow? Bo faktycznie zauwazylem ze juz ptrzy kilku tysiacach rekordow uzywana pamiec rosnie konkretnie
Technical Details
Message-ID:
<c4h5rd$753$1@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!proxad.net!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<c49ept$fbg$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!proxad.net!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Jacek WoÂłoszka <jacekw@grochowski.com.pl.wytnij_to> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: Pytanie o prace z ADO.Net Date: Thu, 1 Apr 2004 15:34:41 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 49 Message-ID: <c4h5rd$753$1@nemesis.news.tpi.pl> References: <c49ept$fbg$1@news.onet.pl> NNTP-Posting-Host: qg170.internetdsl.tpnet.pl X-Trace: nemesis.news.tpi.pl 1080826542 7331 80.55.32.170 (1 Apr 2004 13:35:42 GMT) X-Complaints-To: use...@tpi.pl NNTP-Posting-Date: Thu, 1 Apr 2004 13:35:42 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit