Compartilhar via


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çãoObservaçã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;