Article View: pl.comp.lang.delphi.bazy-danych
Article #82925Re: dziwne zachowanie TQuery
From: Mak
Date: Thu, 08 Mar 2018 06:27
Date: Thu, 08 Mar 2018 06:27
68 lines
3712 bytes
3712 bytes
W dniu 08.03.2018 o 01:42, wloochacz pisze:
> W dniu 2018-03-07 o 22:58, Maciek Sanocki pisze:
> /ciach/
>
>> liczba rekordow jest oczywiscie stala za kazdym razem,
>> nie wiem tylko dlaczego po oczyszczeniu caschu
>> przejscie przez query za pomoca while not query.eof ...
>> twa wielokrotnosc tego tego co bez czyszczenia caschu.
>> To ze po oczyszczeniu caschu query wykonuje się dluzej to oczywistosc
>> wynikajaca z tego ze nie ma wtedy planu wykonania, za kazdym nastepnym
>> ten plan juz jest.
>
> No to teraz podaj szczegóły, o które pytał Roman;
> Jaka baza danych?
> Jak się z nią łączysz?
> Jakie komponenty?
> Dane ściągasz paczkami z serwera czy wszystko od razu (FetchAll)?
>
> Pokaż zapytanie i może nawet to otwieranie i iterację.
>
> Po co czyścisz cache, przecież po coś on jest prawda?
>
baza SQLSerwer 2008
do laczenia uzywam blibow ( wlasne firmowe komponenty ) ale jak
probowalem zwyklego TQuery bylo to samo
liczba rekordow w tabelce 2200 ale na rzeczywistej bazie klienta moga
byc miliony
czasy wykonania w narzedziach bazodanowych sa wlasciwie takie same jak w
programie,
kawalek kodu:
tq:=TBQuery.create(nil);
try
tq.databasename:='PETER';
tq.sql.add('SELECT SUM(BETRAG) AS UMNETTO,
SUM(BETRAG+NACHLASSSUMME) AS UMBRUTTO, SUM(STATISTIKMENGE) AS SMENGE,');
tq.sql.add('SUM(DECKUNGSBEITRAG) AS DB, TYP, DATUM, NRBELEGTYP
FROM AVK120 WHERE ');
tq.sql.add('DATUM>=:DAT_FROM AND DATUM<:DAT_TO AND NRBELEGTYP
IN (20,21,31,40,41,241) ');
tq.sql.add('GROUP BY TYP, NRBELEGTYP, DATUM ');
tq.parambyname('DAT_FROM').asdatetime:=dfrom;
tq.parambyname('DAT_TO').asdatetime:=dto;
tq.open;
tq.FetchAll;
tq.First;
while not tq.eof do
begin
details:=TDataDetails.create(tq.FieldByName('DATUM').asdatetime,tq.fieldbyname('NRBELEGTYP').asinteger,tq.FieldByName('TYP').AsInteger,
tq.fieldbyname('UMNETTO').asfloat,tq.FieldByName('UMBRUTTO').asfloat,
tq.fieldbyname('SMENGE').asfloat,tq.FieldByName('DB').asfloat);
tmplist.Add(details);
tq.Next;
end;
finally
tq.free;
end;
cache czyszcze wylacznie dla testow
generalnie sytuacja jest taka, ze rano klent pierwszy raz odpala program
i wczytanie i pokazanie danych zajmuje 2min, kazde nastepne odpalenie to
ok 10sek, 95% czasu przypada na powyzszy kawalek kodu, z czego wiekszosc
nie na same zapytanie a na petle z tworzeniem obiektow
Technical Details
Message-ID:
<5aa0d7ca$0$31350$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<5aa022c1$0$31369$65785112@news.neostrada.pl> <1ota1riogmm04.dlg@tyczka.com> <5aa04fb2$0$1004$65785112@news.neostrada.pl> <1v4tf0jgkxp75$.dlg@tyczka.com> <5aa059f1$0$31355$65785112@news.neostrada.pl> <5aa06075$0$31372$65785112@news.neostrada.pl> <5aa086e6$0$31366$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: dziwne zachowanie TQuery Newsgroups: pl.comp.lang.delphi.bazy-danych References: <5aa022c1$0$31369$65785112@news.neostrada.pl> <1ota1riogmm04.dlg@tyczka.com> <5aa04fb2$0$1004$65785112@news.neostrada.pl> <1v4tf0jgkxp75$.dlg@tyczka.com> <5aa059f1$0$31355$65785112@news.neostrada.pl> <5aa06075$0$31372$65785112@news.neostrada.pl> <5aa086e6$0$31366$65785112@news.neostrada.pl> From: Mak <sanocki@orga-soft.pl> Date: Thu, 8 Mar 2018 07:27:21 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <5aa086e6$0$31366$65785112@news.neostrada.pl> Lines: 68 Message-ID: <5aa0d7ca$0$31350$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 87.205.12.193 X-Trace: 1520490443 unt-rea-b-01.news.neostrada.pl 31350 87.205.12.193:49946 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit