SQL 2022 Resumable CONSTRAINT

Dec 5, 2022 | SQL 2022, SQL Server | 0 comments

La nueva versión de SQL Sever 2022 nos ha traído varias novedades.

Una de ellas es la posibilidad de como ya teníamos con los índices ahora hacerlo con la creación de constraint y poder utilizar el modo Resumible el cual permite ante un tiempo determinado poner en pausa la creación para luego poder continuar desde ese mismo punto de avance.

En el siguiente video te muestro una demostración de esta nueva funcionalidad y acá en este post te comparto los script

Pasos para la demo

  • Descargar y atachar la base de datos StackOverflow2010
  • Correr el siguiente script para crear una nueva tabla post
USE STACKOVERFLOW2010 
GO

DROP TABLE IF EXISTS POST_2 

SELECT IDENTITY(BIGINT, 1,1) AS ID_NUM,
* 
INTO POST_2 
FROM [DBO].[POSTS]
CROSS JOIN (SELECT TOP 2 COLUMN_ID FROM SYS.COLUMNS) AS C2 

Crear una Constraint que si dura mas de 1 minuto quede en modo pause

ALTER TABLE POST_2
ADD CONSTRAINT PK_CONSTRAIN 
PRIMARY KEY CLUSTERED (ID_NUM,CREATIONDATE,SCORE)
WITH (ONLINE = ON, MAXDOP = 1, RESUMABLE = ON, MAX_DURATION = 1);

Si se quiere analizar el estado de avance ejecutar la siguiente consulta

use StackOverflow2010 
go

SELECT SQL_TEXT, STATE_DESC, PERCENT_COMPLETE
FROM SYS.INDEX_RESUMABLE_OPERATIONS;

Para continuar o abortar con la constraint correr el siguiente codigo segun corresponda

ALTER INDEX ALL ON POST_2 ABORT;

ALTER INDEX ALL ON POST_2 RESUME;

Acerca del autor

Maximiliano Accotto

Con mas de 20 años de experiencia y trayectoria trabajando con bases de datos SQL Server y BI.

Fui Microsoft MVP desde el 2005 al 2019 y soy orador frecuente para distintos eventos de Microsoft y comunidades técnicas.

Me especializado en temas de tuning, administración, performance, diseño y BI en el mundo Microsoft ya sea para ambientes locales como nube.

 

Asesoramiento

¿Necesitas resolver problemas de SQL Server o Micosoft BI?

De ser así te puedo ayudar con mi asesoramiento totalmente personalizado

0 Comments