AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [FB 2.1] Schnelle Alternative zu Count(*) ?
Thema durchsuchen
Ansicht
Themen-Optionen

[FB 2.1] Schnelle Alternative zu Count(*) ?

Ein Thema von alzaimar · begonnen am 11. Mai 2009 · letzter Beitrag vom 14. Mai 2009
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#41

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

  Alt 13. Mai 2009, 13:05
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.
  Mit Zitat antworten Zitat
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#42

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

  Alt 13. Mai 2009, 13:43
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.
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#43

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

  Alt 13. Mai 2009, 13:53
Kann dieses FB keine Stored Procedures. Da kann man doch mitzählen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#44

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

  Alt 13. Mai 2009, 14:05
Zitat:
Kann dieses FB keine Stored Procedures. Da kann man doch mitzählen.
Doch, wird aber auch nicht (viel) schneller sein
Markus Kinzler
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#45

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

  Alt 13. Mai 2009, 18:21
Zitat von exilant:
Kann es sein, das hier ein Problem mit dem Datenbank/Anwendungsdesign vorliegt?...Wieso wird dieses count() Ergebnis so häufig benötigt dass es ein Performanceproblem gibt? Ich bin einfach nur neugierig.
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. Bei 1Mio gepufferten Daten dauert mir dieses eine "COUNT(*)" zu lang. Die Anwendung darf nunmal nicht 30-40 Sekunden warten, bis sie gestartet ist. Oder?
[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. Also ein 'COUNT(*) FROM TABELLE'. So schwer ist das doch nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#46

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

  Alt 13. Mai 2009, 19:39
Zitat von alzaimar:
Die Anwendung darf nunmal nicht 30-40 Sekunden warten, bis sie gestartet ist. Oder?
Nur mal so eine Idee...

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.
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.893 Beiträge
 
Delphi 12 Athens
 
#47

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

  Alt 13. Mai 2009, 20:28
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.
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#48

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

  Alt 13. Mai 2009, 21:33
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).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.893 Beiträge
 
Delphi 12 Athens
 
#49

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

  Alt 13. Mai 2009, 21:36
Ist das PK-Feld das erste in der Tabellendefinition? Zeig ggf. mal einen DDL-Extract der Tabelle.

Gruß
Thomas
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#50

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

  Alt 14. Mai 2009, 11:17
Hallo,

Zitat:
Die Anwendung darf nunmal nicht 30-40 Sekunden warten, bis sie gestartet ist. Oder?
Spash-Screen.
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
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr.
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