Les index jouent un rôle essentiel dans les bases de données. Ils agissent comme des index dans un livre, vous permettant de rechercher et de localiser divers éléments et sujets dans un livre. Les index dans une base de données effectuent de manière similaire et aident à accélérer la vitesse de recherche des enregistrements stockés dans une base de données.
Les indices en cluster sont l'un des types d'index dans SQL Server. Il est utilisé pour définir l'ordre dans lequel les données sont stockées dans un tableau. Cela fonctionne en triant les enregistrements sur une table puis en les stockant.
Dans ce didacticiel, vous vous renseignerez sur les indices en cluster dans une table et comment définir un index en cluster dans SQL Server.
Index en cluster SQL Server
Avant de comprendre comment créer un index en cluster dans SQL Server, apprenons comment fonctionne les index.
Considérez l'exemple de requête ci-dessous pour créer un tableau à l'aide d'une structure de base.
Créer une base de données product_inventory;Ensuite, insérez quelques exemples de données dans le tableau, comme indiqué dans la requête ci-dessous:
Insérer dans les valeurs de l'inventaire (id, product_name, prix, quantité)L'exemple de tableau ci-dessus n'a pas de contrainte de clé primaire définie dans ses colonnes. Par conséquent, SQL Server stocke les enregistrements dans une structure non ordonnée. Cette structure est connue comme un tas.
Supposons que vous deviez effectuer une requête pour localiser une ligne spécifique dans le tableau? Dans un tel cas, il obligera SQL Server à scanner la table entière pour localiser l'enregistrement correspondant.
Par exemple, considérez la requête.
Sélectionnez * dans l'inventaire où la quantité = 8;Si vous utilisez le plan d'exécution estimé dans SSMS, vous remarquerez que la requête scanne l'ensemble du tableau pour localiser un seul enregistrement.
Bien que les performances ne soient guère perceptibles dans une petite base de données comme celle ci-dessus, dans une base de données avec un nombre énorme d'enregistrements, la requête peut prendre plus de temps pour terminer.
Un moyen de résoudre un tel cas est d'utiliser un index. Il existe différents types d'index dans SQL Server. Cependant, nous nous concentrerons principalement sur les index en cluster.
Comme mentionné, un index en cluster stocke les données dans un format trié. Un tableau peut avoir un index en grappe, car nous ne pouvons trier les données que dans un seul ordre logique.
Un index en cluster utilise des structures de B-Tree pour organiser et trier les données. Cela vous permet d'effectuer des inserts, des mises à jour, des suppressions et plus d'opérations.
Remarque dans l'exemple précédent; Le tableau n'avait pas de clé primaire. Par conséquent, SQL Server ne crée aucun index.
Cependant, si vous créez un tableau avec une contrainte de clé primaire, SQL Server crée automatiquement un index en cluster à partir de la colonne de clé primaire.
Regardez ce qui se passe lorsque nous créons la table avec une contrainte de clé primaire.
Créer l'inventaire de table (Si vous réévaluez la requête sélectionnée et utilisez le plan d'exécution estimé, vous voyez que la requête utilise un index en cluster comme:
Sélectionnez * dans l'inventaire où la quantité = 8;Sur SQL Server Management Studio, vous pouvez afficher les index disponibles pour une table en élargissant le groupe d'index comme indiqué:
Que se passe-t-il lorsque vous ajoutez une contrainte de clé primaire à un tableau contenant un index? SQL Server appliquera la contrainte dans un index non groupé dans un tel scénario.
SQL Server Créer un index en cluster
Vous pouvez créer un index en cluster à l'aide de l'instruction Create Cluster Index dans SQL Server. Ceci est principalement utilisé lorsque le tableau cible n'a pas de contrainte de clé primaire.
Par exemple, considérez le tableau suivant.
Tableau de dépose si il existe un inventaire;Étant donné que le tableau n'a pas de clé primaire, nous pouvons créer un index en cluster manuellement, comme indiqué dans la requête ci-dessous:
Créer un index cluster id_index sur l'inventaire (id);La requête ci-dessus crée un index en cluster avec le nom id_index sur la table de l'inventaire à l'aide de la colonne ID.
Si nous naviguons pour les index dans SSMS, nous devrions voir l'ID_Index comme:
Conclure!
Dans ce guide, nous avons exploré le concept d'index et d'index en cluster dans SQL Server. Nous avons également couvert comment créer une clé en cluster sur une table de base de données.
Merci d'avoir lu et restez à l'écoute pour plus de tutoriels SQL Server.