Utilização de Memoria por Banco de Dados

Faaaaaaaaala Galera,

virtual-memory

As vezes precisamos saber como está o consumo de memoria RAM do SQL Server, para realizar alguma projeção ou até mesmo se estamos sofrendo gargalo de memoria.

Ai vem a pergunta, sei que o SQL Server está alocando 60gb de memoria (max memory), porem, como a utilização está distribuída entre os bancos? Qual banco/recurso utiliza mais memoria?

 

Segue script que retorna essa informação, quantidade de memoria utilizada por database e também o quanto de memoria está alocado para recursos internos do SQL.

WITH DB_Buffer_Pages
AS
(
SELECT
database_id,
BuffersPorPagina = COUNT_BIG(*)
FROM sys.dm_os_buffer_descriptors
GROUP BY database_id
)

SELECT
database_id as DatabaseID,
CASE [database_id] WHEN 32767
THEN ‘Recurso do SQL SERVER’
ELSE DB_NAME(database_id) END AS DatabaseName,
BuffersPorPagina,
(CONVERT(NUMERIC(10,2),BuffersPorPagina*8)/1024) AS BuffersPorMB
FROM DB_Buffer_Pages
ORDER BY BuffersPorPagina DESC, BuffersPorMB DESC
GO

O Interessante, seria incluir essa querys em sua rotina de Baseline, assim teria uma linha do tempo de utilização de memoria, com informações muito uteis para Troubleshooting futuros.

 

Grande Abraço…. []s

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s