KB2344600: o erro "não é possível Agendador" pode ocorrer quando você usa a função CONTAINSTABLE juntos com vários predicados OR e e e e e e e e e e/e, no SQL Server 2008 ou no SQL Server 2008 R2

A Microsoft distribui correções do Microsoft SQL Server 2008 como um arquivo que pode ser baixado. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Fix.A Microsoft distribui o Microsoft SQL Server 2008 ou o SQL Server 2008 R2 corre correções como um arquivo que pode ser baixado. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 ou do SQL Server 2008 R2.

Sintomas

Considere o seguinte cenário:

  • Você tem uma consulta de pesquisa de texto completo que usa a função CONTAINSTABLE juntos com vários predicados ou e e e em condição no Microsoft SQL server 2008 ou no SQL Server 2008 R2. Por exemplo, você tem os seguintes 50 e operações: Declare @Keywords varchar(4000) = NULLset @Keywords= N'((((((((((((((((((((((((((((((((((((((((((((((((((((("TOKarchitect" OR "architectural") AND ("TOKengineer" OR "engineer")) AND "gineer") AND ("TOKmechanical" OR "Mechanical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineering")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKcontrol" OR "Control")) AND ("TOKsystem" OR "Systems")) AND ("TOKengineer" OR "Engineer")) AND ("TOKproject" OR "Project")) AND ("TOKmanager" OR "Manager")) AND ("TOKengineer" OR "Engineering")) AND "Scheme") AND ("TOKmanufacture" OR "Manufacturing")) AND ("TOKengineer" OR "Engineer")) AND ("TOKmetallurgist" OR "Metallurgy")) AND ("TOKmetallurgist" OR "Metallurgist")) AND ("TOKprocess" OR "Process")) AND ("TOKTechnology" OR "Technology")) AND ("TOKproduct" OR "Production")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKcontrol" OR "Control")) AND ("TOKengineer" OR "Engineer")) AND "Mechatronics") AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineer")) AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "engineering")) AND ("TOKengineer" OR "Engineering")) AND ("TOKgraduate" OR "Graduate")) AND ") ANDNOT (") AND ("TOKRecruitment" OR "Recruitment")) AND ("TOKconsultant" OR "consultant")) AND ("TOKtrainee" OR "trainee")) AND ("TOKRecruitment" OR "recruitment"))'select * from CONTAINSTABLE(test_table, *, @keywords, 1000)

  • Você executa a consulta.

Nesse cenário, pode ocorrer um erro de "Agendador sem rendimento". Além disso, um arquivo de mini-despejo é gerado na pasta de log do aplicativo do SQL Server 2008 ou do SQL Server 2008 R2, e o seguinte erro é registrado no arquivo de log de erro do SQL Server:

<carimbo de data/hora> Servidor usando o ' dbghelp. dll ' versão ' 4.0.5 '<carimbo de data/hora> Server * * * não é possível obter contexto de thread para spid 0<carimbo de data/hora> servidor * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *<carimbo de hora> Server *<carimbo de data/hora> Server * iniciar despejo de pilha:<carimbo de data/hora> Server * <time> spid <SPID><carimbo de data/hora>Server *<carimbo de data/ hora> servidor * Agendador sem concessão<carimbo de hora> Server *<carimbo de data/hora>Server * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *<carimbo de data/hora> assinatura de pilha do servidor do despejo é 0x000000000000030D<carimbo de data/hora> 0x20000001 de código externo do processo de retorno do. O processo de despejo externo não retornou erros.<carimbo de data/hora> O processo do servidor 0:0:0 (0xf94) Worker 0x00000000817481A0 parece não receber a concessão no Agendador 0. Tempo de criação do thread: 12925321224306. CPU de thread aprox usado: kernel 62 MS, usuário 75187 MS. Utilização de processo 98%. O sistema está ocioso em 0%. Intervalo: 76403 MS.<carimbo de data/hora> O processo do servidor 0:0:0 (0xf94) Worker 0x00000000817481A0 parece não receber a concessão no Agendador 0. Tempo de criação do thread: 12925321224306. CPU de thread aprox usado: kernel 125 MS, usuário 145250 MS. Utilização de processo 98%. O sistema está ocioso em 0%. Intervalo: 148417 MS.<carimbo de data/hora> O processo do servidor 0:0:0 (0xf94) Worker 0x00000000817481A0 parece não receber a concessão no Agendador 0. Tempo de criação do thread: 12925321224306. CPU de thread aprox usado: kernel 171 MS, usuário 205515 MS. Utilização de processo 98%. O sistema está ocioso em 0%. Intervalo: 209729 MS.<carimbo de data/hora> O processo do servidor 0:0:0 (0xf94) Worker 0x00000000817481A0 parece não receber a concessão no Agendador 0. Tempo de criação do thread: 12925321224306. CPU de thread aprox usado: kernel 218 MS, usuário 266343 MS. Utilização de processo 98%. O sistema está ocioso em 0%. Intervalo: 271588 MS.<carimbo de data/hora> O processo do servidor 0:0:0 (0xf94) Worker 0x00000000817481A0 parece não receber a concessão no Agendador 0. Tempo de criação do thread: 12925321224306. CPU de thread aprox usado: kernel 234 MS, usuário 325156 MS. Utilização de processo 97%. O sistema está ocioso em 0%. Intervalo: 333671 MS.<carimbo de data/hora> O processo do servidor 0:0:0 (0xf94) Worker 0x00000000817481A0 parece não receber a concessão no Agendador 0. Tempo de criação do thread: 12925321224306. CPU de thread aprox usado: kernel 296 MS, usuário 386000 MS. Utilização de processo 97%. O sistema está ocioso em 0%. Intervalo: 396370 MS.

Causa

Esse problema ocorre porque o SQL Server 2008 ou o SQL Server 2008 R2 não libera um Agendador corretamente.

Resolução

Informações sobre a atualização cumulativa

SQL Server 2008 R2

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 5. Para obter mais informações sobre como obter este pacote de atualização cumulativa do SQL Server 2008 R2, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2438347 Pacote de atualizações cumulativas 5 para SQL Server 2008 R2 Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 R2. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

981356 As compilações do SQL Server 2008 R2 que foram lançadas após a liberação do SQL Server 2008 R2

Service Pack 1 do SQL Server 2008

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 10 para SQL Server 2008 Service Pack 1. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2279604 Pacote de atualizações cumulativas 10 para SQL Server 2008 Service Pack 1Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Fix. A Microsoft recomenda que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

970365 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 1 Hotfixes do Microsoft SQL Server 2008 são criados para Service Packs específicos do SQL Server. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 1 a uma instalação do SQL Server 2008 Service Pack 1. Por padrão, qualquer hotfix fornecido em um Service Pack do SQL Server está incluído no próximo Service Pack do SQL Server.

Service Pack 2 do SQL Server 2008

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 1 para SQL Server 2008 Service Pack 2. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2289254 Atualização cumulativa 1 para SQL Server 2008 Service Pack 2Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Fix. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

2402659 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 2

Solução alternativa

Para contornar esse problema, use um dicionário de sinônimos de pesquisa de texto completo para definir os sinônimos do predicado. Para fazer isso, use a função FORMSOF em conjunto com o valor do dicionário de sinônimos e, em seguida, adicione todas as palavras-chave como parâmetros. Para o exemplo descrito na seção "sintomas", a seguir está uma versão atualizada da consulta de exemplo: Select * from test_table where Contains(*,'FORMSOF (THESAURUS,"architectural","engineer","Mechanical","Engineering","Electronics","Engineer","Electrical","Control","Systems","Project","Manager","Manufacturing","Metallurgy","Metallurgist","Process",”Design”,"Technology","Production","Quality","Control","Civil","Graduate","Recruitment","consultant","trainee","recruitment")')

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplicável a".

Referências

Para obter mais informações sobre a função CONTAINSTABLE , acesse o seguinte site da Microsoft Developer Network (MSDN):

Informações gerais sobre a função CONTAINSTABLEPara obter mais informações sobre o modelo de manutenção incremental do SQL Server, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

935897 Um modelo de serviço incremental está disponível na equipe do SQL Server para fornecer hotfixes para problemas relatadosPara obter mais informações sobre o esquema de nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

822499Novo esquema de nomeação para pacotes de atualização de software do Microsoft SQL ServerPara obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×