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 = 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 deve estar sendo executado. Isso depende do valor da opção de configuração de afinidade máscarasp_configure. |
locale |
int |
LCID de localidade em cache para o thread. |
priority |
int |
Valor de prioridade desse 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. |
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 um procedimento armazenado estendido, podem iniciar threads no processo do SQL Server. O SQL Server não possui nenhum controle sobre esses threads. 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 MicrosoftSQL 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;