Indizes im Rahmen von Tuningmaßnahmen zu optimieren bedeutet, dass Indizes unter Umständen zu löschen oder neu hinzuzufügen sind. Diese Operationen sind bei grossen Tabellen sehr aufwändig und langlaufend. Mit dem Release 11g von Oracle wurden die Invisible Indizes
eingeführt, um dieser Problematik Herr zu werden. Der Name des Index beschreibt dabei treffend seine Eigenschaft: Der Index ist für den Optimizer beziehungsweise die Statement
-Ausführung unsichtbar. Allerdings ist der Index physikalisch vorhanden und wird bei DML-Operationen mitgepflegt. Um zum Beispiel die Auswirkungen von neuen Indizes zunächst nur für gewisse Statements und Applikationen auszutesten, ist diese Funktion optimal geeignet. Der Index wird im CREATE
- oder ALTER
-Statement mit der Eigenschaft invisible
belegt:
CREATE INDEX customers_marital_bix ON
customers (cust_marital_status) INVISIBLE;
Die Standardeinstellung bei der Indexanlage ist visible
. Jeder Index kann im Nachhinein die Eigenschaft invisible
erhalten:
ALTER INDEX customers_marital_bix INVISIBLE;
Sie nutzen diese Indexeinstellung mit einem Sessionparameter oder auch mit einem Statementhint:
ALTER SESSION SET optimizer_use_3 invisible_indexes=TRUE;
Danach wird die Ausführung eines Statements bereits den unsichtbaren Index nutzen, beispielsweise bei der anschließenden Ausführung der Anweisung (vergleiche Abbildung):
SELECT count(*) FROM customers WHERE cust_marital_status = 'married';
Beispiel für einen unsichtbaren Index.
datenbanken
Weitere News:
Diskutiere in der Lounge
Entspanne in der codekicker Lounge und diskutiere über aktuelle Themen mit anderen codekicker-Usern!
databasepro berichtet alle zwei Monate praxisnah über die Themen, die professionelle Datenbank-Architekten, -Administratoren, Consultants, Anwender und IT-Manager, die sich mit der Auswahl von Technologien, Plattformen, Datenbanken und Entwicklungsumgebungen beschäftigen, Tag für Tag brauchen.