Ich habe mehrere Tabellen, in denen Datensätze mit mehreren breiten Geschäftsfeldern eindeutig identifiziert werden können. In der Vergangenheit habe ich diese Felder als PK verwendet, mit folgenden Vorteilen:
- Einfachheit; Es gibt keine fremden Felder und nur einen Index
- Clustering ermöglicht schnelle Zusammenführungsverknüpfungen und bereichsbasierte Filter
Ich habe jedoch gehört, dass eine synthetische IDENTITY INT
PK erstellt und stattdessen der Geschäftsschlüssel mit einer separaten UNIQUE
Einschränkung erzwungen wird. Der Vorteil ist, dass die schmale PK viel kleinere Sekundärindizes ergibt.
Wenn eine Tabelle hat keine Indizes anders als die PK, sehe ich keinen Grund , den zweiten Ansatz zu bevorzugen, wenn auch in einem großen Tisch ist es wahrscheinlich am besten davon ausgeht , dass Indizes in der Zukunft notwendig sein kann, und damit die enge synthetische PK begünstige . Vermisse ich irgendwelche Überlegungen?
Im Übrigen bin ich nicht gegen die Verwendung von synthetischen Schlüsseln in Data Warehouses, sondern nur daran interessiert, wann eine einzelne breite PK und wann eine schmale PK plus eine breite UK verwendet werden soll.