Delphi-PRAXiS
Seite 6 von 6   « Erste     456   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [FB 2.1] Schnelle Alternative zu Count(*) ? (https://www.delphipraxis.net/133871-%5Bfb-2-1%5D-schnelle-alternative-zu-count-%2A.html)

DeddyH 14. Mai 2009 11:05

Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
 
Könnte man doch auch mit
SQL-Code:
SELECT FIRST 1 PK FROM Tabelle
und anschließender Prüfung auf EOF machen, oder täusche ich mich?

automatix 14. Mai 2009 11:50

Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
 
Hallo!

Zitat:

Einfacher DB-Puffer. Anzahl der gepufferten Datensätze soll laufend angezeigt werden. Wenn die Anwendung läuft, zähle ich intern mit (Singleuser-DB), also kein Performanceproblem. Wäre ja auch bescheuert, 1x pro Sekunde alle Datensätze zu zählen. Beim Programmstart muss ich aber wissen, wie viele Datensätze jetzt gerade in der DB rumliegen.
Wenn deine Anwendung die Einzige ist die auf die Daten zugreift, dann mach doch den select count(*) nur beim ersten Programmstart, dann zählst Du intern mit und beim beenden deiner Anwendung schreibst Du den letzten Stand in eine Tabelle und beim nächsten Programm liest Du die Anzahl aus dieser Tabelle.

Grüße

hoika 14. Mai 2009 13:20

Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
 
Hallo,

DeddyH, du täuscht dich ;)
Was soll denn den Statement erreichen ?

Es könnten ja zwischendurch Datensätze gelöscht worden sein.
Der PK nützt da nichts.


Heiko

DeddyH 14. Mai 2009 14:40

Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
 
Um ohne COUNT() zu ermitteln, ob überhaupt Datensätze vorhanden sind, das war doch Deine Frage.

neo4a 14. Mai 2009 16:17

Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
 
Als Merkwert kann man sehr schön einen Generator benutzen. Die eigentliche Berechnung darf dann gern in einem Thread erfolgen wie Omata schon bemerkt hat), der den Generator aktualisiert. Dieser dient zur Startzeit als Initialwert und wird im weiteren Verlauf neu berechnet.

--
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.
Seite 6 von 6   « Erste     456   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz