Inspirado en esta publicación: https://twitter.com/#!/SQLChicken/status/102930436795285505
Montones: ¿se consideran una estructura de índice o son estrictamente una estructura de tabla sin índice?
fuente
Inspirado en esta publicación: https://twitter.com/#!/SQLChicken/status/102930436795285505
Montones: ¿se consideran una estructura de índice o son estrictamente una estructura de tabla sin índice?
Desde MSDN - Organización de tablas e índices :
"Las tablas de SQL Server usan uno de dos métodos para organizar sus páginas de datos dentro de una partición:
Las filas de datos se almacenan en orden según la clave de índice agrupada. El índice agrupado se implementa como una estructura de índice de árbol B que admite la recuperación rápida de las filas, en función de sus valores de clave de índice agrupado. Las páginas en cada nivel del índice, incluidas las páginas de datos en el nivel de hoja, están vinculadas en una lista doblemente vinculada. Sin embargo, la navegación de un nivel a otro se realiza mediante el uso de valores clave.
Las filas de datos no se almacenan en ningún orden en particular, y no hay un orden particular en la secuencia de las páginas de datos. Las páginas de datos no están vinculadas en una lista vinculada ".
Montones - Optimización de SQL Server :
"Una tabla de montón, por definición, es una tabla que no tiene ningún índice agrupado. Diferentes páginas de la tabla basada en el montón ocupan diferentes áreas no contiguas en un disco, y no están vinculadas de ninguna manera".
A diferencia de - Estructuras de índice agrupadas : "En SQL Server, los índices se organizan como árboles B. Cada página de un árbol B de índice se denomina nodo de índice. El nodo superior del árbol B se denomina nodo raíz. el nivel inferior de los nodos en el índice se llama nodos hoja. Cualquier nivel de índice entre la raíz y los nodos hoja se conocen colectivamente como niveles intermedios. En un índice agrupado, los nodos hoja contienen las páginas de datos de la tabla subyacente . Los nodos de nivel intermedio contienen páginas de índice que contienen filas de índice. Cada fila de índice contiene un valor clave y un puntero a una página de nivel intermedio en el árbol B, o una fila de datos en el nivel de hoja del índice. Las páginas en cada nivel de el índice está vinculado en una lista doblemente vinculada ".
Otras referencias:
Un índice implica que hay un orden de datos para las filas. Dado que un montón no se crea con dicho orden y tampoco mantiene un orden, es solo un método para almacenar datos de la tabla.
Hay algunos ejemplos (por ejemplo, dm_db_index_physical_stats ) donde especificar un montón, debe ingresar una identificación de índice de 0. Si bien esto parece contradecir lo que acabo de decir, creo que esto es solo un valor mágico para simplificar la API y su uso; nada mas.
Estructura de tabla sin índice agrupado.