Slide 10
Slide 10 text
Anwendungsbeispiel Zugriff auf kleine Anteile großer Tabellen
Alternative 2: Nutzung eines function-based Index der nur die Records mit Sent=N indiziert
§ Alle Records mit Sent != N werden nicht indiziert (Indizierter Ausdruck = NULL)
§ Der Indexwert enthält weitere Attribute außer der Spalte „Sent“.
Diese Spalte „Sent“ muss nicht Bestandteil des Index sein, da bereits Index-Wert != NULL implizit „Sent“=N enthält.
§ Unterstellt, die 5 Bedingungen für „Event-Type“ sind immer fix und der Filter auf „Event_Context“ variiert, dann
würde ein optimaler function-based Index so aussehen
§ CREATE INDEX IX_Min ON Test(CASE WHEN Sent='N' AND Event_Type IN ('DeliveryCreated',
'DeliveryUpdated', 'DeliveryDeleted', 'OrderApproved', 'PurchaseOrderApproved') THEN
Event_Context END);
§ Wird die Filterbedingung im SQL jetzt exakt wie der indizierte Ausdruck formuliert, damit wird der minimale function-
based Index nutzbar für die Abfrage
§ Reduktion der Laufzeit auf < 100µs (Faktor 20000++), Indexgröße = 64K (initial extent, 4% der vorherigen Größe)
1 Buffer-Get im Index / Execution
§ Für mehrspaltige Indizes müssen alle Spalten das NULL-Verhalten aufweisen, um die Größenreduktion zu realisieren