Share via


Index de hachage

Les index sont utilisés comme points d'entrée pour les tables mémoire optimisées. La lecture de lignes dans une table requiert un index pour localiser les données en mémoire.

Un index de hachage se compose d'une collection de compartiments organisés dans un tableau. Une fonction de hachage mappe les clés d'index aux compartiments correspondants dans l'index de hachage. L'illustration suivante montre trois clés d'index qui sont mappées à trois compartiments différents dans l'index de hachage. Dans l'illustration, le nom de fonction de hachage est f (x).

Clés d’index mappées à différents compartiments.

La fonction de hachage utilisée pour les index de hachage présente les caractéristiques suivantes :

  • SQL Server a une fonction de hachage qui est utilisée pour tous les index de hachage.

  • La fonction de hachage est déterministe. La même clé d'index est toujours mappée vers le même compartiment dans l'index de hachage.

  • Plusieurs clés d'index peuvent être mappées au même compartiment de hachage.

  • La fonction de hachage est équilibrée, ce qui signifie que la distribution des valeurs de clé d'index sur les compartiments de hachage suit généralement une distribution Poisson.

    La distribution Poisson n'est pas une distribution uniforme. Les valeurs de clé d'index ne sont pas distribuées uniformément dans les compartiments de hachage. Par exemple, une distribution Poisson de n clés distinctes sur n compartiments de hachage résulte dans environ un tiers de compartiments vides, un tiers de compartiments contenant une clé d'index, et le dernier tiers contenant deux clés d'index. Un petit nombre de compartiments contiendra plus de deux clés.

Si deux clés d'index sont mappées au même compartiment de hachage, il existe une collision de hachage. Un grand nombre de collisions de hachage peut avoir un impact sur les performances des opérations de lecture.

La structure de l'index de hachage en mémoire comporte un tableau de pointeurs de mémoire. Chaque compartiment mappe à un décalage dans ce tableau. Chaque compartiment dans le tableau pointe sur la première ligne dans ce compartiment de hachage. Chaque ligne dans le compartiment pointe sur la ligne suivante, ce qui résulte dans une chaîne de lignes pour chaque compartiment de hachage, comme illustré dans la figure ci-dessous.

Structure d’index de hachage en mémoire.

L'illustration comprend trois compartiments avec des lignes. Le deuxième compartiment supérieur contient les trois lignes rouges. La quatrième compartiment contient une seule ligne bleue. Le compartiment inférieur contient les deux lignes vertes. Il peut s'agir de versions différentes de la même ligne.

Pour plus d'informations sur les index des tables mémoire optimisées, consultez Guidelines for Using Indexes on Memory-Optimized Tables.

Voir aussi

Index sur des tables optimisées en mémoire