Types d'index dans Microsoft SQL Server

Types d'index dans Microsoft SQL Server
Un index nous aide à rechercher un enregistrement particulier dans la base de données. L'une des composantes clés des capacités de gestion des données du SQL Server est sa prise en charge de l'indexation qui permet aux développeurs et aux administrateurs d'optimiser les performances de leurs requêtes et d'améliorer l'efficacité globale de leurs bases de données.

Nous discuterons des différentes catégories d'index dans le serveur Microsoft SQL. Les principaux types d'index sont les suivants: index en cluster, index non cluster, index Btree et index uniques.

Types d'index dans Microsoft SQL Server

Index en grappe

Un index en cluster définit la disposition physique réelle des données dans un tableau. Chaque table du serveur SQL ne peut avoir qu'un seul index en cluster, et l'index doit être créé sur une colonne ou un ensemble de colonnes uniques et non nulles. Puisqu'un index en cluster détermine la disposition physique d'un tableau, il est souvent utilisé pour les tables qui sont fréquemment recherchées en fonction de leur clé principale ou d'autres valeurs uniques.

Laissez d'abord créer une table et insérer les valeurs en utilisant les commandes SQL suivantes:

Insérer dans les clients (Customer_ID, Customer_Name, Customer_Email, Customer_Phone)
Valeurs (1, «Somdeb Nath», «Somdebnath @ Exemple.com ',' 3532626 '),
(2, 'Jina Pal', 'Paljina @ Exemple.com ',' 5555678 '),
(3, 'Arnita Guha', 'rjarnita @ exemple.com ',' 4449912 '),
(4, 'Krishna Kumar', 'KK @ Exemple.com ',' 716781497 ');

Regardons un exemple d'index en cluster. Pour créer un index en cluster sur la colonne «Customer_ID», nous pouvons utiliser la requête SQL suivante:

Créer un index en cluster idx_customers_customer_name sur les clients (client_name);

Cela crée un index en cluster sur la colonne Customer_Name où les données du tableau sont physiquement commandées en fonction des valeurs de la colonne Customer_Name.

Pour récupérer tous les clients dont le nom commence par la lettre «A», nous pouvons utiliser la requête SQL suivante:

SÉLECTIONNER *
Des clients
Où client_name comme «un%»
Commande par client_name;

Sortir:

Customer_ID Customer_NAME Customer_EMail Customer_Phone
1 3 Arnita Guha Rjarnita @ Exemple.com 4449912

Index non cluonneux

C'est un type d'index qui n'affecte pas l'ordre physique des données dans un tableau. Un index non groupé produit une structure de données indépendante qui stocke la touche d'index et le pointeur vers la ligne de données associée dans le tableau. Cela permet aux requêtes de localiser rapidement les lignes de données pertinentes en fonction des valeurs de l'index. Contrairement aux index en cluster, les tableaux du serveur SQL peuvent avoir plusieurs index non cluster, et l'index peut être créé sur n'importe quelle colonne ou jeu de colonnes dans le tableau.

Un exemple d'indice non groupé est le suivant:

Créer un index non cluster idx_customer_email
Sur les clients (client_email);

Cela crée un index non groupé sur la colonne "Customer_Email" où les données du tableau restent physiquement non ordonnées, mais l'index stocke une copie triée des données dans la colonne "Customer_Email".

Pour récupérer tous les clients dont l'adresse e-mail comprend le «Gmail.Domaine com ”, nous pouvons utiliser la requête SQL suivante:

SÉLECTIONNER *
Des clients
Où client_email comme '% gmail.com% '
Commande par client_name;

Sortir:

Customer_ID Customer_NAME Customer_EMail Customer_Phone

Ici, aucun client n'a un e-mail qui contient le «gmail.Domaine com ”, donc le champ de sortie est vide.

Index btree

Un index Btree est un moyen d'organiser les données dans une structure qui ressemble à un arbre. Chaque nœud de l'arbre contient une plage de valeurs clés, et chaque nœud de feuille contient un pointeur vers la ligne de données correspondante. Les index Btree sont couramment utilisés dans le serveur SQL car ils permettent une recherche et un tri efficaces de grandes quantités de données. Ils sont particulièrement utiles pour les requêtes qui impliquent des recherches de plages ou des opérations de tri. Par exemple: salaires, numéros de téléphone, etc.

Un exemple de création d'un index btree sur la colonne «Customer_Phone» est le suivant:

Créer un index idx_customer_phone
Sur les clients (Customer_Phone);

Cela crée un index B-Tree sur la colonne «Customer_Phone» où les données de l'index sont stockées dans une structure en forme d'arbre, chaque nœud contenant une gamme de valeurs et de pointeurs vers les autres nœuds.

Maintenant, nous voulons récupérer tous les clients dont le numéro de téléphone commence par le code régional de «555» en utilisant la requête SQL suivante:

SÉLECTIONNER *
Des clients
Où Customer_Phone comme «555%»
Commande par client_name;

Sortir:

Customer_ID Customer_NAME Customer_EMail Customer_Phone
1 2 Jina Pal Paljina @ Exemple.com 5555678

Index unique

C'est un type d'index qui garantit qu'aucune ligne dans un tableau n'a la même valeur de clé. Cela peut être utile pour appliquer l'intégrité des données et empêcher les enregistrements en double dans un tableau.

Un exemple de création d'un index unique sur la colonne «Customer_Email» est le suivant:

Créer un index idx_customer_email_new
Sur les clients (client_email);

Cela crée un index unique sur la colonne «Customer_Email» où l'index applique une contrainte qui garantit qu'aucune ligne dans le tableau ne peut avoir la même valeur dans la colonne «Customer_Email».

Maintenant, insérez un nouveau client dans la table avec le «lili @ gmail.com ”e-mail et le récupérer à l'aide de la requête SQL suivante:

Insérer dans les clients (Customer_ID, Customer_Name, Customer_Email, Customer_Phone)
Valeurs (5, «Lili Doe», «lili @ gmail.com ',' 333-333-3333 ');
sélectionner *
Des clients où Customer_Email comme «l%»;

Sortir:

Customer_ID Customer_NAME Customer_EMail Customer_Phone
1 5 lili doe lili @ gmail.com 333-333-3333

Conclusion

Les index jouent un rôle important dans l'optimisation des performances des bases de données SQL Server. Comprendre les différents types d'index peut aider les administrateurs de base de données à choisir le type d'index le plus approprié pour leurs applications. En créant et en maintenant efficacement les index, les entreprises peuvent s'assurer que leurs bases de données fonctionnent efficacement, ce qui leur permet de prendre des décisions basées sur les données et de fournir un meilleur service à leurs clients.