Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.183 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Schnelle Bestimmung der Anzahl von Datensätzen in Tabell

  Alt 29. Mär 2005, 18:51
Zitat von Robert_G:
Ich bin generell der Meinung, dass ein PK IMMER numerisch und IMMER keinerlei Bezug zu den Informationen in der Tabelle haben sollte. (Also die gute alte Sequence.NextVal-Geschichte. ).
Umstellen geht aufgrund von 3 Gründen nicht:
1, große Installierte Basis
2, PK-Schlüssel sind reale Eindeutige Nummern (z.B. Materialnummern mit Versionen bzw. Mandantennummern)
3, Installierte Daten mittels "Differnz-Update" aktualisiert werden müssen, auch wenn in der Ursprungsdatenbank evtl. Primärschlüsseleinträge zwischenzeitlich gelöscht wurden.

Zitat von Robert_G:
Dein Problem ist nämlich, dass Ora bei einem SELECT Count(*) bzw. SELECT Count(PK) versucht einfach die Anzahl der verknüpften RowIds am Index des PKs auszugeben.
Für M$ SQL-Server wurde diese Info (Anzahl Datensätze in Tabelle) noch in einer Systemtabelle gehalten. Für Oracle gibt es scheinbar sowas nur (aktuell) wenn eine spezieller Statistikdurchlauf gelaufen ist.

Zitat von Robert_G:
Bei so vielen Datensätzen solltest du die Tabelle am besten auch noch partitionieren (nach Projektnmmer, Hersteller, whatever,...).
Auf die Art würden Abfragen innerhalb eines Projektes, Herstellers, whatever,... so schnell laufen als gäbe es nur diese Datensätze.
Das wird hoffentlich von den Oracle-Admins auch durchgeführt. Selbst kann ich das in der Anwendung nicht vorsehen, da ich ja nicht weiß wie "schmal" oder "breit" die Daten ankommen und welche Partitionierung optimal wäre.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat