AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TUniQuery liefert falschen RecordCount
Thema durchsuchen
Ansicht
Themen-Optionen

TUniQuery liefert falschen RecordCount

Ein Thema von Andidreas · begonnen am 4. Dez 2013 · letzter Beitrag vom 5. Dez 2013
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.062 Beiträge
 
Delphi 12 Athens
 
#12

AW: TUniQuery liefert falschen RecordCount

  Alt 4. Dez 2013, 16:26
Beim Query.Last muss die gesamte Abfrage mit allen Records und allen Feldern an den Client übertragen werden.
Bei der exlpziten Abfrage wird die Anzahl am Server ermittelt, was sehr schnell gehen sollte.
Das geht nicht unbedingt schnell. Wenn man mit join usw. arbeitet, würde eine separate Abfrage von count(*) dazu führen, dass die gesamte Abfrage ggf. doppelt erzeugt werden muss. Da sollte der Cache zwar helfen, aber es ist trotzdem unnötig.

Bei einfachen Tabellen kann man natürlich count(*) benutzen und es geht auch meistens schnell (leider nicht immer...). Aber wirklich Sinn macht das trotzdem nur, wenn die Datenmengen so groß sind, dass ein Last zu lange braucht.

Nebenbei gibt es z.B. bei MS SQL Server auch noch nette Features wie Histogrammerzeugung für die Wertverteilung in den Indexspalten, mit denen man z.B. ein Nachladen im Thread sehr gut implementieren kann.

// EDIT:
Ist dieses Verhalten eigentlich Komponenten abhängig?
Die BDE hat sowas z.B. nicht gemacht, und auch andere lokal dateibasierte Datenbanksysteme machen das oft nicht so.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
 


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 06:38 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