Les tas sont-ils considérés comme une structure d'index ou sont-ils strictement une structure de table sans index?

Réponses:

9

Depuis MSDN - Organisation des tables et des index :

"Les tables SQL Server utilisent l'une des deux méthodes pour organiser leurs pages de données au sein d'une partition:

  • Les tables en cluster sont des tables qui ont un index en cluster.

Les lignes de données sont stockées dans l'ordre en fonction de la clé d'index cluster. L'index cluster est implémenté comme une structure d'index B-tree qui prend en charge la récupération rapide des lignes, en fonction de leurs valeurs de clé d'index cluster. Les pages de chaque niveau de l'index, y compris les pages de données du niveau feuille, sont liées dans une liste à double liaison. Cependant, la navigation d'un niveau à un autre est effectuée à l'aide de valeurs clés.

  • Les segments de mémoire sont des tables qui n'ont pas d'index cluster.

Les lignes de données ne sont pas stockées dans un ordre particulier, et il n'y a pas d'ordre particulier à la séquence des pages de données. Les pages de données ne sont pas liées dans une liste chaînée. "

Tas - Optimisation SQL Server :

"Une table de segment de mémoire, par définition, est une table qui n'a pas d'index clusterisé. Différentes pages de la table de segment de mémoire occupent différentes zones non contiguës sur un disque, et elles ne sont liées entre elles d'aucune façon."

Par opposition à - Structures d'index cluster : "Dans SQL Server, les index sont organisés en arborescences B. Chaque page d'une arborescence d'index B est appelée un nœud d'index. Le nœud supérieur de l'arborescence B est appelé le nœud racine. Le le niveau inférieur des nœuds dans l'index est appelé nœuds feuilles. Tous les niveaux d'index entre la racine et les nœuds feuilles sont collectivement appelés niveaux intermédiaires. Dans un index clusterisé, les nœuds feuilles contiennent les pages de données de la table sous-jacente . La racine et les nœuds de niveau intermédiaire contiennent des pages d'index contenant des lignes d'index. Chaque ligne d'index contient une valeur clé et un pointeur vers une page de niveau intermédiaire dans l'arborescence B ou une ligne de données dans le niveau feuille de l'index. Les pages de chaque niveau de les index sont liés dans une liste à double liaison. "

Autres références:

Marian
la source
10

Un index implique qu'il y a un ordre de données sur les lignes. Étant donné qu'un segment de mémoire n'est pas créé avec une telle commande et ne conserve pas non plus une commande, il s'agit simplement d'une méthode de stockage des données de table.

Il y a quelques exemples (par exemple, dm_db_index_physical_stats ) où spécifier un tas, vous devez entrer un identifiant d'index de 0. Bien que cela semble contredire ce que je viens de dire, je pense que ce n'est qu'une valeur magique pour simplifier l'API et son usage; rien de plus.

Jon Seigel
la source
4

Structure de table sans index clusterisé.


la source