Creación de índices agrupados y no agrupados en SQL Server

Creación de índices agrupados y no agrupados en SQL Server

Creating Clustered Non Clustered Indexes Sql Server

En SQL Server, existen dos tipos de índices; Índices agrupados y no agrupados. Tanto los índices agrupados como los no agrupados tienen la misma estructura física. Además, ambos se almacenan en SQL Server como una estructura B-Tree.



Índice agrupado:

Una lista agrupada es un tipo particular de índice que reorganiza el almacenamiento físico de registros en la tabla. Dentro de SQL Server, los índices se utilizan para acelerar las operaciones de la base de datos, lo que genera un alto rendimiento. Por lo tanto, la tabla puede tener solo un índice agrupado, que generalmente se realiza en la clave principal. Los nodos hoja de un índice agrupado contienen 'Páginas de datos'. Una tabla solo puede poseer un índice agrupado.



Creemos un índice agrupado para tener una mejor comprensión. En primer lugar, necesitamos crear una base de datos.

Creación de base de datos

Para crear una base de datos. Haga clic derecho en 'Bases de datos' en el explorador de objetos y seleccione 'Nueva base de datos' opción. Escriba el nombre de la base de datos y haga clic en Aceptar. La base de datos se ha creado como se muestra en la siguiente figura.



Creación de tablas usando la vista de diseño

Ahora crearemos una tabla llamada 'Empleado' con la clave principal utilizando la vista de diseño. Podemos ver en la imagen de abajo que hemos asignado principalmente al archivo denominado “ID” y no hemos creado ningún índice en la tabla.

Crear una tabla denominada 'Empleado' con ID como clave principal



También puede crear una tabla ejecutando el siguiente código.

USE [prueba] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREAR TABLA [dbo]. [Empleado] ([ID] [int] IDENTITY (1,1) NOT NULL, [Dep_ID] [int] NULL, [Nombre] [ varchar] (200) NULL, [email] [varchar] (250) NULL, [city] [varchar] (250) NULL, [address] [varchar] (500) NULL, CONSTRAINT [Primary_Key_ID] PRIMARY KEY CLUSTER ([ID ] ASC) CON (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] GO

La salida será la siguiente.

Crear una tabla denominada 'Empleado' con ID como clave principal

El código anterior ha creado una tabla llamada 'Empleado' con un campo de ID, un identificador único como clave principal. Ahora, en esta tabla, se creará automáticamente un índice agrupado en el ID de columna debido a restricciones de clave primaria. Si desea ver todos los índices en una tabla, ejecute el procedimiento almacenado 'Sp_helpindex'. Ejecute el siguiente código para ver todos los índices en una tabla llamada 'Empleado'. Este procedimiento de almacenamiento toma un nombre de tabla como parámetro de entrada.

USE prueba EXECUTE sp_helpindex Empleado

La salida será la siguiente.

'Sp_helpindex' mostrará todos los índices en la tabla de empleados.

Otra forma de ver los índices de tablas es ir a 'mesas' en el explorador de objetos. Seleccione la tabla y gástala. En la carpeta de índices, puede ver todos los índices relevantes para esa tabla específica como se muestra en la siguiente figura.

Ver todos los índices en la tabla

Como este es el índice agrupado, el orden lógico y físico del índice será el mismo. Esto significa que si un registro tiene un Id de 3, se almacenará en la tercera fila de la tabla. Del mismo modo, si el quinto registro tiene un id de 6, se almacenará en el 5thubicación de la mesa. Para comprender el orden de los registros, debe ejecutar el siguiente script.

USE [prueba] GO SET IDENTITY_INSERT [dbo]. [Employee] ON INSERT [dbo]. [Employee] ([ID], [Dep_ID], [Name], [email], [city], [address]) VALUES ( 8, 6, N'Humbaerto Acevedo