FirebirdSQL logo
 TABLEVIEW 

Verwendung von ALTER INDEX für einen Einschränkungsindex

Das Ändern des Index eines PRIMARY KEY, FOREIGN KEY oder UNIQUE Constraints in INACTIVE ist nicht erlaubt.ALTER INDEX …​ ACTIVE funktioniert jedoch bei Constraint-Indizes genauso gut wie bei anderen, als Werkzeug zum Neuaufbau von Indizes.

ALTER INDEX-Beispiele

  1. Deaktivieren des IDX_UPDATER-Index

    ALTER INDEX IDX_UPDATER INACTIVE;
  2. Den IDX_UPDATER-Index zurück in den aktiven Zustand schalten und neu aufbauen

    ALTER INDEX IDX_UPDATER ACTIVE;

docnext count = 7

DROP INDEX

Verwendet für

Einen Index löschen (löschen)

Verfügbar in

DSQL, ESQL

Syntax
DROP INDEX indexname
Table 1. DROP INDEX-Anweisungsparameter
Parameter Beschreibung

indexname

Indexname

Die DROP INDEX-Anweisung löscht (löscht) den benannten Index aus der Datenbank.

Note

Ein Einschränkungsindex kann nicht mit DROP INDEX gelöscht werden.Constraint-Indizes werden während der Ausführung des Befehls ALTER TABLE …​ DROP CONSTRAINT …​ gelöscht.

Wer kann einen Index löschen?

Die DROP INDEX-Anweisung kann ausgeführt werden durch:

  • Administratoren

  • Der Besitzer der Tabelle

  • Benutzer mit dem ALTER ANY TABLE-Privileg

DROP INDEX-Beispiel

Löschen des IDX_UPDATER-Index
DROP INDEX IDX_UPDATER;

SET STATISTICS

Verwendet für

Neuberechnung der Selektivität eines Index

Verfügbar in

DSQL, ESQL

Syntax
SET STATISTICS INDEX indexname
Table 1. SET STATISTICS-Anweisungsparameter
Parameter Beschreibung

indexname

Indexname

Die Anweisung SET STATISTICS berechnet die Selektivität des angegebenen Index neu.

Wer kann Indexstatistiken aktualisieren?

Die Anweisung SET STATISTICS kann ausgeführt werden durch:

  • Administratoren

  • Der Besitzer der Tabelle

  • Benutzer mit dem ALTER ANY TABLE-Privileg

Indexselektivität

Die Selektivität eines Index ergibt sich aus der Auswertung der Anzahl der Zeilen, die bei einer Suche nach jedem Indexwert ausgewählt werden können.Ein eindeutiger Index hat die maximale Selektivität, da es unmöglich ist, mehr als eine Zeile für jeden Wert eines Indexschlüssels auszuwählen, wenn dieser verwendet wird.Die Selektivität eines Index auf dem neuesten Stand zu halten ist wichtig für die Auswahl des Optimierers bei der Suche nach dem optimalsten Abfrageplan.

Indexstatistiken in Firebird werden als Reaktion auf große Mengen von Einfügungen, Aktualisierungen oder Löschungen nicht automatisch neu berechnet.Es kann von Vorteil sein, die Selektivität eines Index nach solchen Operationen neu zu berechnen, da die Selektivität dazu neigt, veraltet zu werden.

Note

Die Anweisungen CREATE INDEX und ALTER INDEX ACTIVE speichern beide Indexstatistiken, die vollständig dem Inhalt des neu erstellten Index entsprechen.

Es kann unter gleichzeitiger Last ohne Beschädigungsrisiko ausgeführt werden.Beachten Sie jedoch, dass die neu berechneten Statistiken bei gleichzeitiger Belastung veraltet sein können, sobald SET STATISTICS beendet ist.

Beispiel für die Verwendung von SET STATISTICS

Neuberechnung der Selektivität des Indexes IDX_UPDATER
SET STATISTICS INDEX IDX_UPDATER;