Mostrando postagens com marcador Data Cache. Mostrar todas as postagens
Mostrando postagens com marcador Data Cache. Mostrar todas as postagens

terça-feira, 31 de janeiro de 2012

Pesquisa: Desperdício no data cache

Parte da análise dos servidores SQL Server que nós fazemos está em olhar com carinho para o data cache, afinal de contas, é ele que ajuda o SQL Server a manter um bom desempenho e é quem consome boa parte do BPool.

Escrevi rapidinho uma pequena consulta que mostra quanto do BPool está sendo “desperdiçado” com fragmentação interna das páginas carregadas. Já tenho uma ideia da média de alguns servidores que tenho contato, mas gostaria de publicar um número, resultado de muitos outros servidores, para TODOS os DBAs terem uma ideia dessa média.

WITH DataCache AS (
SELECT 
ISNULL(CAST(database_id AS VARCHAR), 'Total') AS DatabaseID    
, ((COUNT(page_id) * 8192.0) / 1024.0) / 1024.0 AS TotalUtilizadoMB
, (SUM(CAST(free_space_in_bytes AS BIGINT)) / 1024.0) / 1024.0 AS EspacoLivreMB
FROM sys.dm_os_buffer_descriptors
GROUP BY GROUPING SETS ((database_id), ()))
SELECT 
DataCache.*
, EspacoLivreMB / TotalUtilizadoMB AS PercentualDesperdicado    
FROM DataCache
ORDER BY EspacoLivreMB DESC  

Para me ajudar basta executar essa consulta me enviar (ou colocar no comentário deste post) o resultado que aparece na linha do “Total”. Abaixo um exemplo de saída...

DatabaseID     TotalUtiliadoMB      EspacoLivreMB        PercentualDesperdicado
Total                 7404.281250           1212.929668423      0.163814640

Note que dependendo do tamanho do BPool o SQL Server pode ler muitas páginas, mas isso não deve causar nenhum grande impacto no ambiente, dado que a DMV não espera por um latch que está prendendo a página (
http://blogs.msdn.com/b/psssql/archive/2009/01/21/how-it-works-sys-dm-os-buffer-descriptors.aspx), mas nos dará uma boa média.

E aí, gostou da ideia? Então vamos ajudar os outros DBAs e executar a consulta. Depois publico o resultado aqui...



!! UPDATE !!
Enquanto conversava com o Fabiano pelo Lync, buscando algumas coisas sobre hobt_id e partition_id, esbarramos com dois posts do Paul Randall, publicados no ano passado, fazendo o mesmo que pedi para vocês. Coincidência é pouco! 
Mesmo assim o resultado dos servidores de vocês ainda é bem vindo, fico no aguardo de mais dados.

Aqui estão os links para ver o resultado dele: http://www.sqlskills.com/BLOGS/PAUL/post/Survey-how-much-server-memory-is-being-wasted-(code-to-run).aspx e http://www.sqlskills.com/BLOGS/PAUL/post/Performance-issues-from-wasted-buffer-pool-memory.aspx

No post de fechamento vou citar algumas coisas importantes, mas como o Paul já falou muito vou aproveitar para mostrar algo diferente do que ele cita no fim do artigo, onde sys.dm_db_index_physical_stats vai estar bem diferente do coletado no data cache.

Acho que isso foi um sinal, quem sabe no futuro a Sr. Nimbus não estará a altura do SQLSkills??!!! HEHEHE
E eu ACHO que existe a chance deles conseguirem mais dados de servidores do que nós. :-)

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

sexta-feira, 8 de julho de 2011

[Artigo] O caso dos snapshots e data cache thrashing

Segue mais um artigo!
Data cache e database snapshots! Gostei bastante de escrevê-lo.
Oriundo de uma dúvida na DL do SQLServerDF, já estou começando a escrever outro post sobre Database Snapshots. Legal ou não?

https://skydrive.live.com/?cid=e145f7753042d628&sc=documents&uc=1&id=E145F7753042D628%211068

PS: já que esse artigo surgiu de uma última conversa com o Luan Moreno como funcionário da Nimbus, que agora está ajudando outra empresa com suas habilidades de DBA, fica aqui o meu obrigado para esse amigo e que possamos ter muitas outras conversas!

Sucesso Luan! Fica rico e depois volta para a Nimbus.

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br