sys.dm_os_threads (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)
Devuelve una lista de todos los subprocesos del sistema operativo de SQL Server que se ejecutan en el proceso de SQL Server.
Nota:
Para llamarlo desde Azure Synapse Analytics o Analytics Platform System (PDW), use el nombre sys.dm_pdw_nodes_os_threads. El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
thread_address | varbinary(8) | Dirección de memoria (clave principal) del subproceso. |
started_by_sqlservr | bit | Indica el iniciador del subproceso. 1 = SQL Server inició el subproceso. 0 = Otro componente inició el subproceso, como un procedimiento almacenado extendido desde SQL Server. |
os_thread_id | int | Identificador del subproceso asignado por el sistema operativo. |
status | int | Marca del estado interno |
instruction_address | varbinary(8) | Dirección de la instrucción que se está ejecutando en ese momento. |
creation_time | datetime | Hora a la que se creó este subproceso. |
kernel_time | bigint | Tiempo del kernel consumido por este subproceso. |
usermode_time | bigint | Tiempo de usuario consumido por este subproceso. |
stack_base_address | varbinary(8) | Dirección de memoria de la dirección de pila más alta de este subproceso. |
stack_end_address | varbinary(8) | Dirección de memoria de la dirección de pila más baja de este subproceso. |
stack_bytes_committed | int | Número de bytes confirmados en la pila. |
stack_bytes_used | int | Número de bytes que se usan de forma activa en el subproceso. |
afinidad | bigint | Máscara de CPU en la que se ejecuta este subproceso. Esto depende del valor configurado por la instrucción ALTER SERVER CONFIGURATION SET PROCESS AFFINITY . Puede ser distinta del programador en caso de afinidad de software. |
Prioridad | int | Valor de prioridad de este subproceso. |
Configuración regional | int | LCID de la configuración regional en memoria caché del subproceso. |
Token | varbinary(8) | Identificador del token de suplantación en caché del subproceso. |
is_impersonating | int | Indica si este subproceso usa suplantación de Win32. 1 = El subproceso usa credenciales de seguridad diferentes de las predeterminadas del proceso. Indica que el subproceso suplanta una entidad distinta de la que creó el proceso. |
is_waiting_on_loader_lock | int | Estado del sistema operativo que indica si el subproceso espera en el bloqueo de carga. |
fiber_data | varbinary(8) | Fibra actual de Win32 que se ejecuta en el subproceso. Esto solo es aplicable cuando SQL Server está configurado para la agrupación ligera. |
thread_handle | varbinary(8) | Solo para uso interno. |
event_handle | varbinary(8) | Solo para uso interno. |
scheduler_address | varbinary(8) | Dirección de memoria del programador asociado con este subproceso. Para obtener más información, consulte sys.dm_os_schedulers (Transact-SQL). |
worker_address | varbinary(8) | Dirección de memoria del trabajador enlazado a este subproceso. Para obtener más información, consulte sys.dm_os_workers (Transact-SQL). |
fiber_context_address | varbinary(8) | Dirección de contexto de fibra interna. Esto solo es aplicable cuando SQL Server está configurado para la agrupación ligera. |
self_address | varbinary(8) | Puntero de comprobaciones de coherencia. |
processor_group | smallint | Se aplica a:: SQL Server 2008 R2 (10.50.x) y versiones posteriores. Identificador de grupo de procesadores. |
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. |
Permisos
En SQL Server y SQL Managed Instance, requiere el permiso VIEW SERVER STATE
.
En los objetivos de servicio de SQL Database Basic, S0 y S1, y para las bases de datos de grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador de Microsoft Entra o la pertenencia al rol de ##MS_ServerStateReader##
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##
.
Permisos para SQL Server 2022 y versiones posteriores
Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.
Notas sobre la versión de Linux
Debido a cómo funciona el motor de SQL en Linux, parte de esta información no coincide con los datos de diagnóstico de Linux. Por ejemplo, os_thread_id
no coincide con el resultado de herramientas como ps
otop
procfs (/proc/pid
). Esto se debe a la capa de abstracción de plataforma (SQLPAL), una capa entre los componentes de SQL Server y el sistema operativo.
Ejemplos
Al iniciarse, SQL Server inicia subprocesos y, a continuación, asocia los trabajos a esos subprocesos. Sin embargo, los componentes externos, como un procedimiento almacenado extendido, pueden iniciar subprocesos en el proceso de SQL Server. SQL Server no tiene control sobre estos subprocesos. sys.dm_os_threads puede proporcionar información sobre subprocesos no autorizados que consumen recursos en el proceso de SQL Server.
La consulta siguiente se usa para buscar trabajos, junto con el tiempo que se usa para la ejecución, que ejecutan subprocesos no iniciados por SQL Server.
Nota:
Por concisión, la siguiente consulta utiliza un asterisco (*
) en la instrucción SELECT
. Evite utilizar asteriscos (*), especialmente con vistas de catálogo, vistas de administración dinámica y funciones con valores de tabla del sistema. Las actualizaciones y versiones futuras de Microsoft SQL Server pueden agregar columnas y cambiar el orden de las columnas a estas vistas y funciones. Es posible que estos cambios provoquen errores en las aplicaciones que esperan un determinado orden y número de columnas.
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;
Consulte también
sys.dm_os_workers (Transact-SQL)
Vistas de administración dinámica relacionadas con el sistema operativo de SQL Server (Transact-SQL)