Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfrageverarbeitung » Abfragen optimieren und ausführen » Abfrageperformance verbessern » Indizes

 

Wann sollte ein Index erstellt werden

Es gibt keine einfache Formel, mit der Sie herausfinden, ob ein Index erstellt werden sollte. Sie müssen die Vorteile eines Abrufs mit Index und die Nachteile durch die gestiegenen Wartungskosten für diesen Index gegeneinander abwägen. Die folgenden Faktoren können Ihnen bei der Entscheidungsfindung behilflich sein:

  • Schlüssel und eindeutige Spalten   SQL Anywhere erstellt automatisch Indizes für Primärschlüssel, Fremdschlüssel und eindeutige Spalten. Sie sollten für diese Spalten keine zusätzlichen Indizes erstellen. Die Ausnahme hierbei sind zusammengesetzte Schlüssel, die manchmal durch zusätzliche Indizes verbessert werden.

    Weitere Hinweise finden Sie unter Zusammengesetzte Indizes.

  • Häufigkeit der Suche   Wenn eine bestimmte Spalte häufig durchsucht wird, können Sie mit einem Index für diese Spalte eine Verbesserung der Performance erreichen. Die Erstellung eines Indexes für eine Spalte, die selten durchsucht wird, ist möglicherweise nicht sinnvoll.

  • Größe der Tabelle   Indizes für relativ große Tabellen mit vielen Zeilen bringen mehr Vorteile als Indizes für relativ kleine Tabellen. Beispielsweise wird ein Index für eine Tabelle mit nur 20 Zeilen wahrscheinlich keinen Nutzen bringen, da sequenzielles Durchsuchen nicht länger dauern würde als eine Indexsuche.

  • Anzahl der Aktualisierungen   Ein Index wird jedesmal aktualisiert, wenn eine Zeile in die Tabelle eingefügt bzw. aus der Tabelle gelöscht und eine Spalte mit Index aktualisiert wird. Ein Index für eine Spalte verlangsamt die Performance von Einfügungen, Änderungen und Löschvorgängen. Eine Datenbank, die häufig aktualisiert wird, sollte weniger Indizes haben als eine, die nur gelesen wird.

  • Berücksichtigung des Speicherplatzes   Indizes erfordern Speicherplatz in der Datenbank. Wenn die Datenbankgröße ein primäres Anliegen ist, sollten sie Indizes zurückhaltend erstellen.

  • Datenverteilung   Wenn eine Indexsuche zu viele Werte zurückgibt, ist sie kostenträchtiger als sequenzielles Durchsuchen. SQL Anywhere verwendet den Index nicht, wenn diese Bedingung erkannt wird. SQL Anywhere würde beispielsweise keinen Index für eine Spalte mit nur zwei Werten verwenden, wie die Tabelle "Employees.Sex" in der SQL Anywhere-Beispieldatenbank. Aus diesem Grund sollten Sie keinen Index für eine Tabelle erstellen, die lediglich einige unterschiedliche Werte enthält.

Der Indexberater ist ein Tool, das Ihnen bei der Auswahl einer geeigneten Zusammenstellung von Indizes für Ihre Datenbank hilft. Weitere Hinweise finden Sie unter Indexberater.

Temporäre Tabellen

Sie können Indizes sowohl für lokale als auch globale temporäre Tabellen erstellen. Es kann sinnvoll sein, einen Index für eine temporäre Tabelle zu erstellen, wenn die Tabelle voraussichtlich groß wird und mehrmals in sortierter Folge oder in einem Join auf sie zugegriffen werden soll. Andernfalls wird jegliche Performance-Verbesserung bei Abfragen von den Kosten des Erstellens und Löschens von Indizes aufgewogen.

Weitere Hinweise finden Sie unter Mit Indizes arbeiten.