sys.dm_os_threads (Transact-SQL)
Retorna uma lista de todos os threads do Sistema Operacional SQL Server executados sob o processo do SQL Server.
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
thread_address |
varbinary(8) |
Endereço de memória (Chave Primária) do thread. |
started_by_sqlservr |
bit |
Indica o iniciador de thread. 1 = O SQL Server iniciou o thread. 0 = Outro componente iniciou o thread, como um procedimento armazenado estendido do SQL Server. |
os_thread_id |
int |
ID do thread que é atribuído pelo sistema operacional. |
status |
int |
Sinalizador de estado interno. |
instruction_address |
varbinary(8) |
Endereço da instrução que está sendo executada atualmente. |
creation_time |
datetime |
Hora em que esse thread foi criado. |
kernel_time |
bigint |
Tempo de kernel usado por esse thread. |
usermode_time |
bigint |
Tempo do usuário usado por esse thread. |
stack_base_address |
varbinary(8) |
Endereço de memória do endereço de pilha mais alto para esse thread. |
stack_end_address |
varbinary(8) |
Endereço de memória do endereço de pilha mais baixo desse thread. |
stack_bytes_committed |
int |
Número de bytes confirmados na pilha. |
stack_bytes_used |
int |
Número de bytes ativamente usados no thread. |
affinity |
bigint |
Máscara de CPU na qual esse thread está sendo executado. Isso depende do valor configurado pela instrução ALTER SERVER CONFIGURATION SET PROCESS AFFINITY. Pode ser diferente do agendador no caso de afinidade flexível. |
Priority |
int |
Valor de prioridade desse thread. |
Locale |
int |
LCID de localidade em cache para o thread. |
Token |
varbinary(8) |
Identificador de token de representação em cache para o thread. |
is_impersonating |
int |
Indica se esse thread está usando a representação do Win32. 1 = O thread está usando credenciais de segurança que são diferentes do padrão do processo. Isso indica que o thread está representando uma entidade diferente daquela que criou o processo. |
is_waiting_on_loader_lock |
int |
Status do sistema operacional indicando se o thread está aguardando o bloqueio de carregador. |
fiber_data |
varbinary(8) |
Fibra do Win32 atual sendo executada no thread. Só é aplicável quando o SQL Server é configurado para lightweight pooling. |
thread_handle |
varbinary(8) |
Somente para uso interno. |
event_handle |
varbinary(8) |
Somente para uso interno. |
scheduler_address |
varbinary(8) |
Endereço de memória do agendador associado a esse thread. Para obter mais informações, consulte sys.dm_os_schedulers (Transact-SQL). |
worker_address |
varbinary(8) |
Endereço de memória do trabalhador ligado a esse thread. Para obter mais informações, consulte sys.dm_os_workers (Transact-SQL). |
fiber_context_address |
varbinary(8) |
Endereço de contexto de fibra interno. Só é aplicável quando o SQL Server é configurado para lightweight pooling. |
self_address |
varbinary(8) |
Ponteiro de consistência interno. |
processor_group |
smallint |
Armazena a ID do grupo de processador. |
Permissões
Requer permissão VIEW SERVER STATE no servidor.
Exemplos
Na inicialização, o SQL Server inicia threads e associa os trabalhadores a esses threads. Entretanto, componentes externos, como, por exemplo, um procedimento armazenado estendido, podem iniciar threads no processo do SQL Server. O SQL Server não tem controle desses threads. O sys.dm_os_threads pode fornecer informações sobre threads não autorizados que consomem recursos no processo do SQL Server.
A consulta a seguir é usada para localizar trabalhadores, e o tempo usado para execução, que estejam executando threads não iniciados pelo SQL Server.
Observação |
---|
Visando a concisão, a consulta a seguir usa um asterisco (*) na instrução SELECT. Deve-se evitar o uso do asterisco (*), especialmente em exibições do catálogo, exibições de administração dinâmicas e funções com valor de tabela do sistema. Atualizações e versões futuras do Microsoft SQL Server poderão adicionar colunas e alterar a ordem das colunas nessas exibições e funções. Essas mudanças poderão interromper aplicativos que esperam uma ordem e um número de colunas específicos. |
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;