No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Cómo nos pueden ayudar los índices?

7/31
Recursos

Aportes 10

Preguntas 6

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

  • Un indice es una subconsulta que vamos a tener almacenada en nuestra bd, de manera que se cada vez que realice la consulta sea más eficiente.
  • Hay veces donde no es necesario crear un indice, sólo debemos actualizarlo, para que incluya más columnas.

Una de las mayores ventajas de los índices es que cuando el manejador de BD se encuentra un índice evitamos un “escaneo completo de la tabla” lo que hace que cuando tenemos grandes cantidades de datos en nuestras tablas, la mejora puede ser muy importante.
Muy relacionado con el anterior… al evitar “escaneos completos de las tablas”, evitamos los siguientes problemas: Sobrecarga de CPU, sobrecarga de disco y concurrencia.
Con los índices evitamos que el manejador de BD tenga que hacer lecturas secuenciales.
Los índices nos permiten una mayor rapidez en la ejecución de las consultas tipo SELECT lo que sea WHERE …
Y por último será una ventaja para aquellos campos que no tengan datos duplicados, sin embargo, si es un campo con valores que se repiten continuamente (Ej. Masculino/Femenino) no es tan aconsejable su uso.

Yo utilizo mucho, parar revisar los indices de cada tabla.

sp_helpindex [Sales.Invoices]

Después de analizar el plan se recrea el índice incluyendo las columnas que no cubre el indice actual.

CREATE NONCLUSTERED INDEX [FK_Sales_Invoices_ContactPersonID] ON [Sales].[Invoices]
(
	[ContactPersonID] ASC
)
INCLUDE([InvoiceID],[AccountsPersonID]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = ON, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [USERDATA]

GO

El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, por medio de un identificador único de cada fila de una tabla, permitiendo un rápido acceso a los registros de una tabla en una base de datos.

Características

Los índices pueden ser creados usando una o más columnas, proporcionando la base tanto para búsquedas rápidas al azar como de un ordenado acceso a registros eficiente.

Los índices son construidos sobre árboles B, B+, B* o sobre una mezcla de ellos, funciones de cálculo u otros métodos.

Aquí mi consulta ya optimizada :

INDICE = SUB CONSULTA - EFICIENCIA EN CONSULTAS

Comparto el resultado de mi práctica, saludos. 😁

Configuración de la consulta:

SELECT [InvoiceID]     
     ,[ContactPersonID]
     ,[AccountsPersonID]
 FROM [WideWorldImporters].[Sales].[Invoices]
 WHERE [ContactPersonID] >= 3032 AND
       [ContactPersonID] <= 3035;

SET STATISTICS IO
Hace que SQL Server muestre información relacionada con la cantidad de actividad de disco generada por las instrucciones Transact-SQL.

SET STATISTICS IO { ON | OFF }

Más info…

Muy interesante la clase.