Configure las opciones de tempdb de Azure SQL Managed Instance

Se aplica a: Azure SQL Managed Instance

En este artículo se explica cómo configurar las opciones de tempdb de Azure SQL Managed Instance.

Azure SQL Managed Instance permite configurar lo siguiente:

  • Número de archivos tempdb
  • Incremento de crecimiento de archivos tempdb
  • Tamaño máximo de tempdb

la configuración de tempdb se mantiene después de reiniciar, actualizar o si hay una conmutación por error.

Información general

tempdb es una de las bases de datos del sistema predeterminadas que se incluyen con Azure SQL Managed Instance. La estructura de tempdb es la misma que cualquier otra estructura de base de datos de usuario; la diferencia es que, puesto que tempdb se usa para el almacenamiento no duradero, las transacciones se registran mínimamente.

tempdb no se puede quitar, desasociar, desconectar, cambiar el nombre ni restaurar. Si se intenta cualquiera de estas operaciones, se devuelve un error. tempdb se vuelve a generar tras cada inicio de la instancia del servidor y los objetos que se pueden haber creado en tempdb durante una sesión anterior no se conservan cuando se reinicia el servicio, después de una operación de administración de actualizaciones de instancia o una conmutación por error.

La carga de trabajo en tempdb difiere de las cargas de trabajo de otras bases de datos de usuario; los objetos y los datos se crean y destruyen con frecuencia y hay una simultaneidad extremadamente alta. Solo hay una base de datos tempdb para cada instancia administrada. Incluso si tiene varias bases de datos y aplicaciones que se conectan a la instancia, todas usan la misma base de datos tempdb. Los servicios pueden experimentar contención cuando intentan asignar páginas en un tempdb muy usado. Según el grado de contención, las consultas y las solicitudes que impliquen tempdb podrían dejar de responder. Este es el motivo por el que tempdb es fundamental para el rendimiento del servicio.

Número de archivos tempdb

El aumento del número de archivos de datos tempdb crea una o varias páginas GAM y SGAM para cada archivo de datos, lo que ayuda a mejorar la simultaneidad de tempdb y reduce la contención de páginas PFC. Sin embargo, aumentar el número de archivos de datos tempdb podría tener otras implicaciones de rendimiento, por lo que probar exhaustivamente antes de implementar en producción.

De forma predeterminada, Azure SQL Managed Instance crea 12 archivos de datos tempdb y 1 archivo de registro tempdb, pero es posible modificar esta configuración.

La modificación del número de archivos tempdb tiene las siguientes limitaciones:

  • El nombre lógico del nuevo archivo no distingue mayúsculas de minúsculas, con un máximo de 16 caracteres y sin espacios.
  • El número máximo de archivos tempdb es 128.

Nota

No es necesario reiniciar el servidor después de agregar nuevos archivos; sin embargo, los archivos vacíos se rellenarán con mayor prioridad y el algoritmo round robin para asignar páginas se perderá hasta que se reequilibra el sistema.

Puede usar tanto SQL Server Management Studio (SSMS) como Transact-SQL (T-SQL) para cambiar el número de archivos tempdb en Azure SQL Managed Instance.

Puede usar SQL Server Management Studio (SSMS) para modificar el número de archivos tempdb. Para ello, siga estos pasos:

  1. Conéctese a la instancia administrada en SSMS.

  2. Expanda Bases de datos en Explorador de objetos y, a continuación, expanda Bases de datos del sistema.

  3. Haga clic con el botón derecho en tempdb y seleccione Propiedades.

  4. Seleccione Archivos en Seleccionar una página para ver cuántos archivos de tempdb hay.

  5. Para agregar un archivo, elija Agregar y proporcione información sobre el nuevo archivo de datos de la fila.

    Captura de pantalla de Propiedades de la base de datos en SSMS, con el nuevo nombre del archivo de base de datos resaltado.

  6. Para quitar un archivo tempdb, elija el archivo que desea quitar de la lista de archivos de base de datos y, a continuación, seleccione Quitar.

Incremento de crecimiento

El crecimiento de archivos tempdb puede tener un impacto en el rendimiento de las consultas mediante tempdb. Por lo tanto, los incrementos de crecimiento de archivos de datos tempdb demasiado pequeños pueden provocar fragmentación de la extensión, mientras que los incrementos demasiado grandes pueden dar lugar a un crecimiento lento o un error de crecimiento si no hay suficiente espacio para que se produzca el crecimiento. El valor óptimo para los incrementos de crecimiento de archivos tempdb depende de la carga de trabajo.

Los incrementos de crecimiento predeterminados de SQL Managed Instance son de 254 MB para archivos de datos tempdb y 64 MB para los archivos de registro tempdb, pero puede configurar incrementos de crecimiento para adaptarse a la carga de trabajo y ajustar el rendimiento.

Tenga en cuenta lo siguiente.

  • El parámetro de crecimiento de archivos admite las siguientes unidades para int_growth_increment: KB, MB, GB, TB y %.
  • Los incrementos de crecimiento deben ser los mismos para todos los archivos de datos de tempdb que, de lo contrario, el algoritmo round robin que asigna páginas podría verse afectado.

Puede usar tanto SQL Server Management Studio (SSMS) como Transact-SQL (T-SQL) para cambiar el incremento de crecimiento de los archivos tempdb.

Puede usar SQL Server Management Studio (SSMS) para modificar el incremento de crecimiento de archivos tempdb. Para ello, siga estos pasos:

  1. Conéctese a la instancia administrada en SSMS.

  2. Expanda Bases de datos en Explorador de objetos y, a continuación, expanda Bases de datos del sistema.

  3. Haga clic con el botón derecho en tempdb y seleccione Propiedades.

  4. Seleccione Archivos en Seleccionar una página para ver cuántos archivos tempdb hay.

  5. Elija los puntos suspensivos (...) junto a un archivo de datos para abrir la ventana de diálogo Cambiar propiedades de crecimiento automático.

  6. Active la casilla situada junto a Habilitar crecimiento automático y modifique la configuración de crecimiento automático especificando los valores de crecimiento del archivo, en porcentaje o megabytes.

    Captura de pantalla de Cambiar crecimiento automático para tempdev en SSMS, con el nuevo nombre del archivo de base de datos resaltado.

  7. Seleccione Aceptar para guardar la configuración.

Tamaño máximo

El tamaño tempdb es el tamaño total de la suma de todos los archivos tempdb. El tamaño del archivo tempdb es un espacio asignado (a cero) para ese archivo tempdb. El tamaño inicial del archivo para todos los archivos tempdb es de 16 MB, que es el tamaño de todos los archivos tempdb cuando se reinicia la instancia o se conmuta por error. Una vez que el espacio usado de un archivo de datos tempdb alcanza el tamaño del archivo, todos los archivos de datos tempdb crecen automáticamente por sus incrementos de crecimiento configurados.

El espacio usado tempdb es el espacio total de la usma de todos los archivos tempdb. El espacio utilizado por el archivo tempdb es igual a la parte de ese tamaño de archivo tempdb que está ocupado con información distinta de cero. La suma del espacio usado tempdb y el espacio libre tempdb es igual al tamaño de tempdb.

Puede usar T-SQL para determinar el espacio disponible y usado actual para los archivos tempdb.

Para obtener el espacio usado, el espacio libre y el tamaño de los archivos de datos tempdb, ejecute este comando:

USE tempdb
SELECT SUM((allocated_extent_page_count)*1.0/128) AS TempDB_used_data_space_inMB, 
	SUM((unallocated_extent_page_count)*1.0/128) AS TempDB_free_data_space_inMB, 
	SUM(total_page_count*1.0/128) AS TempDB_data_size_inMB 
FROM sys.dm_db_file_space_usage

La siguiente captura de pantalla le muestra un ejemplo del resultado:

Captura de pantalla del resultado de la consulta en SSMS que muestra el uso y el espacio libre en el archivo de datos tempdb.

Para obtener el espacio usado, el espacio libre y el tamaño de los archivos de registro tempdb, ejecute este comando:

USE tempdb
SELECT used_log_space_in_bytes*1.0/1024/1024 AS TempDB_used_log_space_inMB,
     (total_log_size_in_bytes- used_log_space_in_bytes)*1.0/1024/1024 AS TempDB_free_log_space_inMB,
     total_log_size_in_bytes*1.0/1024/1024 AS TempDB_log_size_inMB
FROM sys.dm_db_log_space_usage

La siguiente captura de pantalla le muestra un ejemplo del resultado:

Captura de pantalla del resultado de la consulta en SSMS que muestra el uso y el espacio libre en el archivo de registro tempdb.

El tamaño máximo de tempdb es el límite después del cual tempdb no puede crecer más.

El tamaño máximo de tempdb en SQL Managed Instance tiene las siguientes limitaciones:

  • En el nivel de servicio De uso general, el tamaño máximo de un tempdb se limita a 24 GB/núcleo virtual (96-1920 GB) y el archivo de registro es de 120 GB.
  • En el nivel de servicio Crítico para la empresa, tempdb compite con otras bases de datos para los recursos, por lo que el almacenamiento reservado se comparte entre tempdb y otras bases de datos. El tamaño máximo del archivo de registro tempdb es de 2 TB.

Los archivos tempdb crecen hasta que alcanzan el límite máximo permitido por el nivel de servicio o por el tamaño de archivo máximo tempdb configurado manualmente.

Puede usar tanto SQL Server Management Studio (SSMS) como Transact-SQL (T-SQL) para cambiar el tamaño máximo de los archivos tempdb.

Para determinar el tamaño máximo actual de tempdb en SSMS, siga estos pasos:

  1. Conéctese a la instancia administrada en SSMS.
  2. Expanda Bases de datos en Explorador de objetos y, a continuación, expanda Bases de datos del sistema.
  3. Haga clic con el botón derecho en tempdb y seleccione Propiedades.
  4. En la Página general, compruebe el valor Tamaño en Base de datos para determinar el tamaño máximo de tempdb. Un valor de -1 indica que el tamaño máximo de tempdb es ilimitado.

Captura de pantalla de las propiedades de una base de datos de tempdb ue muestran el tamaño máximo para tempdb en SSMS.

Para cambiar el tamaño máximo actual de tempdb en SSMS, siga estos pasos:

  1. Conéctese a la instancia administrada en SSMS.
  2. Expanda Bases de datos en Explorador de objetos y, a continuación, expanda Bases de datos del sistema.
  3. Haga clic con el botón derecho en tempdb y seleccione Propiedades.
  4. Seleccione Archivos en Seleccionar una página para ver cuántos archivos tempdb hay.
  5. Elija los puntos suspensivos (...) junto a un archivo de datos para abrir la ventana de diálogo Cambiar propiedades de crecimiento automático.
  6. Modifique la configuración del tamaño máximo de tempdb cambiando los valores en Tamaño máximo de archivo.
  7. Seleccione Aceptar para guardar la configuración.

Captura de pantalla del cuadro del cambio del diálogo del crecimiento automático en SSMS, con el tamaño de archivo máximo resaltado.

límites de tempdb

En la tabla siguiente se definen los límites de varias opciones de configuración de tempdb:

Opción de configuración Valores
Nombres lógicos de archivos tempdb 16 caracteres como máximo
Número de archivos tempdb 128 archivos como máximo
Número predeterminado de archivos tempdb 13 (1 archivo de registro + 12 archivos de datos)
Tamaño inicial del archivo de datos tempdb 16 MB
Incremento de crecimiento predeterminado de los archivos de datos tempdb 256 MB
Tamaño inicial del archivo de registro tempdb 16 MB
Incremento de crecimiento predeterminado de los archivos de registro tempdb 64 MB
Tamaño máximo inicial de tempdb -1 (ilimitado)
Tamaño máximo de tempdb Hasta el tamaño de almacenamiento

Pasos siguientes