Mit dieser Anweisung erstellen Sie einen Index für eine angegebene Tabelle.
CREATE [ UNIQUE ] INDEX [ Indexname ] ON Tabellenname ( sortierte_Spaltenliste ) [ WITH MAX HASH SIZE Integer ]
sortierte_Spaltenliste : ( Spaltenname [ ASC | DESC ], ... )
UNIQUE Der Parameter UNIQUE stellt sicher, dass es in der Tabelle keine zwei Zeilen mit identischen Werten in allen Spalten des Indexes gibt. Jeder Indexschlüssel muss eindeutig sein oder NULL in mindestens einer Spalte enthalten.
Es besteht ein Unterschied zwischen einer Eindeutigkeits-Integritätsregel in einer Tabelle und einem eindeutigen Index. Spalten in einem eindeutigen Index lassen NULL zu, nicht aber Spalten in einer Eindeutigkeits-Integritätsregel. Außerdem kann ein Fremdschlüssel entweder einen Primärschlüssel oder eine Spalte mit einer Eindeutigkeits-Integritätsregel referenzieren. Ein Fremdschlüssel kann jedoch nicht einen eindeutigen Index referenzieren.
sortierte_Spaltenliste Eine sortierte Liste von Spalten. Spaltenwerte im Index können in aufsteigender oder absteigender Reihenfolge sortiert werden.
WITH MAX HASH SIZE Legt die Hash-Größe (in Byte) für diesen Index fest. Dieser Wert setzt den Standardwert der Eigenschaft MaxHashSize außer Kraft, der für die Datenbank gilt. Hinweise zur Standardgröße finden Sie unter Auf UltraLite-Datenbankeigenschaften zugreifen.
UltraLite erstellt automatisch Indizes für Primärschlüssel und Eindeutigkeits-Integritätsregeln.
Indizes können die Abfrageperformance steigern, indem sie es UltraLite ermöglichen, bestimmte Zeilen schnell zu finden. Im Gegensatz dazu können Indizes die Synchronisation sowie INSERT-, DELETE- und UPDATE-Anweisungen verlangsamen, da sie verwaltet werden müssen.
Indizes werden automatisch verwendet, um die Performance von Abfragen zu verbessern, die von der Datenbank ausgegeben werden, und um Abfragen mithilfe einer ORDER BY-Klausel zu sortieren. Sobald ein Index erstellt wurde, wird er nie wieder in einer SQL-Anweisung referenziert, außer wenn er mit DROP INDEX gelöscht wird.
Indizes brauchen Speicherplatz in der Datenbank. Der zusätzliche Aufwand für die Verwaltung der Indizes kann die Performance der Datenänderungsvorgänge beeinträchtigen. Aus diesem Grund sollten Sie nur Indizes erstellen, die die Abfrageperformance verbessern.
UltraLite verarbeitet keine Anforderungen oder Abfragen, die die Tabelle referenzieren, während die Anweisung CREATE INDEX ausgeführt wird. Außerdem ist es nicht möglich, CREATE INDEX auszuführen, wenn die Datenbank aktive Abfragen oder nicht festgeschriebene Transaktionen enthält.
UltraLite kann auch Ausführungspläne zur Optimierung von Abfragen verwenden. Weitere Hinweise finden Sie unter Ausführungspläne in UltraLite.
Für UltraLite.NET-Benutzer: Sie können diese Anweisung nur ausführen, wenn Sie auch die Dispose-Methode für alle Datenobjekte ausführen (z.B. ULDataReader). Weitere Hinweise finden Sie unter Dispose-Methode.
Anweisungen werden nicht freigegeben, wenn gleichzeitig Schemaänderungen initiiert werden. Weitere Hinweise finden Sie unter Schemaänderungen mit DDL-Anweisungen.
Im folgenden Beispiel wird ein zweispaltiger Index für die Tabelle Employee erstellt.
CREATE INDEX employee_name_index ON Employees ( Surname, GivenName ); |
Die folgende Anweisung erstellt einen Index auf der SalesOrderItems-Tabelle für die ProductID-Spalte.
CREATE INDEX item_prod ON SalesOrderItems ( ProductID ); |
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 |