Indextypen in Microsoft SQL Server

Indextypen in Microsoft SQL Server
Ein Index hilft uns, nach einem bestimmten Datensatz in der Datenbank zu suchen. Eine der Schlüsselkomponenten der Datenverwaltungsfunktionen des SQL Servers ist die Unterstützung für die Indexierung, die es den Entwicklern und Administratoren ermöglicht, die Leistung ihrer Abfragen zu optimieren und die Gesamteffizienz ihrer Datenbanken zu verbessern.

Wir werden die verschiedenen Kategorien von Indizes auf dem Microsoft SQL Server diskutieren. Die Haupttypen von Indizes sind: Clustered-Indizes, nicht klusterierte Indizes, Bree-Indizes und eindeutige Indizes.

Arten von Indizes in Microsoft SQL Server

Clustered Index

Ein Clustered -Index definiert die tatsächliche physikalische Anordnung der Daten in einer Tabelle. Jede Tabelle im SQL-Server kann nur einen Cluster-Index haben, und der Index muss in einer eindeutigen Spalte ohne Null oder Spalten erstellt werden. Da ein Clustered -Index das physikalische Layout einer Tabelle bestimmt, wird er häufig für Tabellen verwendet, die häufig basierend auf ihrem Primärschlüssel oder anderen eindeutigen Werten durchsucht werden.

Erstellen Sie zunächst eine Tabelle und fügen Sie die Werte mit den folgenden SQL -Befehlen ein:

In Kunden einfügen (Customer_ID, Customer_Name, Customer_Email, Customer_phone)
Werte (1, 'somdeb nath', '[email protected] ',' 3532626 '),
(2, 'Jina Pal', '[email protected] ',' 5555678 '),
(3, 'Arnita Guha', '[email protected] ',' 4449912 '),
(4, 'Krishna Kumar', [email protected] ',' 716781497 ');

Schauen wir uns ein Beispiel eines Cluster -Index an. Um einen Cluster -Index in der Spalte „Customer_id“ zu erstellen, können wir die folgende SQL -Abfrage verwenden:

Erstellen Sie Clustered Index idx_customers_customer_name über Kunden (Customer_Name);

Dadurch wird in der Spalte customer_name einen clusterierten Index erstellt.

Um alle Kunden zu holen, deren Name mit dem Buchstaben „A“ beginnt, können wir die folgende SQL -Abfrage verwenden:

WÄHLEN *
Von Kunden
Wo customer_name wie 'a%'
Bestellung von Customer_Name;

Ausgang:

customer_id customer_name customer_email customer_phone
1 3 Arnita Guha [email protected] 4449912

Nicht klusterer Index

Es handelt sich um eine Art von Index, der die physische Reihenfolge der Daten in einer Tabelle nicht beeinflusst. Ein nicht klusterer Index erzeugt eine unabhängige Datenstruktur, die den Indexschlüssel und den Zeiger auf die zugehörige Datenzeile in der Tabelle speichert. Auf diese Weise können die Abfragen die relevanten Datenzeilen schnell basierend auf den Werten im Index finden. Im Gegensatz zu den Cluster-Indizes können die Tabellen im SQL-Server mehrere nicht klusterierte Indizes haben, und der Index kann in jeder Spalte oder in einer Reihe von Spalten in der Tabelle erstellt werden.

Ein Beispiel für einen nicht klusterierten Index ist wie folgt:

Erstellen Sie nicht klustered Index idx_customer_email
Auf Kunden (Customer_email);

Dadurch wird in der Spalte „Customer_email“ einen nicht geklüsterten Index erstellt, in dem die Daten in der Tabelle physikalisch nicht ordnungsgemäß bleiben, der Index jedoch eine sortierte Kopie der Daten in der Spalte „Customer_email“ speichert.

Abrufen Sie alle Kunden ab, deren E -Mail -Adresse das „Google Mail“ enthält.com ”Domain können wir die folgende SQL -Abfrage verwenden:

WÄHLEN *
Von Kunden
Wobei Customer_email wie '%Google Mail mögen.com%'
Bestellung von Customer_Name;

Ausgang:

customer_id customer_name customer_email customer_phone

Hier hat kein Kunde eine E -Mail, die das „Google Mail“ enthält.com ”-Domäne, also ist das Ausgangsfeld leer.

Btree Index

Ein Bree -Index ist eine Möglichkeit, die Daten in einer Struktur zu organisieren, die einem Baum ähnelt. Jeder Knoten im Baum enthält einen Bereich von Schlüsselwerten, und jeder Blattknoten enthält einen Zeiger auf die entsprechende Datenzeile. Bree -Indizes werden häufig im SQL -Server verwendet, da sie eine effiziente Suche und Sortierung großer Datenmengen ermöglichen. Sie sind besonders nützlich für Abfragen, die Reichweite oder Sortiervorgänge beinhalten. Zum Beispiel: Gehälter, Telefonnummern usw.

Ein Beispiel für das Erstellen eines BTREE -Index in der Spalte „Customer_phone“ ist wie folgt:

Erstellen Sie Index idx_customer_phone
Auf Kunden (Customer_phone);

Dadurch wird in der Spalte „Customer_phone“ ein B-Tree-Index erstellt, in dem die Daten im Index in einer Baumstruktur gespeichert sind, wobei jeder Knoten einen Wertebereich und Zeiger auf die anderen Knoten enthält.

Jetzt möchten wir alle Kunden abrufen, deren Telefonnummer mit der Vorwahl von „555“ mit der folgenden SQL -Abfrage beginnt:

WÄHLEN *
Von Kunden
Wobei Customer_phone '555%' mögen
Bestellung von Customer_Name;

Ausgang:

customer_id customer_name customer_email customer_phone
1 2 Jina [email protected] 5555678

Eindeutiger Index

Es ist eine Art Index, der sicherstellt, dass keine zwei Zeilen in einer Tabelle den gleichen Schlüsselwert haben. Dies kann nützlich sein, um die Datenintegrität durchzusetzen und die doppelten Datensätze in einer Tabelle zu verhindern.

Ein Beispiel für das Erstellen eines eindeutigen Index in der Spalte „Customer_email“ ist wie folgt:

Erstellen index idx_customer_email_new
Auf Kunden (Customer_email);

Dies erstellt einen eindeutigen Index in der Spalte „Customer_email“, in der der Index eine Einschränkung erzwingt, die sicherstellt.

Fügen Sie nun einen neuen Kunden mit dem „lili@gmail in den tisch ein.com ”E -Mail und abrufen mit der folgenden SQL -Abfrage:

In Kunden einfügen (Customer_ID, Customer_Name, Customer_Email, Customer_phone)
Werte (5, 'lili doe', '[email protected] ',' 333-333-3333 ');
wählen *
Von Kunden, bei denen Customer_email 'l%' wie;

Ausgang:

customer_id customer_name customer_email customer_phone
1 5 lili doe [email protected] 333-333-3333

Abschluss

Indizes spielen eine wichtige Rolle bei der Optimierung der Leistung der SQL Server -Datenbanken. Das Verständnis der verschiedenen Arten von Indizes kann den Datenbankadministratoren helfen, den am besten geeigneten Indextyp für ihre Anwendungen zu wählen. Durch die effektive Erstellung und Aufrechterhaltung der Indizes können Unternehmen sicherstellen, dass ihre Datenbanken effizient funktionieren, sodass sie datengesteuerte Entscheidungen treffen und ihren Kunden einen besseren Service bieten können.