SQL Server Memory Manager


Amanhã recomeçamos mais um novo SQL BOOTCAMP de Ramp-up com os novos engenheiros do time.

Começaremos pontualmente às 9h com um dos assuntos mais obscuros do mundo SQL Server: gerenciamento de memória. O blog do Slava ainda é considerado a documentação mais precisa sobre o assunto.

SQLOS's memory manager and SQL Server's Buffer Pool
http://blogs.msdn.com/b/slavao/archive/2005/02/11/371063.aspx

Hoje estava revisando o material do bootcamp e o Alberto Lima (PFE) decidiu introduzir um slide. Essa deve ser a melhor representação que já vi sobre os componentes (e micro-componentes) desse mundo – compare a figura com as imagens ASCII do blog do Slava.

image

Queria um dia conseguir documentar cada uma dessas caixas… é muito detalhe! Tem umas aí que nem conheço direito.

Por sorte, o apresentador será o Alberto.

Comments (8)

  1. Alberto Lima (PFE) disse:

    Como assim?!?!?!?!….Eu fiz com muito detalhe assim pensando iria ser você que iria explicar..rsrsrs não iria?

    Quero só ver amanhã, tô lascado …rsrs

    Brincadeiras a parte…. Você sabe a quanto tempo estudo o conceito de Memory Manager, devido a falta de documentação sobre o assunto, procurei tentar externar um pouco isso.

    Esse é um simples slide, mas o significado pra mim é gigantesco, isso é resultado de uma trajetória de estudo e trabalho.

    E você Sr. Fabricio Catae sabe que foi uma peça fundamental em todo esse processo.

    Obrigado Mestre!

  2. Obrigado Alberto – mas amanhã é com você. Alias, tive uma ideia agora. Amanhã poderíamos incluir o Memory Broker e o Resource Governor.

  3. FonsecaSergio disse:

    Ainda bem que hoje achei um vídeo do Bob Ward, SQLOS Internals – Nível 400…. Assim não apanho tanto 😀

  4. A parte mais legal vai ser falar do SQL 2012!

  5. Fernando Garcia disse:

    A alguns meses não mexo com SQL,porém lembro que o memory broker é fundamental ,vários componentes do SQL server precisam de memória e para ter certeza que isso é feito de maneira eficiente o SQL usa o memory broker.Que eu lembre ,a função do memory broker é analisar o comportamento do SQL server em si ,respeitar o consumo de memória distribuído e melhorar a distribuição de memória dinamicamente.

    Ele é tipo o mecanismo central de distribuição de memória do SQL,que distribui a memória entre buffer pool, query executor,Query Optimizer e os outros caches que precisam de memória.

    Primeira aula que eu tive com o Catae foi sobre os ring buffers.Lembra?haha..faz a query na sys.dm_os_ring_buffers onde type = ring_buffer_memory_broker .

    O ring buffer para o memory broker é somente atualizado quando o memory broker muda o comportamento dele,se precisa crescer ou diminuir.Se falei alguma besteira é que faz alguns meses que não trabalho com SQL.Abs a todos.

  6. Daniel disse:

    Nice work guys… No idea how to say that in Portuguese

  7. Olá Fernando, Obrigado pelo comentário.

    Voce tem razão com relação ao Memory Broker ter uma grande importancia, porém a inclusão dele não foi efetuada porque achei que ficaria melhor em contexto mais macro, tal como o Slava optou por explicar sobre ele em um outro contexto e acho que que a visualização na imagem não ficaria muito legal.

    Quero deixar claro que nesta imagem não estão todos os componentes,  "Large Pages" é um exmplo.

    Criei esse slide com a ideia principal de apenas mostrar o fluxo básico de um desenvolvedor do SQL Engine no papel de Consumer do Memory Manager.

    Um abraço

  8. Faaala Fernando!!! Qto tempo!

    Bons tempos de quando a gente conversava sobre SQL Server (pra variar)..

    Um grande abraço, Fabricio

Skip to main content