Erstellen Sie den Clustered -Index in SQL Server

Erstellen Sie den Clustered -Index in SQL Server
Indizes spielen eine entscheidende Rolle in Datenbanken. Sie fungieren als Indizes in einem Buch und ermöglichen es Ihnen, verschiedene Elemente und Themen in einem Buch zu suchen und zu finden. Indizes in einer Datenbank werden ähnlich durchgeführt und beschleunigen die Suchgeschwindigkeit für in einer Datenbank gespeicherte Datensätze. Erstellen Sie den Clustered -Index in SQL Server, der in diesem Artikel erläutert wird.

Indizes spielen eine entscheidende Rolle in Datenbanken. Sie fungieren als Indizes in einem Buch und ermöglichen es Ihnen, verschiedene Elemente und Themen in einem Buch zu suchen und zu finden. Indizes in einer Datenbank werden ähnlich durchgeführt und beschleunigen die Suchgeschwindigkeit für in einer Datenbank gespeicherte Datensätze.

Clusteredindizes sind einer der Indextypen im SQL Server. Es wird verwendet, um die Reihenfolge zu definieren, in der Daten in einer Tabelle gespeichert sind. Es funktioniert, indem es die Datensätze auf einem Tisch sortiert und dann speichert.

In diesem Tutorial erfahren Sie über Cluster -Indizes in einer Tabelle und wie Sie einen Cluster -Index auf SQL Server definieren können.

SQL Server Clustered Indizes

Bevor wir verstehen, wie ein Clustered -Index auf SQL Server erstellt wird, erfahren Sie, wie Indizes funktionieren.

Betrachten Sie die folgende Beispielabfrage, um eine Tabelle mit einer Grundstruktur zu erstellen.

Datenbank erstellen product_inventory;
Verwenden Sie product_inventory;
Tischinventar erstellen (
Id int nicht null,
product_name varchar (255),
Preis int,
Menge int
);

Fügen Sie anschließend einige Beispieldaten in die Tabelle ein, wie in der folgenden Abfrage gezeigt:

Einfügen in die Werte in Bestandsaufnahme (ID, product_name, Preis, Menge) ein
(1, 'Smart Watch', 110.99, 5),
(2, 'MacBook Pro', 2500.00, 10),
(3, "Wintermäntel", 657.95, 2),
(4, 'Office Desk', 800.20, 7),
(5, 'Löten Eisen', 56.10, 3),
(6, 'Telefonstativ', 8.95, 8);

Die obige Beispieltabelle hat keine primäre Schlüsselbeschränkung, die in seinen Spalten definiert ist. Daher speichert SQL Server die Datensätze in einer ungeordneten Struktur. Diese Struktur ist als Haufen bekannt.

Angenommen, Sie müssen eine Abfrage ausführen, um eine bestimmte Zeile in der Tabelle zu finden? In einem solchen Fall zwingt es SQL Server zum Scannen der gesamten Tabelle, um den Matching -Datensatz zu finden.

Betrachten Sie beispielsweise die Abfrage.

Wählen Sie * aus dem Inventar, wobei Quantität = 8;

Wenn Sie den geschätzten Ausführungsplan in SSMs verwenden, werden Sie feststellen.

Obwohl die Aufführung in einer kleinen Datenbank wie oben in einer Datenbank mit einer humorvollen Anzahl von Datensätzen kaum erkennbar ist, kann die Abfrage eine längere Zeit dauern, bis es fertig ist.

Eine Möglichkeit, einen solchen Fall zu beheben, besteht darin, einen Index zu verwenden. In SQL Server gibt es verschiedene Arten von Indizes. Wir werden uns jedoch hauptsächlich auf Cluster -Indizes konzentrieren.

Wie bereits erwähnt, speichert ein Clustered -Index die Daten in einem sortierten Format. Eine Tabelle kann einen Cluster -Index haben, da wir die Daten nur in einer logischen Reihenfolge sortieren können.

Ein Clustered-Index verwendet B-Tree-Strukturen, um die Daten zu organisieren und zu sortieren. Auf diese Weise können Sie Einfügungen, Updates, Löschungen und weitere Vorgänge durchführen.

Bekanntmachung im vorherigen Beispiel; Die Tabelle hatte keinen Primärschlüssel. Daher erstellt SQL Server keinen Index.

Wenn Sie jedoch eine Tabelle mit einer primären Schlüsselbeschränkung erstellen, erstellt SQL Server automatisch einen Cluster -Index aus der Spalte Primärschlüssel.

Beobachten Sie, was passiert, wenn wir die Tabelle mit einer primären Schlüsselbeschränkung erstellen.

Tischinventar erstellen (
Id int nicht null primärer Schlüssel,
product_name varchar (255),
Preis int,
Menge int
);

Wenn Sie die Abfrage auswählen und den geschätzten Ausführungsplan verwenden, sehen Sie, dass die Abfrage einen Clustered-Index verwendet wie:

Wählen Sie * aus dem Inventar, wobei Quantität = 8;

In SQL Server Management Studio können Sie die verfügbaren Indizes für eine Tabelle anzeigen, indem Sie die Index -Gruppe wie gezeigt erweitern:

Was passiert, wenn Sie einer Tabelle, die einen Cluster -Index enthält, eine primäre Schlüsselbeschränkung hinzufügen? SQL Server wendet die Einschränkung in einem nicht klusterten Index in einem solchen Szenario an.

SQL Server erstellen Clustered Index

Sie können einen Clustered -Index mithilfe der Clustered -Indexanweisung erstellen in SQL Server erstellen. Dies wird hauptsächlich verwendet, wenn die Zieltabelle keine primäre Schlüsselbeschränkung aufweist.

Betrachten Sie beispielsweise die folgende Tabelle.

Droptabelle, wenn existiert Inventar;
Tischinventar erstellen (
Id int nicht null,
product_name varchar (255),
Preis int,
Menge int
);

Da die Tabelle keinen Primärschlüssel enthält, können wir einen Cluster -Index manuell erstellen, wie in der folgenden Abfrage gezeigt:

Erstellen Sie Clustered Index ID_Index auf Inventory (ID);

Die obige Abfrage erstellt einen Clustered -Index mit der Namens -ID_index in der Tabelle des Inventars mit der ID -Spalte.

Wenn wir in SSMs nach Indizes suchen, sollten wir den ID_Index als:

Einpacken!

In diesem Leitfaden haben wir das Konzept der Indizes und Cluster -Indizes in SQL Server untersucht. Wir haben auch abgedeckt, wie man einen Cluster -Schlüssel in einer Datenbanktabelle erstellt.

Vielen Dank fürs Lesen und bleiben Sie auf dem Laufenden, um weitere SQL Server -Tutorials aufzulegen.