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.
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.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |