Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Anzahl Datensätze bestimmen (https://www.delphipraxis.net/113016-anzahl-datensaetze-bestimmen.html)

FrankBrin 1. Mai 2008 10:41

Datenbank: MSSQL 2k5 Express • Zugriff über: ADO

Anzahl Datensätze bestimmen
 
Hallole miteinander,
ich hab da eine Tabelle in einer Datenbank, die ca. 1 Million Datensätze beinhaltet. Nun möchte ich auf meinem Form die Anzahl der Datensätze anzeigen.
Mach ich ein SELECT * dauert das ganze ca. 5 Minuten und Arbeitsspeicher brauch das Programm auch unendlich viel.
Auch ein Select Count(*) brauch ca 2 Minuten, aber nicht soviel Speicher.

Gibts da nix schnelleres?

Gruß Frank :wall:

mkinzler 1. Mai 2008 10:49

Re: Anzahl Datensätze bestimmen
 
SQL-Code:
Select Count(<PK>)
sollte schneller sein

alzaimar 1. Mai 2008 12:15

Re: Anzahl Datensätze bestimmen
 
Bei mir ist das leider nicht schneller (MSSQL2K). Da hilft nur ein Griff in die Trickkiste:
SQL-Code:
SELECT rows FROM sysindexes WHERE id = OBJECT_ID('MyTableName') AND indid < 2

Bernhard Geyer 1. Mai 2008 15:34

Re: Anzahl Datensätze bestimmen
 
Zitat:

Zitat von alzaimar
Bei mir ist das leider nicht schneller (MSSQL2K). Da hilft nur ein Griff in die Trickkiste:
SQL-Code:
SELECT rows FROM sysindexes WHERE id = OBJECT_ID('MyTableName') AND indid < 2

Liefert keine 100% gültigen Wert das die Werte in den Systemtabellen nicht mit jeder Datensatzänderung (Hinzufügen/Löschen) aktualisiert werden. Hatten diese Lösung auch mal und mußten wieder auf die select count(*)-Methode wechseln. Bei MySQL wäre es noch schlimmer da hier die Werte in den Systemtabellen bis zu 50% vom eigentlichen aktuellen Wert abweichen können.

Wieviel RAM hat den der PC (bzw. der SQL-Server) zur verfügung? Hier hilft nur das er SQL Server (unabhängig ob MS SQL, MySQL, Oracle, ...) genügend RAM zur verfügung hat um den Primärindex komplett im Speicher zu halten.

FrankBrin 1. Mai 2008 21:20

Re: Anzahl Datensätze bestimmen
 
Guten Abend,
nach kleiner Vatertagsparty bin ich jetzt wieder zu meinem Problem zurückgekehrt.
Erstmal Danke für die schnelle Hilfe

@mKinzler
Select Count( <PK>), dass geht bei mir auch nicht schneller.

@alzaimar
Dein Vorschlag geht echt raz - faz.

@Bernhard Geyer
...und wenn die Anzahl bei dem Vorschlag von alzaimar nicht so ganz passt, ist bei der großen Anzahl von Datensätzen nicht wichtig. Ich hab halt in der Anzeige ein ca. davor gemacht. Dieser Wert soll nur ein Gefühl dafür geben, wie voll die DB ist.

Also herzlichen Dank an Alle

Gruß Frank

Bernhard Geyer 1. Mai 2008 22:09

Re: Anzahl Datensätze bestimmen
 
Zitat:

Zitat von FrankBrin
...und wenn die Anzahl bei dem Vorschlag von alzaimar nicht so ganz passt, ist bei der großen Anzahl von Datensätzen nicht wichtig. Ich hab halt in der Anzeige ein ca. davor gemacht. Dieser Wert soll nur ein Gefühl dafür geben, wie voll die DB ist.

Dann ist es OK. Bei uns war die genaue Anzahl nötig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 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