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.