Índices SQL Server 2019

Hola a todos de nuevo! Hoy vamos a ver una característica de SQL Server 2019 referente a los índices. Veremos cómo utilizarla y como nos puede servir de utilidad.

Partimos de un escenario de creación de índices ya sea por optimización o por mantenimiento del entorno. El índice a crear presenta un tamaño relevante y, al tener problemas de rendimiento derivados, decidimos crearlo de inmediato.

Trabajando con Índices

El índice empieza a generar problemas de bloqueos al llevar 1 hora de creación, por lo que, sin saber cuanto queda para que termine, tenemos que tomar la decisión de pararlo y volver a empezar en otro horario o….. utilizar la nueva cláusula “RESUMABLE”.

CREATE
INDEX test_idx1 ON test_table (col1) WITH (ONLINE = ON, RESUMABLE = ON);

Esta claúsula nos permite parar la creación y retormarla cuando el entorno sea favorable.

Para pararlo ejecutaremos el comando

ALTER INDEX test_idx1 ON test_table PAUSE;
Índices SQL Server 2019

Además, ejecutando:

SELECT
name, percent_complete FROM sys.index_resumable_operations;

 Podremos ver el % que lleva de creación.

Porcentaje de creacion

Podemos ver que el índice está pausado.

********* DBA TIP ********

Las nuevas filas que se vayan insertando en la tabla desde que paramos la creación no se reflejaran en dicho %. Veamoslo.

Insertamos el doble del volumen de datos que ya posee la tabla.

INSERT INTO dbo.t1 (a)
  SELECT a from t1
GO

La creación del índice sobre la tabla original (10000000 filas) llevaba un progreso de 9,999%, al añadir otros 10000000 de filas, vemos que el % no se divide a la mitad sino que sube un 20%

Indice pausado

Más información sobre índices en https://docs.microsoft.com/es-es/sql/t-sql/statements/create-index-transact-sql?view=sql-server-ver15

Hasta aquí la entrega de hoy amigos! Si tenéis alguna duda sobre como gestionar vuestros índices o sobre otra cuestión de SQL Server, más funcionalidades de SQL Server 2019 en https://www.gpsos.es/2020/06/nuevas-funcionalidades-sql-server-2019/, no lo dudéis y contactar con nosotros! Hasta la próxima!

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn