A tabela
master.dbo.sysprocesses no Microsoft SQL Server 2000 e o SQL Server 2005 é uma tabela de sistema que contém informações sobre o processo de servidor ativo identificações (SPIDs) que estão em execução no SQL Server.
Se você estiver usando o SQL Server 2005, você também pode acessar esta tabela usando a exibição de compatibilidade
sys.sysprocesses .
A coluna
waittype , a coluna
lastwaittype , a coluna
waittime e a coluna
waitresource na tabela de sistema
master.dbo.sysprocesses fornecem informações sobre os recursos que os processos estão aguardando.
Este artigo lista os valores possíveis lastwaittype, os valores associados waittype e uma breve descrição de seus significados.
A tabela de sistema
master.dbo.sysprocesses armazenado no banco de dados
mestre da sua instância do SQL Server contém as seguintes colunas ajudam o administrador do sistema monitorar os processos para cenários de contenção de recursos e problemas de bloqueio:
- WaitType : O campo waittype é uma coluna binária interna reservada. O valor no campo waittype indica o tipo de recurso que está aguardando a conexão.
- lastwaittype : O campo lastwaittype é uma representação seqüência de caracteres do campo waittype . O campo lastwaittype indica o último waittype ou o waittype atual de um SPID. Se o valor da coluna waittype para um SPID for 0 x 0000, o SPID não está aguardando no momento em qualquer recurso. Nesse caso, a coluna lastwaittype indica o último waittype que experimentou o SPID. No entanto, se o valor da coluna waittype para um SPID for diferente de zero, os valores na coluna lastwaittype e a coluna waittype para o SPID são iguais. Esses valores indicam o estado de espera atual para o SPID.
Observação Waittype UMSTHREAD é uma exceção a essa regra. Consulte a descrição de UMSTHREAD na seção "Outras waittypes" para obter detalhes adicionais. - waittime : A coluna waittime fornece o número de milissegundos que o SPID tem sido aguardando com waittype atual.
- waitresource : A coluna waitresource oferece mais informações detalhadas sobre o recurso específico que está aguardando o SPID.
As seções posteriores deste artigo descrevem algumas das waittypes que tenham suporte do SQL Server e que freqüentemente são registrados na tabela de sistema
master.dbo.sysprocesses .
LOCK waittypes
A tabela a seguir lista o waittypes LOCK na tabela de sistema
master.dbo.sysprocesses no SQL Server 2000 e no SQL Server 2005.
Recolher esta tabelaExpandir esta tabela
| Lastwaittype | Waittype | Descrição |
|---|
| LCK_M_SCH_S | 0 x 01 | Estabilidade de esquema |
| LCK_M_SCH_M | 0 x 02 | Modificação do esquema |
| LCK_M_S | 0 x 03 | Compartilhamento |
| LCK_M_U | 0x04 | Atualização |
| LCK_M_X | 0 x 05 | Exclusivo |
| LCK_M_IS | 0 x 06 | Tentativa de compartilhamento |
| LCK_M_IU | 0 x 07 | Tentativa de atualização |
| LCK_M_IX | 0 x 08 | Tentativa de exclusivo |
| LCK_M_SIU | 0x09 | Tentativa de atualizar compartilhado |
| LCK_M_SIX | 0x0A | Compartilhamento-tentativa-exclusivo |
| LCK_M_UIX | 0x0B | Exclusivo de tentativa de atualização |
| LCK_M_BU | 0x0C | Atualização em massa |
| LCK_M_RS_S | 0x0D | Compartilhamento de compartilhamento de intervalo |
| LCK_M_RS_U | 0x0E | Atualização de compartilhamento de intervalo |
| LCK_M_RI_NL | 0x0F | Intervalo-inserir-NULL |
| LCK_M_RI_S | 0 x 10 | Intervalo inserir compartilhados |
| LCK_M_RI_U | 0 x 11 | Intervalo-inserir-atualizar |
| LCK_M_RI_X | 0 x 12 | Intervalo-inserir-exclusivo |
| LCK_M_RX_S | 0 x 13 | Intervalo exclusivo compartilhados |
| LCK_M_RX_U | 0 x 14 | Atualização do intervalo-exclusivo |
| LCK_M_RX_X | 0x15 | Intervalo-exclusivo-exclusivo |
Para obter mais informações sobre os tipos LOCK que têm suporte no SQL Server 2000 e o SQL Server 2005, consulte os seguintes tópicos nos manuais online do SQL Server:
- Noções básicas sobre o bloqueio no SQL Server
- Bloquear compatibilidade
Além disso, se um SPID está aguardando waittypes LOCK e o valor correspondente na coluna
waittime que está conectado na tabela de sistema
master.dbo.sysprocesses é muito alto, você deve solucionar os problemas de bloqueio para a instância do SQL Server.
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
224453
(http://support.microsoft.com/kb/224453/
)
Noções básicas sobre e resolver o SQL Server 7.0 ou problemas de bloqueio de 2000
Registrador de divisão waittypes
Um registrador de divisão é um objeto de sincronização leve a curto prazo. A lista a seguir descreve os diferentes tipos de registradores de divisão:
- registrador de divisão não-buffer (não-BUF) : registradores de divisão os buffer não fornecer serviços de sincronização para estruturas de dados na memória ou fornecer proteção de reentrada para linhas de código sensíveis à simultaneidade. Esses registradores de divisão podem ser usados para uma variedade de coisas, mas não são usados para sincronizar o acesso a páginas de buffer.
- registrador de divisão BUF (buffer) : os registradores de divisão de buffer são usados para sincronizar o acesso ao BUF estruturas e suas páginas de banco de dados associado. O buffer típica engatador ocorre durante operações que exigem serialização em uma página de buffer, (durante uma divisão da página ou durante a alocação de uma nova página, por exemplo). Esses registradores de divisão não são mantidos para a duração de uma transação. Esses são indicados na tabela master.dbo.sysprocesses por waittypes PAGELATCH.
Para obter mais informações sobre uma das possíveis causas de BUF contenção de registrador de divisão, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft: 328551
(http://support.microsoft.com/kb/328551/
)
CORRECÇÃO: Aprimoramentos de simultaneidade para o banco de dados tempdb
- registrador de divisão de E/S : registradores de divisão de E/S O são um subconjunto de registradores de divisão BUF que são usadas quando o buffer e página de dados associada ou a página de índice está no meio de uma E/S operação. PAGEIOLATCH waittypes são usados para transferências de disco para memória e um waittime significativo para esses waittypes sugere problemas de subsistema de E/s de disco.
A tabela a seguir lista o waittypes trava diferentes que você pode observar na tabela de sistema
master.dbo.sysprocesses no SQL Server 2000 e no SQL Server 2005.
Recolher esta tabelaExpandir esta tabela
| Lastwaittype | Waittype | Descrição |
|---|
| LATCH_NL | 0x400 | Registrador de divisão nulo |
| LATCH_KP | 0 x 401 | Manter o registrador de divisão |
| LATCH_SH | 0x402 | Registrador de divisão compartilhada |
| LATCH_UP | 0x403 | Registrador de divisão de atualização |
| LATCH_EX | 0x404 | Registrador de divisão exclusivo |
| LATCH_DT | 0x405 | Destruir registrador de divisão |
| PAGELATCH_NL | 0x410 | Buffer nulo trava de página |
| PAGELATCH_KP | 0x411 | Manter trava de página de buffer |
| PAGELATCH_SH | 0x412 | Compartilhado trava de página de buffer |
| PAGELATCH_UP | 0x413 | Trava de página do buffer de atualização |
| PAGELATCH_EX | 0x414 | Buffer exclusivo trava de página |
| PAGELATCH_DT | 0x415 | Destruir trava de página de buffer |
| PAGEIOLATCH_NL | 0x420 | Trava de página E/s buffer nulo |
| PAGEIOLATCH_KP | 0x421 | Manter trava de página E/s de buffer |
| PAGEIOLATCH_SH | 0x422 | Compartilhado trava de página E/s de buffer |
| PAGEIOLATCH_UP | 0x423 | Trava de página E/s de buffer de atualização |
| PAGEIOLATCH_EX | 0x424 | Buffer exclusivo trava de E/s de página |
| PAGEIOLATCH_DT | 0x425 | Destruir trava de página E/s de buffer |
Iniciando com o SQL Server 2000 SP4, a coluna waitresource para registradores dos mais comuns não Buf divisão, o Latch_XX registradores de divisão, é preenchido usando os valores na tabela a seguir. Não antes de SQL Server 2000 SP4, havia para determinar o motivo que registradores de divisão os buffer não estavam sendo mantidos sem mais diagnóstico invasivo, como um userdump. O waittype ou o waitresource deve ser exibida usando o waittime. O waittime Especifica em milissegundos quanto o segmento tem sido aguardando.
Recolher esta tabelaExpandir esta tabela
| Waitresource | Descrição | solução de problemas |
| FCB FGCB_ALLOC | Esses registradores de divisão Latch_XX são mantidos quando páginas são alocadas de um arquivo, se ele é uma extensão uniforme ou mista. Os registradores de divisão também são mantidos durante operações de alocação, como crescimento e reduzindo um arquivo, renomear ou soltando um arquivo, ou adicionar ou remover um arquivo. | Determine se os arquivos são reduzindo ou crescimento. Iniciando com o SQL Server 2000 SP4, a opção de crescimento automático será registrada no log de erros se leva mais de 30 segundos. O ideal é que a opção de crescimento automático deve ser usada como um backup, e você deve usar capacidade prudente planejamento para evitar a penalidade de tempo de execução de crescimento do arquivo. Você também pode alterar o valor de crescimento automático padrão de 10 % para um tamanho fixo. Não é recomendável que você use o Autoshrink em produção. Os arquivos nesse grupo de arquivos também podem emitir várias solicitações para alocações. Você pode adicionar mais arquivos em que grupo de arquivos. |
| RASTREAMENTO TRACE_CONTROLLER TRACE_IO_SYNC | Esses registradores de divisão Latch_XX são mantidos para fins de sincronização em operações de rastreamento do gerador de perfil. Operações Sychronization incluem iniciando, parando, definindo o status do rastreamento e sincronizando leitores e gravadores. | Identifica qualquer rastreamentos de gerador de perfil que estiverem executando. Tente evitar executar mais de um rastreamento de gerador de perfil ao mesmo tempo. Quando um rastreamento do profiler é iniciado, o rastreamento é registrado no log de eventos do aplicativo. Além disso, você pode usar a seguinte consulta no SQL Query Analyzer para exibir rastreamento ativo. SELECT * FROM ::fn_trace_getinfo(NULL) |
| PARALLEL_PAGE_SUPPLIER | Esses registradores de divisão Latch_XX são usados para sincronizar a recuperação de páginas para uma consulta paralela. Essa trava indica que a consulta está sendo executado em paralelo e pode ser típica. | Ajuste a consulta se a coluna waittime é um valor grande e a consulta está executando mal. |
| IDES | O waitresource de registrador de divisão IDES é usado quando a página PFS é digitalizada para localizar espaço livre e quando a página PFS é atualizada para refletir alocações e deallocations de páginas. Essa trava também é usada quando páginas únicas são alocadas para um objeto existente. | Determina se você tem um índice de cluster no objeto em questão. |
Outros waittypes
A tabela a seguir lista outros waittypes que você pode observar na tabela de sistema
master.dbo.sysprocesses no SQL Server 2000 e no SQL Server 2005.
Recolher esta tabelaExpandir esta tabela
| Lastwaittype | Waittype | Descrição |
|---|
| ESTADO DE SUSPENSÃO | 0 x 20 | Este waittype indica que o SPID está esperando por um período de tempo especificado e é um estado comum para os threads de plano de fundo que processam o lazywrites, os pontos de verificação ou os eventos de rastreamento do profiler do lado do servidor. |
| IO_COMPLETION | 0 x 21 | Este waittype indica que o SPID está aguardando as solicitações de E/s concluir. Quando você notar esse waittype para um SPID na tabela de sistema sysprocesses , você deve identificar os afunilamentos de disco usando os contadores do monitor de desempenho, rastreamento de gerador de perfil, a função de com valor de tabela de sistema fn_virtualfilestats e a opção SHOWPLAN para analisar os planos de consulta que correspondem ao SPID. Você pode reduzir este waittype adicionando largura de banda de E/s adicional ou balanceamento de E/s em outras unidades. Você também pode reduzir E/s usando a indexação, procure planos de consulta incorreto e procure a pressão de memória. |
| ASYNC_IO_COMPLETION | 0 x 22 | Este waittype indica que o SPID está aguardando as solicitações de E/s assíncronas concluir. Como waittype IO_COMPLETION, este waittype também indica uma E/s afunilamento. Você pode ver este waittype para os SPIDs durante operações de O vinculadas a execução demorada, tais como o crescimento automático de banco de dados, ALTER DATABASE, CREATE DATABASE ou BACKUP. Este waittype também pode indicar gargalos de disco. |
| RESOURCE_SEMAPHORE | 0 x 40 | Este waittype indica que o SPID está aguardando um recurso. Aqui, os SPIDs geralmente esperar para adquirir a memória para a classificação ou a operação hash durante a execução da consulta. Este waittype também pode indicar que a memória pressão existe na parte visível do pool de buffer. |
| DTC | 0x41 | Este waittype indica que o SPID está aguardando o coordenador de transações distribuídas da Microsoft serviço (MS DTC). |
| OLEDB | 0 x 42 | Este waittype indica que um SPID fez uma função chamada para um provedor OLE DB e está aguardando para a função retornar os dados necessários. Este waittype também pode indicar que o SPID está aguardando chamadas de procedimento remoto ou servidor vinculado consultas retornar os dados necessários. O SPID pode também ser aguardando comandos BULK INSERT ou consultas de pesquisa completa retornar os dados necessários.
Waittype OLEDB é usado para indicar vários diferentes estados, incluindo de espera: vinculado consultas de servidor, consultas de pesquisa de texto completo, comandos BULK INSERT, rastreamentos do lado do cliente do Profiler, Materialização de tabelas virtuais como a tabela sysprocesses, leitor de log e DBCC CHECKDB. |
| RESOURCE_QUEUE | 0x44 | Isso é comum ? ? estado ocioso para threads de segundo plano no SQL Server. |
| ASYNC_DISKPOOL_LOCK | 0x45 | Você pode perceber esse waittype durante as operações O-vinculadas de execução demorada, como criar, expandindo ou soltando um arquivo de banco de dados. |
| UMSTHREAD | 0x46 | Este waittype indica que um lote foi recebido de um aplicativo cliente, mas que não há nenhum threads de trabalho estão disponíveis para atender à solicitação. Se você vir consistentemente 0x0046 waittypes para vários SPIDs, há um afunilamento significativo em outro lugar no sistema que está usando todos os threads trabalho disponíveis. (Observe que a coluna waittime é sempre 0 para waittype UMSTHREAD e a coluna lastwaittype erroneamente pode mostrar o nome de um waittype diferente em vez de UMSTHREAD." |
| WRITELOG | 0 x 81 | Este waittype indica que o SPID está aguardando uma solicitação de E/s de log de transação concluir. Este waittype também pode indicar um afunilamento de disco possíveis. |
PSS_CHILD TROCA CXPACKET | 0x101 0x200 0x208 | Esses waittypes são todos os envolvidos na execução de consulta paralela. Esses waittypes indicam que o SPID está aguardando um processo paralelo para concluir ou iniciar. |
| PAGESUPP | 0x209 | Este waittype controla o tempo de espera é incorrido devido a serialização necessária na distribuição linhas para chamadores de várias em uma verificação paralela. |
| CURSOR | 0x20C | Este waittype indica que o SPID está participando na sincronização de thread enquanto ele usa cursores assíncronas. O sp_configure ? cursorthreshold ? configuração pode determinar quando um cursor é criado assincronamente. |
| DBTABLE | 0x202 | Este waittype indica que um thread está aguardando para executar um ponto de verificação e outro thread já está ponto de verificação do banco de dados. |
| EC | 0x203 | Este waittype indica que o SPID está aguardando o acesso ao contexto de execução. |
| TEMPOBJ | 0x204 | Este waittype indica que o SPID está aguardando para descartar um objeto temporário que ainda está sendo usado. |
| XACTLOCKINFO | 0x205 | Este waittype indica que o SPID está aguardando para efetuar manutenção em sua lista de bloqueio. |
| LOGMGR | 0x206 | Este waittype é usado quando o SPID tenta desligar um banco de dados e aguarda até que as solicitações de E/s de log de transação pendente concluir. |
| CMEMTHREAD | 0x207 | Este waittype indica que o SPID está aguardando o acesso a um objeto memória thread-safe. A serialização certifica que enquanto os usuários são alocar ou liberar a memória do objeto memória, outros SPIDs que está tentando executar a mesma tarefa precise aguardar e waittype CMEMTHREAD é definida quando os SPIDs estão aguardando.
Você pode perceber esse waittype em muitos cenários. No entanto, esse waittype com mais freqüência é registrado quando os planos de consulta ad hoc forem sendo inseridos rapidamente em um cache de procedimento de muitos diferentes conexões para a instância do SQL Server. Você pode endereçar este afunilamento limitando os dados que devem ser inseridos ou removidos do cache de procedimento, como explicitamente parametrização das consultas para que as consultas podem ser reutilizadas ou usar procedimentos armazenados onde for apropriado. |
| DESLIGAMENTO | 0x20A | Este waittype indica que um comando SHUTDOWN foi emitido por SPID, e o SPID está aguardando consultas ativas concluir. |
| WAITFOR | 0x20B | Este waittype indica que o SPID está suspenso devido a um WAITFOR DELAY Transact-SQL instrução. |
| NETWORKIO | 0 x 800 | Este waittype indica que o SPID está aguardando o aplicativo cliente buscar os dados antes do SPID pode enviar mais resultados para o aplicativo cliente. |
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
244455
(http://support.microsoft.com/kb/244455/
)
Definição de sysprocesses waittype e lastwaittype campos para o SQL Server 7.0
Para obter informações adicionais sobre a tabela de sistema
master.dbo.sysprocesses no SQL Server 2000, visite o seguinte site:
Para obter mais informações sobre registradores de divisão no SQL Server 2000, visite o seguinte site:
ID do artigo: 822101 - Última revisão: quinta-feira, 17 de maio de 2007 - Revisão: 8.4
A informação contida neste artigo aplica-se a:
- Microsoft SQL Server 2000 Standard Edition
- Microsoft SQL Server 2005 Standard Edition
- Microsoft SQL Server 2005 Express Edition
- Microsoft SQL Server 2005 Developer Edition
- Microsoft SQL Server 2005 Enterprise Edition
- Microsoft SQL Server 2005 Workgroup Edition
| kbmt kbsystemdata kbfield kbdatabase kbinfo KB822101 KbMtpt |
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo:
822101
(http://support.microsoft.com/kb/822101/en-us/
)