sys.dm_db_file_space_usage (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Devuelve información de uso del espacio para cada archivo de datos de la base de datos.
Nota:
Para llamar a esto desde Azure Synapse Analytics o Analytics Platform System (PDW), use el nombre sys.dm_pdw_nodes_db_file_space_usage
. El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
database_id |
smallint | Id. de la base de datos. En Azure SQL Database, los valores son únicos dentro de una base de datos única o un grupo elástico, pero no dentro de un servidor lógico. |
file_id |
smallint | Identificador de archivo.file_id se asigna a file_id en sys.dm_io_virtual_file_stats y a fileid en sys.sysfiles. |
filegroup_id |
smallint | Se aplica a: SQL Server 2012 (11.x) y versiones posteriores. Identificador de grupo de archivos |
total_page_count |
bigint | Se aplica a: SQL Server 2012 (11.x) y versiones posteriores. Número total de páginas en el archivo de datos. |
allocated_extent_page_count |
bigint | Se aplica a: SQL Server 2012 (11.x) y versiones posteriores. Número total de páginas en las extensiones asignadas en el archivo de datos. |
unallocated_extent_page_count |
bigint | Número total de páginas en las extensiones sin asignar del archivo de datos. No se incluyen páginas sin usar en extensiones asignadas. |
version_store_reserved_page_count |
bigint | Número total de páginas en las extensiones uniformes asignadas para el almacén de versiones. Las páginas de almacén de la versión nunca se asignan desde extensiones mixtas. Las páginas de IAM no se incluyen, ya que siempre se asignan desde extensiones mixtas. Se incluyen las páginas PFS si están asignadas desde una extensión uniforme. Para obtener más información, consulte sys.dm_tran_version_store (Transact-SQL). |
user_object_reserved_page_count |
bigint | Número total de páginas asignadas desde extensiones uniformes para objetos de usuario en la base de datos. En el recuento se incluyen las páginas no utilizadas de una extensión asignada. Las páginas de IAM no se incluyen, ya que siempre se asignan desde extensiones mixtas. Se incluyen las páginas PFS si están asignadas desde una extensión uniforme. Puede usar la total_pages columna de la vista de catálogo de sys.allocation_units para devolver el recuento de páginas reservadas de cada unidad de asignación del objeto de usuario. Sin embargo, la total_pages columna incluye páginas de IAM. |
internal_object_reserved_page_count |
bigint | Número total de páginas en extensiones uniformes asignadas para objetos internos en el archivo. En el recuento se incluyen las páginas no utilizadas de una extensión asignada. Las páginas de IAM no se incluyen, ya que siempre se asignan desde extensiones mixtas. Se incluyen las páginas PFS si están asignadas desde una extensión uniforme. No existe ninguna vista de catálogo ni objeto de administración dinámica que devuelva el recuento de páginas de cada objeto interno. |
mixed_extent_page_count |
bigint | Número total de páginas asignadas y no asignadas en extensiones mixtas asignadas en el archivo. Las extensiones mixtas contienen páginas asignadas a diferentes objetos. Este recuento no incluye todas las páginas IAM del archivo. |
modified_extent_page_count |
bigint | Se aplica a: SQL Server 2016 (13.x) SP2 y versiones posteriores. Número total de páginas modificadas en extensiones asignadas del archivo desde la última copia de seguridad completa de la base de datos. El recuento de páginas modificada se puede usar para realizar un seguimiento del número de cambios diferenciales en la base de datos desde la última copia de seguridad completa, para decidir si se necesita una copia de seguridad diferencial. |
pdw_node_id |
int | Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW) Identificador del nodo en el que se encuentra esta distribución. |
distribution_id |
int | Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW) Identificador numérico único asociado a la distribución. |
Comentarios
Los recuentos de páginas siempre son en el nivel de extensión. Por lo tanto, los valores de recuento de páginas siempre son un múltiplo de ocho. Las extensiones que contienen páginas de asignación del Mapa de asignación global (GAM) y del Mapa de asignación global compartido (SGAM) se asignan a extensiones uniformes. No se incluyen en los recuentos de páginas descritos anteriormente. Para obtener más información acerca de las páginas y las extensiones, consulte Guía de arquitectura de páginas y extensiones.
El contenido del almacén de versiones actual está en sys.dm_tran_version_store. El seguimiento de las páginas del almacén de la versión se realiza en el nivel de archivo en vez de en el nivel de sesión y tarea porque son recursos globales. Una sesión puede generar versiones, pero las versiones no se pueden quitar cuando finaliza la sesión. Debe tenerse en cuenta una limpieza del almacén de versiones cuando se tengan que ejecutar transacciones prolongadas que necesiten acceso a la versión determinada. La transacción de ejecución más larga relacionada con la limpieza del almacén de versiones se puede detectar viendo la columna elapsed_time_seconds en sys.dm_tran_active_snapshot_database_transactions.
Los cambios frecuentes en la mixed_extent_page_count
columna pueden indicar un uso intensivo de páginas de SGAM. Cuando ocurre esto, puede ver muchas esperas de PAGELATCH_UP en las que el recurso esperado es una página SGAM. Para obtener más información, vea sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL) y sys.dm_os_latch_stats (Transact-SQL) .
Objetos de usuario
Los objetos siguientes se incluyen en los contadores de páginas de objetos de usuario:
- Índices y tablas definidos por el usuario
- Índices y tablas del sistema
- Índices y tablas temporales globales
- Índices y tablas temporales locales
- Variables de tabla
- Tablas devueltas en las funciones con valores de tabla.
Objetos internos
Los objetos internos solo están en tempdb
. Los objetos siguientes se incluyen en los contadores de páginas de objetos internos:
- Tablas de trabajo para operaciones de cola o cursor y almacenamiento de objetos grandes (LOB) temporales
- Archivos de trabajo para operaciones como la combinación hash
- Ordenaciones
Cardinalidades de relación
De | En | Relación |
---|---|---|
sys.dm_db_file_space_usage.database_id , file_id |
sys.dm_io_virtual_file_stats.database_id , file_id |
Uno a uno |
Permisos
En SQL Server 2019 (15.x) y versiones anteriores, y SQL Instancia administrada, requiere VIEW SERVER STATE
permiso.
En SQL Server 2022 (16.x) y versiones posteriores, requiere el permiso VIEW SERVER PERFORMANCE STATE en el servidor.
En los objetivos de servicio Básico, S0 y S1 de SQL Database y para bases de datos en grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador Microsoft Entra o la pertenencia al ##MS_ServerStateReader##
rol del servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE STATE
en la base de datos o la pertenencia en el rol del servidor ##MS_ServerStateReader##
.
Ejemplos
Determinar la cantidad de espacio libre en tempdb
La consulta siguiente devuelve el número total de páginas libres y el espacio disponible total en megabytes (MB) disponibles en todos los archivos de datos de tempdb
.
USE tempdb;
GO
SELECT
SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count) * 1.0 / 128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;
Determinar la cantidad de espacio utilizado por los objetos de usuario
La consulta siguiente devuelve el número total de páginas usadas por los objetos de usuario y el espacio total utilizado por los objetos de usuario en tempdb
.
USE tempdb;
GO
SELECT
SUM(user_object_reserved_page_count) AS [user object pages used],
(SUM(user_object_reserved_page_count) * 1.0 / 128) AS [user object space in MB]
FROM sys.dm_db_file_space_usage;