AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 16:17

Parameter dieser Suchanfrage:

Suche in Thema: [FB 2.1] Schnelle Alternative zu Count(*) ?
Suche alle Beiträge, die von "alzaimar" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 9 von insges. 9 Treffern
Suche benötigte 0.004s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 13. Mai 2009
    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).
  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 13. Mai 2009
    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...
  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 12. Mai 2009
    Ich hatte aber Deadlocks, und zwar immer beim Programmstart. Heute war ich out of office, aber morgen gehts der Deadlocke an den Sack. Meine Lösung besteht aus einer Tabelle mit einer Zeile und einem Feld ('RowSize') sowie zwei Triggern (BeforeInsert, BeforeDelete). Am Anfang der SW kommt manchmal genau 1x ein Deadlock. Danach nicht nochmal.
  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 12. Mai 2009
    Selbst MSSQL macht es nicht. Dort greift man die Metatabellen ab:
    SELECT rows FROM sysindexes WHERE id = OBJECT_ID('table_name') AND indid < 2
    Der Optimizer, der sich sonst einen Wolf optimiert (Hä? Wie? 'Der mit dem Wolf optimiert?' :gruebel: ), erspart sich das, vermutlich aus den von mir genannten Gründen.

    Ich verstehe die Argumentation mit MGA nicht. Genauso, wie MGA mir eine (meine)...
  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 11. Mai 2009
    Oh, das ist ganz einfach:
    Ohne Index muss man wirklich alle Zeilen durchlaufen (oder die geheime Tabelle mit den Metadaten finden).
    Mit Index zähle ich nur die Anzahl der B-Tree-Seiten und multipliziere sie mit der Größe eines Indexelementes.
    B-Tree-Seiten von Index-Strukturen wissen zudem, wie viele Elemente sie enthalten. Ich kenne zwar die FB-Implementierung nicht, kann mir aber nicht...
  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 11. Mai 2009
    Hi Leute,

    ich hab das jetzt mit den Triggern so umgesetzt. Mich wundert es nur ein wenig, denn Firebird selbst sollte doch wissen, wie viele Zeilen denn nun in der Tabelle sind bzw. Blätter im B-Baum des PK.

    Die Trigger-Lösung ist leider nicht ganz so hübsch, weil ich mir dadurch eigentlich überflüssige Deadlock-Kandidaten einhandle bzw. unnötige Locks.
  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 11. Mai 2009
    Hallo Hazard999,

    nein, das ist nicht genau. Ich habe mir nun so beholfen, das ich die Anzahl in einer separaten Tabelle (1 Zeile, 1 Feld 'RowCount') per Trigger auf dem Laufenden halte.

    @R2009: Du meinst die 'Recordcount'-Eigenschaft.
    Rate mal, was die macht :zwinker:

    Sie weiss einfach, wie viele Zeilen in der Tabelle stehen
    Sie liest alle Zeilen ein (per SELECT * FROM) und zählt...
  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 11. Mai 2009
    Hi Markus und Elvis,

    Danke für den Tipp. Klappt nur leider nicht, d.h. es ist immer noch genauso lahm.
  • Forum: Datenbanken

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

      Delphi
      by alzaimar, 11. Mai 2009
    Hi,

    Ich habe eine Tabelle mit 1 Mio Einträgen. In einer App soll ständig die Anzahl der Zeilen dieser Tabelle angezeigt werden. Ein 'SELECT COUNT(*) FROM TABELLE' dauert ewig.

    Frage: Gibt es eine schneller Alternative, um die Zeilenanzahl einer Tabelle zu ermitteln? Ich vermute, es geht irgendwie über die $RDB-Tabellen.

    Hat jemand einen Hint?


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=alzaimar&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=133871
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 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