none
Internal Query Processor Error: The query processor encountered an unexpected error during execution - SQL Server 2000 RRS feed

  • Pergunta

  • Srs, bom dia.

    Tenho o SQL Server 2000 instalado em um cliente e estou com o erro abaixo acontecendo de forma intermitente na mesma rotina.

    "Internal Query Processor Error: The query processor encountered an unexpected error during execution."

    Como a rotina faz muitos comandos na base e como é intermitente, não consegui identificar qual comando efetivamente está causando o erro.

    Li um artigo, mas as minhas queries não se encaixam nesse cenário de: 

    • Executar a mesma consulta SELECT INTO separadamente e duas vezes.
    • Entre as execuções de dois, você deve executar uma operação que faz com que o SQL Server a recompilar a segunda consulta SELECT INTO.

    https://support.microsoft.com/pt-br/kb/323586



    Alguém já passou por isso?

    Obrigada


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    segunda-feira, 28 de novembro de 2016 13:04

Respostas

  • Mariana,

    Sim, pode ser uma possibilidade para contornar!!!


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Mariana Del Nero terça-feira, 29 de novembro de 2016 19:09
    terça-feira, 29 de novembro de 2016 14:28
  • Junior e José,

    O problema deixou de acontecer criando a tabela temporária explicitamente e usando o INSERT... SELECT ao invés de SELECT..INSERT.

    Muito obrigada pela ajuda.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    • Marcado como Resposta Mariana Del Nero terça-feira, 29 de novembro de 2016 19:09
    terça-feira, 29 de novembro de 2016 19:09

Todas as Respostas

  • Deleted
    segunda-feira, 28 de novembro de 2016 13:50
  • Bom dia José!

    Desculpa a demora. 

    A versão do cliente é essa abaixo.

    Microsoft SQL Server  2000 - 8.00.760 (Intel X86) 
    Dec 17 2002 14:22:05 
    Copyright (c) 1988-2003 Microsoft Corporation
    Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 3)

    A mensagem é da aplicação..

    System.Data.SqlClient.SqlException (0x80131904): Internal Query Processor Error: The query processor encountered an unexpected error during execution.
    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
    at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
    at System.Data.SqlClient.SqlDataReader.get_MetaData()
    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
    at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
    at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
    at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
    at ClassesMisterChefNet.ClasseFuncoesGerais.RetornaDataSet(String strconn, String Consulta, Boolean TemWEB, Boolean MostraMsgbox)

    Obrigada!


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    terça-feira, 29 de novembro de 2016 11:51
  • Mariana,

    Você esta utilizando a versão do SQL Server 2000 Desktop Engine!!!!

    Qual query ou transação esta sendo processada quando esta mensagem é apresentada?


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 29 de novembro de 2016 14:05
  • Junior,

    A query é um SELECT .... INTO #Tmp

    E depois um um SELECT nessa #Tmp.


    Obrigada.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    terça-feira, 29 de novembro de 2016 14:08
  • Mariana,

    Antes de qualquer coisa, posso estar enganado mas a versão 2000 apresentava uma falha para trabalhar com tabelas temporárias sendo corrigido isso somente após a aplicação do SP2 e posteriormente SP3 e SP4.

    Aplique estas atualizações no seu ambiente, depois analise as questões abaixo:

    1. A criação da nova tabela através do Select Into ocorre?
    2. Ou o erro esta sendo apresentado no Select?
    3. Quando linhas estão sendo direcionadas para esta nova tabela temporária?



    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 29 de novembro de 2016 14:11
  • Junior, não consigo identificar se o erro ocorre no SELECT.. INTO ou no SELECT da temp, porque não posso acessar o cliente para fazer esse diagnostico.

    A mensagem de erro fica em um log da aplicação.

    Pode realmente ser um bug no SELECT.. INTO e isso ser resolvido com um KEEP PLAN? Igual está no link da Microsoft que coloquei?

    Ou o problema está no SELECT INTO e se eu fizer a criação explícita da tabela e usar um INSERT... SELECT não terei mais problemas?

    Obrigada.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    terça-feira, 29 de novembro de 2016 14:14
  • Mariana,

    Sim, pode ser uma possibilidade para contornar!!!


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Mariana Del Nero terça-feira, 29 de novembro de 2016 19:09
    terça-feira, 29 de novembro de 2016 14:28
  • Vou testar e posto o resultado aqui.

    Obrigada!


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    terça-feira, 29 de novembro de 2016 17:51
  • Junior e José,

    O problema deixou de acontecer criando a tabela temporária explicitamente e usando o INSERT... SELECT ao invés de SELECT..INSERT.

    Muito obrigada pela ajuda.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    • Marcado como Resposta Mariana Del Nero terça-feira, 29 de novembro de 2016 19:09
    terça-feira, 29 de novembro de 2016 19:09