![]() |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Aber die Update operation für die Spalte mit der Anzahl sollte ebenfalls rückgägnig gemacht werden (da Transaktion). d.h. bei Insert (datensatz) -> Trigger -> Update (inc) wird das inkerementeiren ebenfalls rückgängig gemacht. Jedenfalls die Theorie.
|
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Nach nunmehr 40 Einträgen zu diesem Thread möchte ich mit Verlaub mal die
Frage stellen: Kann es sein, das hier ein Problem mit dem Datenbank/Anwendungsdesign vorliegt? Ich habe in meiner nun auch schon recht langen Praxis noch nie eine absolute Datensatzanzahl (was immer das ist) einer Tabelle (und schon garnicht von einer derart großen) benötigt. Und wenn die Anzahl ja doch benötigt wird: Wieso wird dieses count() Ergebnis so häufig benötigt dass es ein Performanceproblem gibt? Ich bin einfach nur neugierig. |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Kann dieses FB keine Stored Procedures. Da kann man doch mitzählen.
|
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Zitat:
|
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Zitat:
[quote]Ich habe in meiner nun auch schon recht langen Praxis noch nie eine absolute Datensatzanzahl (was immer das ist){/quote] Nun ja, bei Statistiken ist das schon interessant... Die 'absolute Datensatzanzahl' ist übrigens die absolute Anzahl der Datensätze. Was sonst. :stupid: Also ein 'COUNT(*) FROM TABELLE'. So schwer ist das doch nicht. :mrgreen: |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Zitat:
Vielleicht die Ermittlung in einen Thread auslagern, dann kann die Anwendung starten, man kann arbeiten und wenn die Zahl ermittelt wurde, werden die gewünschten Statistiken angezeigt. |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Was hast Du da für ne Tabellenstruktur? Und was für ein Rechner wird genutzt?
Ich habe hier mal eine Tabelle mit 1,1 Mio Datensätzen mit Zufallswerten angelegt. Da krieg ich ein count unter 3 Sekunden hin. |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Hi Tbx.
Eine Tabelle: ID (Int), Data (BLOB, Text), inDate (TimeStamp), Source (Varchar(80)) Rechner ist ein IBM Schlapptop R61 oder irgend so eine Gurke (Firmenlaptop). |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Ist das PK-Feld das erste in der Tabellendefinition? Zeig ggf. mal einen DDL-Extract der Tabelle.
Gruß Thomas |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Hallo,
Zitat:
Haben Sie bitte einen Moment Geduld. tüt tüt ...;) Ne, im Ernst. 30-40 Sekunden dauert das count(*) ??? Hast du das mal standalone getestet (ibexpert) Noch zur Berechtigung des count(*). Wie bekommt man z.B. sonst raus, ob eine Tabelle Daten enthält ? (OK, bei FB gibt es exists) Heiko |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Könnte man doch auch mit
SQL-Code:
und anschließender Prüfung auf EOF machen, oder täusche ich mich?
SELECT FIRST 1 PK FROM Tabelle
|
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Hallo!
Zitat:
Grüße |
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 |
Re: [FB 2.1] Schnelle Alternative zu Count(*) ?
Um ohne COUNT() zu ermitteln, ob überhaupt Datensätze vorhanden sind, das war doch Deine Frage.
|
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 01:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz