Foram adicionados concorrência nova e agendamento diagnóstico para o SQL Server

Traduções de Artigos Traduções de Artigos
Artigo: 319892 - Ver produtos para os quais este artigo se aplica.
N.º DE BUGS: 102179 (SQLBUG_70)
N.º DE BUGS: 356317 (SQLBUG_80)
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Para permanecer altamente dinâmicos, SQL Server contém vários processos internos para assegurar a estabilidade. Um exemplo é o monitor de bloqueio que pode utilizar para identificar e resolver situações de impasse.

SQL Server 7.0 Service Pack 4 (SP4) e SQL Server 2000 Service Pack 3 (SP3) adicionou melhorado o processo de monitorização da integridade. Melhoramentos de monitorização de integridade ocorreram nas seguintes áreas:
  • Bloquear
  • Problemas de rede
  • Entrada/saída (E/S)
  • Memória
  • CPU
Quando o SQL Server detecta problemas de integridade, uma série de novas mensagens de erro, tal como o seguinte são registados no registo de erro do SQL Server. Para obter detalhes sobre estas condições de mensagem de erro, consulte o "mais informação" secção deste artigo.

SQL Server 7.0

Erro 1223: ID do processo % d: % d não é possível adquirir o bloqueio "% s" no recurso %s porque existe um impasse potencial no programador de %d para o recurso. ID de processo % d: % d contém um bloqueio "% h" neste recurso.

SQL Server 2000

Erro 1229: ID do processo % d: % d possui recursos que estão a bloquear processos no programador % d.
As novas mensagens de erro incluir as seguintes séries.

expandido detecção de bloqueio: 1223, 1229
Programador suspensas detecção: 17881, 17883
Schedulers tudo suspensas detecção: 17882, 17884
aviso Note que um problema relacionado saúde frequentemente é o resultado de uma condição que foi detectado anteriormente. Tem a estudar o registo de erros do SQL Server e os registos de eventos sistema cuidadosamente para determinar a causa real.

Por exemplo, uma mensagem de 17883 erro poderá indicar um problema de programador. No entanto, o registo de erros pode mostrar uma excepção anterior deixou incorrectamente o processo do SQL Server num estado fraca, ou a aplicação pode ter causado uma condição de bloqueio grave.
Nota Microsoft tenta manter todo o conteúdo actualizado com as 17883 condições mais recentes. No entanto, a mensagem de 17883 erro é uma mensagem de detecção do estado de funcionamento que pode ser accionada por muitos motivos. A Microsoft problemas conhecidos com o produto de software do SQL Server não tenha corrigido apenas mas também encontrou o erro 17883 numa variedade de situações em que são não relacionados para o software do SQL Server. Por exemplo, o erro com o consumo da CPU de aplicações externas e falhas de hardware. Tem de determinar a causa da mensagem de 17883 erro se pretender evitar um reoccurrence indesejado do erro.

Mais Informação

Esta secção descreve os melhoramentos de saúde e mensagens de erro associadas que podem ser registadas no registo de erro do SQL Server.

UMS

Para melhor compreender alguns diagnósticos integridade adicional, deve primeiro compreender como o SQL Server utiliza um ficheiro de programa auxiliar ums.dll de agenda de modo de utilizador (UMS).

O SQL Server 7.0 e Microsoft SQL Server 2000 utilizam schedulers lógicos. Estes schedulers ajudam a garantir que SQL Server maximiza o sistema operativo utilização de recursos em relação à base de dados chave acção caminhos. A camada UMS certifica-se de que SQL Server utiliza correctamente Win32 eventos controlem estritamente thread e fibra (ou ambos) agendamento visibilidade ao sistema operativo. Controlando estritamente threads ou fibers podem ser executado, SQL Server pode maximizar utilização da CPU como se relaciona com a base de dados primitivos como bloquear.

Por exemplo, lógica de programação permite bloquear waiters para modo de suspensão (WaitForSingleObject num evento Win32) até o proprietário do bloqueio liberta o bloqueio e sinais (SetEvent) para acordar.

Detecção de bloqueio expandida

O monitor de bloqueio foi expandido para detectar um (thread de trabalho) recursos nível bloqueio cenário. Se um SPID possui que um bloqueio actualmente na fila para o programador, porque todos os threads de trabalho atribuído foram criados e todos os threads de trabalho atribuído um estado de espera un-resolvable, a seguinte mensagem de erro é escrita o registo de erro do SQL Server:

SQL Server 7.0

Erro 1223: ID do processo % d: % d não é possível adquirir o bloqueio "% s" no recurso %s porque existe um impasse potencial no programador de %d para o recurso. Processo ID % d: % d contém um bloqueio "% h" neste recurso.
Descrição do parâmetro:
  1. À espera que o SPID
  2. A aguardar ECID (ID de execução do processo de sub)
  3. Bloquear modo nome
  4. Nome do recurso
  5. ID do programador UMS lógico
  6. Proprietário SPID
  7. Proprietário ECID
  8. Nome do recurso proprietário

SQL Server 2000

Erro 1229: ID do processo % d: % d possui recursos que estão a bloquear processos no programador % d.
Parâmetro Descrição:
  1. Proprietário SPID
  2. Proprietário ECID (ID de execução do processo de sub)
  3. Proprietário de ID do programador UMS lógico

Sinalizadores de rastreio

SQL Server contém um sinalizador de rastreio para desactivar o relato este estado de funcionamento.

Para desactivar o comportamento de relatório, utilize um dos seguintes métodos:
  • Estabelecer um parâmetro de arranque (-T ### )
  • Utilizar traceon DBCC ( ### )
SQL Server 7.0 :-T1216

SQL Server 2000 :-T1261

Nota Este não é um erro tipográficos. -T1216 no SQL Server 2000 já é utilizado como o sinalizador de rastreio associado a saída de impasse. Por conseguinte, 1261 é utilizada.

cenário de exemplo

1 Cliente liga ao SQL Server.

Cliente 1 executa um comando de Transact-SQL que inicia uma transacção e executa a modificação de dados.

Por exemplo:
begin tran
update authors set au_lname = 'test'
1 cliente torna-se IDLE, mostra mais como no modo de suspensão e a aguardar um comando com uma transacção na tabela de sistema sysprocesses aberta.

Os clientes 2 e 255: aproximadamente 254 mais clientes inicie sessão no SQL Server e emitir um SELECT da tabela autores. Estes clientes irão todas ficar bloqueados a actualização original.

1 Cliente tenta consolidar a transacção mas -torna-se em fila porque todos os threads de trabalho estão associados pelos clientes 2 e 255.

Bloquear

Esta mensagem de erro normalmente indica uma situação de bloqueio expandida. Sempre que o monitor de bloqueio é executado (aproximadamente 5 segundos), as mensagens podem ser adicionadas o registo de erros do SQL Server.

Nota É registada uma mensagem para cada SPID/ECID tem um problema de recurso. Por conseguinte, várias mensagens podem ser registadas durante a iteração de monitor bloqueio mesmo.

SQL Server não resolve automaticamente nesta situação. No entanto, esta indicará o problema como uma mensagem de erro (1223 ou 1229) em conformidade. Quando este problema ocorre, pode resolvê-lo de várias formas.

Tempo limite de bloqueio ou consulta

Se as consultas utilizam um bloqueio ou um limite de tempo de consulta, a situação normalmente resolve-se à medida que os tempos limite ocorrem. No entanto, a situação merece despendidos investigação porque indica uma redução de aplicação induced em concorrência.

O Transact-SQL KILL

O administrador é capaz de consultar a tabela de sistema sysprocesses , podem utilizar o comando Eliminar Transact-SQL para terminar o SPID BLOQUEANTES e terminar a SPIDS bloqueado adequado para libertar threads de trabalho e voltar o sistema ao estado normal.
251004Como monitorar o bloqueio do SQL Server 7.0
271509Como monitorar o bloqueio do SQL Server 2000
263889SQL bloqueios bloqueios devido a [[COMPILAÇÃO]]

Suporte

Se não conseguir obter as informações da tabela sysprocesses sistema, obter uma cópia do processo do processo (Sqlservr.exe) e contacte o suporte do Microsoft SQL Server investigação adicional.

Consultas paralelas

Em raras circunstâncias, esta mensagem de erro pode ocorrer devido a uma selecção de plano de consulta paralela fraca. Se a consulta paralela optar por utilizar um número significativo de trabalhadores de SQL Server disponíveis para concluir a consulta, pode exaustão o conjunto de trabalho do SQL Server. A tabela de sistema sysprocesses contém uma coluna ECID para indicar o número de funcionários estão a ser utilizados em nome de SPID individual. Se o valor ECID for alto em relação aos CPU físicas no computador, é normalmente uma indicação de uma consulta para o Media Center mal. Reveja o plano de consulta e a opção de consulta máximo grau de parallelism (MAXDOP) a definição para optimizar correctamente a consulta em questão.

Importa schedulers

O número de assuntos schedulers lógico. Quando o SQL Server é iniciado, a definição de thread de trabalho máximo é dividida igualmente entre schedulers lógicos. Como o número de CPU disponível para o SQL Server aumenta a fila de trabalho é dividida mais. Uma aplicação que revela a actividade de âmbito de transacção indesejável pode manifestar cenários de falta de recursos mais rapidamente quando estão envolvidas mais CPUs. Para este tipo de cenário, o âmbito de transacção de aplicações é corrigido imediatamente.

A tabela seguinte mostra as atribuições de conjunto de trabalho baseadas no número de CPUs se sp_configure armazenado procedimento definição máximo de threads de trabalho é igual a 255.
Reduzir esta tabelaExpandir esta tabela
bloqueio de CPU cadeia de comprimento
1255
2128
464
832
1616
Recomendamos que mantenha a definição de thread de trabalho máximo com o valor predefinido de 255. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
319942Como determinar as definições de configuração do SQL Server adequadas

Estado de funcionamento UMS

Foi adicionada uma nova rotina interna para verificar a integridade do programador lógico cada 60 segundos. Se o programador seja considerado como retardada ou deixou de responder, a mensagem de erro adequado é registada no registo de erro do SQL Server. Erro é registado a cada 60 segundos até o problema está resolvido.

Como mencionado anteriormente, estas mensagens são frequentemente uma indicação de um evento anterior. Consulte cuidadosamente os SQL Server erro registo e aplicação de registos de eventos para o ajudar a determinar a causa do problema.

Nota Um instantâneo é efectuado a cada 60 segundos. Por conseguinte, pode ser 120 segundos antes da condição é detectada pela primeira vez.

SQL Server 7.0

Erro: 17881 - O Programador de %1! ld! parece reagir. Suporte técnico da Microsoft 0 x % 2! p!, CE 0 x % 3! p!, UMS contexto 0 x % 4! p!
Erro: 17882 - bloqueios potenciais existem em todos os schedulers

Sinalizadores de rastreio

Pode desactivar estas dois verificações se iniciar o SQL Server 7.0 com o -T1217 parâmetro de arranque.

SQL Server 2000 SP3

8.00.760 (SP3)
Erro: 17883 - O Programador de %1! ld! parece reagir. SPID %2! ld!, ECID % 3! ld!, UMS contexto 0 x % 4! p!

8.00.765

Iniciar com 8.00.765 quente corrigir, a mensagem foi alterada para ser mais descritivo.
Erro: 17883 - processo %1! ld!: % 2! ld! (%3! lx!) UMS contexto 0 x % 4! p! parece estar não paragem no programador de %5! ld!

Exemplo:
Erro de servidor 08:22:20.27 do 2003-03-21: 17883, gravidade: 1, estado: 0
2003-03-21 08:22:20.27 servidor processo 51:0 (dbc) UMS contexto 0x018DA930 parece estar não paragem no programador de 0.
2003-03-21 08:22:22.45 servidor assinatura da pilha para a informação de estado é 0 x 00000000
Erro: 17884 - bloqueios potenciais existem em todos os schedulers

Sinalizadores de rastreio

Pode desactivar estas dois verificações se iniciar o SQL Server com o parâmetro de arranque-T1260.

Ficheiro de mini cópia de 2000 informação SQL Server

A partir do SQL Server 2000 SP3, a capacidade de capturar um processo de mini cópia de informação foi implementada. Começando criar 8.00.765, será gerado um ficheiro de mini cópia de informação quando o SQL Server detecta primeiro um programador bloqueada.

Para evitar a geração contínua dos ficheiros de mini cópia de informação para estas mensagens de erro (17883 and17884), o comportamento predefinido é produzir um único ficheiro de mini cópia de informação para a duração do processo de SQL Server. Para activar um ficheiro de mini cópia de informação para todas as ocorrências das mensagens, Active o sinalizador de rastreamento - T1262.

O ficheiro de mini cópia de informação é gerado no reg pasta sendo SQLDmpr ### .mdmp. Este ficheiro de mini cópia de informação pode ser avaliado pelo suporte técnico da Microsoft para ajudar a determinar a causa do problema.

Erro 17881 e erro 17883

Estas mensagens indicam um programador UMS único tem detectar um problema lucro. A monitorização do estado de funcionamento detectou o que parece ser um programador com um thread de trabalho que não permite que outros funcionários para o progresso e o programador está a ser marcado como deixasse de responder. Um programador que parou de responder é normalmente um erro com o produto ou um componente externo (XProc, objecto COM, e assim sucessivamente).

Seguem-se exemplos de 17833 condições conhecidos. Certifique-se que procura artigos relacionados a base de dados de conhecimento da Microsoft. Se o sistema necessitar de um patch actualizado, aplicá-lo em conformidade.
815056CORRECÇÃO: O processo de verificação pode atrasar a actividade de base de dados do SQL Server e não lucro programador correctamente a causar o erro: 17883 ocorrer
810885Subsistemas de disco topo de gama poderão erro 17883
Se não conseguir determinar a causa imediatamente, consulte o registo de erros para problemas e participar em actividades de suporte alargado.

Quando um programador não está a responder correctamente, pode diminuir a concorrência global para o SQL Server. SQL Server podem também aparecer para ser retardada ou poderá deixar de responder.

Erro 17882 e 17884

Estas mensagens indicam que produzir todas schedulers UMS tem tido problemas. Isto indica que um problema grande no sistema do SQL Server e SQL Server parecerão ter deixado de responder. Tal como com as mensagens 17881 e 17883, consulte o registo de erros e a base de dados de conhecimento da Microsoft para mais informações. Se necessário, entram em esforços de suporte alargado.

Propriedades

Artigo: 319892 - Última revisão: 18 de maio de 2005 - Revisão: 8.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Service Pack 3
  • Microsoft SQL Server 7.0 Service Pack 4
Palavras-chave: 
kbmt kbsample kberrmsg kbbug kbfix kbinfo KB319892 KbMtpt
Tradução automática
IMPORTANTE: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 319892

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com