Die Oracle Datenbank kann NULL nicht indizieren


Die Quelle dieses Irrglaubens ist sehr einfach zu verstehen, wenn man sich die richtig formulierte Aussage ansieht:

Die Oracle Datenbank nimmt Zeilen, bei denen alle indizierten Spalten NULL sind, nicht in den Index auf.

Der Unterschied zwischen Mythos und Wahrheit ist recht klein. Der Mythos ist vermutlich nur eine schlampige Form der Wahrheit.

In Wirklichkeit kann man NULL sogar sehr einfach Indizieren, indem man einfach eine Spalte in den Index aufnimmt, die niemals NULL sein kann:

CREATE INDEX with_null ON table_name (nullable_column, '1');

Abschnitt 6.1 erklärt das genauer.

Über den Autor

Photo of Markus Winand
Markus Winand stimmt Entwickler auf SQL-Performance ein. Er hat das Buch SQL Performance Explained veröffentlicht und bietet inhouse Schulungen sowie Tuning-Leistungen auf http://winand.at/ an.