Article View: pl.comp.lang.delphi.bazy-danych
Article #70527ADO, postgresql - problemy z pamiecia
From: hazet
Date: Thu, 02 Aug 2007 16:46
Date: Thu, 02 Aug 2007 16:46
69 lines
3721 bytes
3721 bytes
Witam, Mam dziwny problem. Napisalem aplikacje w Turbo C++ laczaca sie z postresql za pomoca komponentow ADO. Po uruchomieniu aplikacja zajmuje w pamieci ponad 120MB! Nie wiem co jest przyczyna. Na formularzu DataModule mam: Obiekt TADOConnection, 5 obiektow TADODataset i 9 komponentow TADOCommand(dla kazdej tabeli mam 3 komponenty -ADODataSet do pobierania danych ADOCommand z parametrami do wstawiania wiersza i jeszcze jeden ADOCommand do updatowania rekordu). Problem polega na tym iz nawet gdy nie ma w tabeli duzo rekordow to program zajmuje w pamieci od 120-160MB, co jest raczej nienormalne dla takiego programu? Mam na glownym formularzu DBGrida, i w zaleznoci jaka zakladke klinkniel uzytkownik to komponentowi DataSource przypisuje dany DataSet danej tabeli, DBGrid jest ustawiony na datasource. W przypadku gdy nie pobieram zadnych danych do datasetow to program zajmuje ok 9MB. Sadze ze problem moze byc w tym iz po prostu dane z tabeli tyle zajmuja, mam tabele: CREATE TABLE tab1 ( id serial NOT NULL PRIMARY_KEY, pole1 character varying(255) NOT NULL, pole2 character varying(255) NOT NULL, pole3 real NOT NULL, pole4character varying(255) NOT NULL, pole5 character varying(100) NOT NULL, pole6 character varying(255), pole7 character varying(255) NOT NULL, pole8 character varying(255), pole9 character varying(255), pole10 character varying(255), pole11 integer NOT NULL, pole12 integer NOT NULL, pole13 real NOT NULL, pole14 real NOT NULL, pole15 character varying(100) ); CREATE TABLE tab2 ( id serial NOT NULL PRIMARY KEY, tab1_id integer NOT NULL REFERENCES tab1(id), -- klucz obcy z tabeli 1 pole1 real NOT NULL, pole2 real NOT NULL, pole3 integer NOT NULL, pole4 integer NOT NULL, ) w tabeli 1 mam nie duzo rekordow(np 2, 3), natomiast w tab2 jest ich ok 190 i stanowia relacje z tab1. lacze te tabele left joinem SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id = tab2.tab1_id ORDER BY tab1.id Mam oprocz tego jeszcze 3 mniejsze tabele. Mozliwe jest zeby przy takiej ilosci danych po zapytaniu dane w datasecie tyle zajmowaly? Nie moge zamiast varchar zastosowac typu text poniewaz przy uzyciu komonentow ADO DBGrid nie wyswietla takich napisow prawidolowo(zamiast tekstu wyswietla sie WIDEMEMO). Co moze byc przyczyna takiej pamieciochlonnosci i jak ewentualnie moge sobie z tym poradzic? Nie jest to przeciez duza ilosc danych PS. Mam jeszcze pytanie czy da sie jakos przyspieszyc dzialanie komponentow ADO poniewaz pobieranie danych z bazy dosyc dlugo trwa. pozdrawiam
Technical Details
Message-ID:
<1186073199.040496.147040@q3g2000prf.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newshub.sdsu.edu!postnews.google.com!q3g2000prf.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newshub.sdsu.edu!postnews.google.com!q3g2000prf.googlegroups.com!not-for-mail From: hazet <hazet@os.pl> Newsgroups: pl.comp.lang.delphi.bazy-danych,pl.comp.programming,pl.comp.bazy-danych Subject: ADO, postgresql - problemy z pamiecia Date: Thu, 02 Aug 2007 09:46:39 -0700 Organization: http://groups.google.com Lines: 70 Message-ID: <1186073199.040496.147040@q3g2000prf.googlegroups.com> NNTP-Posting-Host: 82.160.57.82 Mime-Version: 1.0 X-Trace: posting.google.com 1186073199 11107 127.0.0.1 (2 Aug 2007 16:46:39 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 2 Aug 2007 16:46:39 +0000 (UTC) User-Agent: G2/1.0 X-HTTP-UserAgent: Opera/9.10 (Windows NT 5.1; U; pl),gzip(gfe),gzip(gfe) X-HTTP-Via: 1.1 Czarna:8080 (Squid/2.4.STABLE7) Complaints-To: groups-abuse@google.com Injection-Info: q3g2000prf.googlegroups.com; posting-host=82.160.57.82; posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit