sys.dm_os_threads (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 psotop 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)