Christian Kruse: Clustering von einer Tabelle?

Beitrag lesen

Hallo Julia,

Vorsicht 😉 Clustering ist ein viel genutzter Begriff. Oracle nutzt den anders als andere DBMS, sage also am besten immer dazu, auf welches DBMS du dich beziehst.

So wie ich verstanden habe, wird Clustering genutzt, um die zusammengehörende Daten physikalisch nebeneinander zu speichern.

Bei den anderen DBMS wird der Begriff „Clustering“ genutzt, um den Vorgang zu beschreiben, dass die physikalische Anordnung der Daten auf der Festplatte sich nach einem speziellen Index richtet, so dass der Zugriffspfad über diesen Index dann besonders schnell ist.

Bei Oracle heißt das „Index Cluster.“ Der zweite Mechanismus nennt sich „Table Cluster,“ und hier werden die Daten mehrerer Tabellen beieinander gespeichert, ja.

Und dann kann man beides noch kombinieren, dass sind dann „Index Table Cluster.“

Ich habe allerdings bisher die Anwendung von Clustering nur im Bezug auf mehrere Tabellen gesehen.

Nein, Clustering wird gerne auch bei einzelnen Tabellen gemacht, um bestimmte Zugriffspfade zu beschleunigen.

Macht es auch Sinn, eine Tabelle in ein Cluster zu speichern? (Ich würde sagen ja, aber warum genau?).

Das kann sinnvoll sein, ja. Wenn ich z.B. ein in einer Tabelle einen Index auf einem Feld habe, und die meisten Zugriffe auf diese Tabelle sich auf dieses Feld beziehen und dieser Zugriff besonders schnell sein muss, dann kann es sinnvoll sein, die Tabelle in einem Index-Cluster zu speichern, der sich auf diesen Index bezieht.

Und macht es Sinn dann trotzdem Sinn, eine (häufig selektierte) Spalte zu indexieren?

Zusätzliche Indizes stören nicht beim Clustering und umgekehrt stört Clustering den Index nicht. Wenn du sie benötigst, kannst du sie verwenden. Ob der Index dann sinnvoll ist, muss im Einzelfall erwogen werden.

LG,
CK