locked
Problemas Acesso SQL Server - Handles > 16.000.000 RRS feed

  • Pergunta

  • Bom dia a todos,

    Tenho uma máquina com Windows Server 2016 Datacenter 6.3 e o SQL Server 2016 (SP1 - CU5) instalado nele dentro de um VM no Azure.

    Acontece que quando o processo do sqlsrvr.exe chega a 16.000.000 handles o SQL simplesmente recusa qualquer outra conexão e tem que ser reiniciado.

    Quem está conectado fica, mas qualquer nova conexão é recusada.

    No momento em que isso acontece, já olhei para os processos dentro do SQL Server e não existe nada demais acontecendo. Muitas vezes temos pouco mais de 100 conexões abertas na instância executando comando rotineiros.

    Alguém já passou por isso? Conseguem me ajudar?

    Obrigada.



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


    • Editado Mariana Del Nero segunda-feira, 5 de fevereiro de 2018 14:02 Atualização dados
    segunda-feira, 5 de fevereiro de 2018 13:56

Respostas

  • Mariana,

    Provavelmente o problema esta relacionado ao tamanho do seu buffer cache de objetos, ou seja, existe alguma query que não esta sendo encerrada, ou supostamente esta mantendo algo em cache.

    Veja se estes links te ajudam: https://blogs.msdn.microsoft.com/sqlprogrammability/2007/01/09/2-0-sql_handle-and-plan_handle-explained/

    https://docs.microsoft.com/en-us/sql/relational-databases/native-client-odbc-how-to/allocate-handles-and-connect-to-sql-server-odbc


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


    quarta-feira, 7 de fevereiro de 2018 11:36
    Moderador

Todas as Respostas

  • Mariana,

    Provavelmente o problema esta relacionado ao tamanho do seu buffer cache de objetos, ou seja, existe alguma query que não esta sendo encerrada, ou supostamente esta mantendo algo em cache.

    Veja se estes links te ajudam: https://blogs.msdn.microsoft.com/sqlprogrammability/2007/01/09/2-0-sql_handle-and-plan_handle-explained/

    https://docs.microsoft.com/en-us/sql/relational-databases/native-client-odbc-how-to/allocate-handles-and-connect-to-sql-server-odbc


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


    quarta-feira, 7 de fevereiro de 2018 11:36
    Moderador
  • Junior, obrigada.

    Vou investigar e volto pra deixar o resultado.

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

    quarta-feira, 7 de fevereiro de 2018 16:25
  • Bom dia a todos,

    Tenho uma máquina com Windows Server 2016 Datacenter 6.3 e o SQL Server 2016 (SP1 - CU5) instalado nele dentro de um VM no Azure.

    Acontece que quando o processo do sqlsrvr.exe chega a 16.000.000 handles o SQL simplesmente recusa qualquer outra conexão e tem que ser reiniciado.

    Quem está conectado fica, mas qualquer nova conexão é recusada.

    No momento em que isso acontece, já olhei para os processos dentro do SQL Server e não existe nada demais acontecendo. Muitas vezes temos pouco mais de 100 conexões abertas na instância executando comando rotineiros.

    Alguém já passou por isso? Conseguem me ajudar?

    Obrigada.



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


    O Microsoft SQL Server dentro do Azure eu ainda não experimentei usar.

    Mas o que relatou acima, pode ser causado por problema na configuração de memoria máxima e memória minima, que o banco de dados do SQL tem que utilizar.  No Microsoft SQL Server fora do Azure sei como resolver isso.  

    Verifica no Azure se tem como saber quanto de memória RAM tem disponivel no servidor que usa.

    Verifica no SQL Azure se tem como saber quanto de memória máxima e memória mínima está configurado para o banco de dados utilizar dentro do Azure.  Normalmente tem que se ajustar a memória RAM da motherboard e adequar qual valor de memoria RAM máxima e memória RAM mínima o banco de dados SQL deverá usar.

    Problemas costumam ocorrer é quando a motherboard tem muita memória RAM disponível para uso, mas em  contra-partida dentro da configuração do Microsoft SQL Server tem pouca memória configurada para o banco de dados SQL usar.

    Bom dia


    Ana Mercedes Gauna | IT Consultant | Microsoft Partner: 4970237 | Skype: amgauna@hotmail.com | Site: http://www.anagauna.eti.br | Blog: http://anagauna.wordpress.com | If you have been able to help, please check the answer as correct.

    • Sugerido como Resposta Ana Gauna segunda-feira, 19 de fevereiro de 2018 14:11
    • Não Sugerido como Resposta Mariana Del Nero sexta-feira, 23 de fevereiro de 2018 20:41
    segunda-feira, 19 de fevereiro de 2018 12:44
  • Bom dia a todos,

    Tenho uma máquina com Windows Server 2016 Datacenter 6.3 e o SQL Server 2016 (SP1 - CU5) instalado nele dentro de um VM no Azure.

    Acontece que quando o processo do sqlsrvr.exe chega a 16.000.000 handles o SQL simplesmente recusa qualquer outra conexão e tem que ser reiniciado.

    Quem está conectado fica, mas qualquer nova conexão é recusada.

    No momento em que isso acontece, já olhei para os processos dentro do SQL Server e não existe nada demais acontecendo. Muitas vezes temos pouco mais de 100 conexões abertas na instância executando comando rotineiros.

    Alguém já passou por isso? Conseguem me ajudar?

    Obrigada.



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


    O Microsoft SQL Server dentro do Azure eu ainda não experimentei usar.

    Mas o que relatou acima, pode ser causado por problema na configuração de memoria máxima e memória minima, que o banco de dados do SQL tem que utilizar.  No Microsoft SQL Server fora do Azure sei como resolver isso.  

    Verifica no Azure se tem como saber quanto de memória RAM tem disponivel no servidor que usa.

    Verifica no SQL Azure se tem como saber quanto de memória máxima e memória mínima está configurado para o banco de dados utilizar dentro do Azure.  Normalmente tem que se ajustar a memória RAM da motherboard e adequar qual valor de memoria RAM máxima e memória RAM mínima o banco de dados SQL deverá usar.

    Problemas costumam ocorrer é quando a motherboard tem muita memória RAM disponível para uso, mas em  contra-partida dentro da configuração do Microsoft SQL Server tem pouca memória configurada para o banco de dados SQL usar.

    Bom dia


    Ana Mercedes Gauna | IT Consultant | Microsoft Partner: 4970237 | Skype: amgauna@hotmail.com | Site: http://www.anagauna.eti.br | Blog: http://anagauna.wordpress.com | If you have been able to help, please check the answer as correct.

    Ana, obrigada pela ajuda.

    Na verdade é apenas uma VM dentro do Azure. Não é SQL Azure como plataforma.

    A máquina tem 72 GB de RAM e a memória máxima do SQL Server está configurada em 64 GB.
    Não acho que seria o caso que você explicou né?

    Obrigada.


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

    sexta-feira, 23 de fevereiro de 2018 20:44