none
Problema com memoria do SQL no gerenciador RRS feed

  • Pergunta

  • Ola Pessoal Tudo bem?

    Queria saber se alguém ja pegou um caso com o SQL Server 2012 pra cima, que no gerenciador de tarefas do windows o consumo de memoria não passa de Ex: 56kb, mesmo que esteja configurado no SQL para consumir EX: 6GB.

    Caso entre no monitor de recursos ele mostra a seguinte informação na aba Memória no processo do SQL

    Confirmar ele mostra o consumo de 6gb e logo depois no conjunto de trabalho mostra consumo em kb 

    E consequentemente ocorre algumas lentidões, não sei se devido a isso. Algumas vezes o consumo fica em kb e o conjunto de trabalho fica em kb também.

    Fico grato e obrigado a todos

    terça-feira, 13 de setembro de 2016 14:50

Respostas

  • Grande Dyego, você já se atentou em monitorar o consumo real da instância SQL Server sobre a memória que configurou? Sugiro verificar de imediato através do script abaixo o consumo de memória de cada banco de dados no seu ambiente e pelo os contadores de performance.

    --Memory used per database
    
    SET TRAN ISOLATION LEVEL READ UNCOMMITTED
    
    SELECT
    	ISNULL(DB_NAME(database_id), 'ResourceDb') AS DatabaseName
    	, CAST(COUNT(row_count) * 8.0 / (1024.0) AS DECIMAL(28,2)) AS [Size (MB)]
    FROM sys.dm_os_buffer_descriptors
    GROUP BY database_id
    ORDER BY DatabaseName
    Lhe antecipo que o Task Manager não é uma boa ferramenta de análise do seu consumo de memória pelo SQL Server. Poderia fornecer mais detalhes sobre seu ambiente? Sugiro que dê uma lida no capitulo 4 do livro escrito por Jonathan Kehayias e Ted Krueger "Troubleshooting SQL Server - A Guide for the Accidental DBA". Acho que irá lhe esclarecer muito sobre suas dúvidas e problemas nessa questão da memória e o Task Manager.


    quarta-feira, 14 de setembro de 2016 12:25
  • Dyego,

    Uma solução simples e rápida seria utilizar o PerfMon(Performance Monitor) do Windows e adicionar os contadores de memória dedicados a sua instância SQL Server.

    Dentro do Management Studio você também pode utilizar alguns scripts, como este:

    SELECT  cntr_value/1024 AS 'Memory (MB)'
     
    FROM master.dbo.sysperfinfo
     
    WHERE object_name = 'SQLServer:Memory Manager'
     
    AND counter_name = 'Total Server Memory (KB)'
    


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

    quarta-feira, 14 de setembro de 2016 16:16
    Moderador
  • Obrigado desculpe a demora pela resposta

    • Marcado como Resposta Dyego Rodrigues segunda-feira, 2 de janeiro de 2017 14:32
    segunda-feira, 19 de dezembro de 2016 14:39
  • valeu Junior,

    desculpe a demora mas isso me ajudou muito 

    • Marcado como Resposta Dyego Rodrigues segunda-feira, 2 de janeiro de 2017 14:32
    segunda-feira, 19 de dezembro de 2016 14:40

Todas as Respostas

  • Grande Dyego, você já se atentou em monitorar o consumo real da instância SQL Server sobre a memória que configurou? Sugiro verificar de imediato através do script abaixo o consumo de memória de cada banco de dados no seu ambiente e pelo os contadores de performance.

    --Memory used per database
    
    SET TRAN ISOLATION LEVEL READ UNCOMMITTED
    
    SELECT
    	ISNULL(DB_NAME(database_id), 'ResourceDb') AS DatabaseName
    	, CAST(COUNT(row_count) * 8.0 / (1024.0) AS DECIMAL(28,2)) AS [Size (MB)]
    FROM sys.dm_os_buffer_descriptors
    GROUP BY database_id
    ORDER BY DatabaseName
    Lhe antecipo que o Task Manager não é uma boa ferramenta de análise do seu consumo de memória pelo SQL Server. Poderia fornecer mais detalhes sobre seu ambiente? Sugiro que dê uma lida no capitulo 4 do livro escrito por Jonathan Kehayias e Ted Krueger "Troubleshooting SQL Server - A Guide for the Accidental DBA". Acho que irá lhe esclarecer muito sobre suas dúvidas e problemas nessa questão da memória e o Task Manager.


    quarta-feira, 14 de setembro de 2016 12:25
  • Dyego,

    Uma solução simples e rápida seria utilizar o PerfMon(Performance Monitor) do Windows e adicionar os contadores de memória dedicados a sua instância SQL Server.

    Dentro do Management Studio você também pode utilizar alguns scripts, como este:

    SELECT  cntr_value/1024 AS 'Memory (MB)'
     
    FROM master.dbo.sysperfinfo
     
    WHERE object_name = 'SQLServer:Memory Manager'
     
    AND counter_name = 'Total Server Memory (KB)'
    


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

    quarta-feira, 14 de setembro de 2016 16:16
    Moderador
  • Obrigado desculpe a demora pela resposta

    • Marcado como Resposta Dyego Rodrigues segunda-feira, 2 de janeiro de 2017 14:32
    segunda-feira, 19 de dezembro de 2016 14:39
  • valeu Junior,

    desculpe a demora mas isso me ajudou muito 

    • Marcado como Resposta Dyego Rodrigues segunda-feira, 2 de janeiro de 2017 14:32
    segunda-feira, 19 de dezembro de 2016 14:40