Melhorias no gerenciamento de memoria SQL Server 2012
Ola pessoal,
Uma das melhorias no gerenciamento de memoria que temos na nova versão do SQL Server foi a configuração da quantidade de memoria a ser disponibilizada para buffer cache do SQL Server. No SQL Server 2008 é possível que você configure a quantidade de memoria que você bem entender na opção Max Server Memory, ou seja, se o espertinho achar que 16MB de memoria já é o suficiente para a instancia do SQL Server ele consegue configurar, porem a partir do SQL Server 2012 foi adotado um padrão de que o Max Server Memory nao poderá ter o valor configurado abaixo de 128MB.
Apenas para comprovar a teoria vamos realizar um pequeno teste.
sp_configure ‘max server memory (MB)’, 64
GO
RECONFIGURE
Nao que seja uma GRANDE MELHORIA, mas com certeza ira ajudar muito os DBA’s a não encontrarem aquelas supresinhas desagradáveis quando se deparam com um novo ambiente. Eu particularmente ainda acho pouco, deveria ser no minimo 512MB para começar a brincadeira, mas para quem não tinha nada antes isso já é um bom começo.
Update: Em um dos comentários Erickson (Twitter|Blog) falou que a partir do SQL Server 2012 o Max Server Memory passará a controlar toda a memoria que o SQL Server ira utilizar, e nao somente o Buffer Pool. Com certeza essa sim é uma grande melhoria do SQL Server.
Bom, créditos ao Erickson por essa dica 🙂
Espero que tenham gostado dessa melhoria.
Att,
Marcos Freccia
[MCTS|MCITP|MCT SQL Server 2008]
Posted on February 26, 2012, in Administração, SQL Server 2012, VirtualPass and tagged gerenciamento de memoria, Max Server Memory, SQL Server 2012. Bookmark the permalink. 6 Comments.
Ctz, isso e a implementação de SEQUENCE nessa versão, que era uma dor de cabeça em sistemas que suportam vários SGBDs. Além disso acho de que deveria ter um valor minimo para os data files, principalmente de LOG :), dias atrás quase quebrei a cabeça com Transaction Log full até descobrir que algum artista tinha definido o tamanho como 1mb hehehe.
Obrigado pelo comentario Cleiton,
No SQL Server 2012 também teremos essa implementaçao, se nao me engano o minimo agora para a base de dados é de 3MB.
Att,
Marcos Freccia
Marcos,
Até mais importante que o limite mínimo de memória, que também ajuda, é saber que agora a configuração MAX SERVER MEMORY é de fato toda memória que o SQL Server vai utilizar, não sendo mais limitada a controlar somente o Buffer Pool. Isso pra mim foi umas das melhorias mais importantes no gerenciamento de memória no SQL Server 2012.
Abraços,
Erickson
Erickson,
Muito legal essa informação. Realmente acredito que essa sim sera uma grande mao na roda para nós, valeu por compartilhar. 🙂
Abraços,
Marcos Freccia
Marcos, acho que vale a pena agregar o comentário do Erickson ao post. Apesar do usuário não perceber isso, essa mudança altera todo o comportamento do SQL Server desde o SQL 7.0 com relação a hierarquia de memória e faz um “downgrade” do Buffer Cache. Isso irá facilitar a vida do DBA ao dimensionar o parâmetro Max Server Memory.
Abraços e continue com esses posts,
Fabricio.
Obrigado pelo feedback Catae, vou fazer um update no post e adicionar as palavras do Erickson…
Abraços,
Marcos Freccia