none
Select demorando muito RRS feed

  • Pergunta

  • Bom dia!

    Pessoal tenho uma instrução select em um banco que esta demorando muito tempo para retornar registros. Fiz uns teste e ela demorou cerca de 1 h para retornar registros então abortei.

    Em outro banco com as mesmas tabelas, esta consulta me retornar cerca de 130 mil registros em 00:30 s.

    o que eu poderia analisar mais a fundo para descobrir porque isto esta acontecendo, esta demora.

    qualquer ideia ser abem vinda.


    Maricelmo

    quinta-feira, 29 de abril de 2021 12:34

Todas as Respostas

  • Maricelmo,

    O que existe de diferente entre estes bancos?

    Ambos foram criados no mesmo SQL Server, ou este que esta apresentando lentidão foi migrado?

    Você já verificou as configurações das propriedades: Modelo de Recuperação e Nível de Compatibilidade?


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

    quinta-feira, 29 de abril de 2021 14:19
  • Ola, Junior Galvão.

    O que existe de diferente entre estes bancos?
    Apenas a nomenclatura das tabelas, mas os dados são identicos.

    Ambos foram criados no mesmo SQL Server, ou este que esta apresentando lentidão foi migrado?
    Ambos, foram criados no mesmo SQL Server.


    Maricelmo

    quinta-feira, 29 de abril de 2021 14:31
  • Ola, Junior Galvão

    Você já verificou as configurações das propriedades: Modelo de Recuperação e Nível de Compatibilidade?
    Então,  o modelo de recuperação esta como Simples.
    Verifiquei que o nível de compatibilidade estava Sql Server 2008 (100) e alterei para Sql Server 2012 (110), pois uso o Sql Server 2012.

    Após isto efetuei um teste novamente na consulta e continuar a demora.

    Maricelmo

    quinta-feira, 29 de abril de 2021 15:39
  • Maricelmo,

    Então, vamos por parte, você estava utilizando o nível de compatibilidade 110 nesta outra base e alterou para 110!

    Certo, certo, mesmo assim a lentidão esta persistente, este é um cenário muito típico da ocorrência de um comportamento no algoritmo de cardinalidade utilizado pelo SQL Server quando se utiliza um nível compatibilidade inferior ao nível da versão do SQL Server.

    Precisamos verificar como as estatísticas de suas tabelas, bem como das tabelas internas do seu respectivo banco de dados estão.

    Execute o script abaixo para identificarmos quais estatísticas estão desatualizadas:

    SELECT name AS stats_name, 
        STATS_DATE(object_id, stats_id) AS statistics_update_date
    FROM sys.stats 
    order by statistics_update_date Desc
    Go

    Um detalhe importante, no banco de dados MODEL existente neste SQL Server qual é a configurações do Recovery Model e Compatibility Level?


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

    sexta-feira, 30 de abril de 2021 22:23