lenguaje de consulta estructurado (SQL) es un lenguaje de programación utilizado para la gestión de bases de datos. En un servidor SQL - un sistema de gestión de base de datos (DBMS) que puede responder a las preguntas con formato en SQL - los datos se almacenan en tablas de filas o registros, y las columnas o campos. Si los datos de la tabla no se clasifican en un orden específico, lógica, la tabla se conoce como una tabla de montón o pila.
Páginas de datos
Espacio en un servidor de base de datos SQL se divide en una serie de unidades de igual tamaño, llamados páginas, cada una con un número de página lógica y secuencial. Las páginas se subdividen en unidades más pequeñas llamadas unidades de asignación. Un montón es simplemente una colección desordenada de páginas de datos con ningún índice agrupado.
Índice agrupado
Un índice agrupado es una estructura de almacenamiento de una tabla de base de datos, independiente de las páginas de datos. Un índice agrupado determina el orden físico de datos en una tabla, y su propósito es proporcionar un acceso más rápido a los datos, en particular para las columnas menudo buscado rangos de valor. Una vez que el DBMS encuentra la fila con el primer valor con el índice agrupado, todas las filas posteriores están garantizados para estar físicamente adyacentes.
Adición de datos
Una tabla de montón no tiene ningún índice agrupado, por lo que las diferentes páginas de datos ocupan diferentes áreas no adyacentes en un disco duro y no están vinculados entre sí de cualquier manera. Se añade todos los nuevos datos al final de una tabla. El DBMS mantiene un registro de la última página en la tabla y se limita a añadir registros a la página hasta que esté lleno, antes de añadir una nueva página a la mesa. La estructura de montón es la manera más rápida de agregar datos a una tabla, pero no es muy eficiente para la recuperación de datos.
Recuperando datos
Para recuperar datos de una tabla de montón, un DBMS se ve obligado a utilizar un método de "fuerza bruta" de recuperación de datos, conocido como un recorrido de tabla. La ausencia de un índice agrupado significa el DBMS deben escanear cada página de datos en la tabla, que es altamente ineficiente. Además, debido a las páginas de datos ocupan áreas no adyacentes, una tabla de montón se puede fragmentar por la superficie de un disco duro. La única manera de eliminar la fragmentación consiste en copiar la tabla de montón a una nueva tabla o crear un índice agrupado en la tabla, en cuyo caso deja de ser una tabla de montón. Por último, si una fila en una tabla de montón se mueve, el DBMS crea un puntero desde la ubicación anterior a la nueva. Si la fila se mueve de nuevo, el DBMS crea otro puntero y así sucesivamente. Punteros significan el DBMS necesita realizar más operaciones de entrada / salida y reducir la eficiencia de recuperación de datos aún más.