none
Utilização de Memória SQL Server x Oracle

    Discussão Geral

  • Bom dia! 

    Pessoal, venho compartilhar com senhores duas situações.

    Tenho uma Instância com 7 databases Menor com 100GB e maior com 700GB, esta instância tem alocado no SQL Server 650GB de RAM.

    No decorrer do dia próximos de 60000 Page Life Expectancy e uma média de 35000, mas na madrugada 240 a 600 PLE.

    Vocês tem alguma ideia para diminuir este consumo?

    Uma segunda questão, tenho recebido comentários "SQL é um comedor de memória", "Esse o problema do SQL consumir Memória" e vem a comparação Oracle não é assim, Oracle nunca usaria tudo isso de Memória, mas antes migrar para Oracle...

    Meus amigos DBAs, eu sinceramente amo SQL Server e isso machuca ouvir essas coisas, gostaria da opinião dos senhores.

    Obrigada


    terça-feira, 24 de abril de 2018 11:17

Todas as Respostas

  • Qualquer SGBD que você deixe disponível memoria ele vai consumir, seja Oracle ou SQL Server, afinal é mais rápidobuscar o dado em memoria do que em disco.
    terça-feira, 24 de abril de 2018 13:07
  • Page Life Expectancy informa o tempo em segundos que a página de dados fica no pool de buffer do SQL Server, desta forma quanto maior o tempo que as paginas ficarem em memoria melhor sera, pois não ira buscar em disco.
    terça-feira, 24 de abril de 2018 13:08
  • Tem razão, é algo primário usar em memória e muito mais performático que em disco. Mas não foi essa a questão colocada aqui.

    Coloquei um comparativo entre SQL Server e Oracle, como não sou DBA Oracle, necessitava entender que isso que algumas pessoas tem falado que o Oracle não é um consumidor de Memória como o SQL.

    Mas em conversa com um DBA Oracle aqui do meu trabalho, fiquei sabendo que o povo fala muito por ignorância técnica.

     Na verdade o Oracle usa tanto Memória quanto o SQL Server, mas segundo este DBA Oracle, ele libera o que é utilizado por completo, eu como DBA SQL vivencio cenários como este abaixo.

    No SQL Server se eu aloco 100GB e tenho Base1 e Base2 e daqui uns dias realizo uma coleta de Memória utilizada por base, posso ter algo assim:

    Base1 30GB

    Base2 60GB

    CACHESTORE_SQLCP 5GB

    CACHESTORE_OBJCP 3GB

    MSDB 1GB

    MASTER 1GB

    Totalizando 100GB

    Se eu tiver este cenário acima, com certeza o PLE vai estar abaixo dos 300 e isso indica que já existe concorrência por memória, aplicações com Pool tratado com tempo de resposta, podem começar receber timeout.

    Supondo que add mais uma base e ela tiver processamento caro, o risco desta Instância travar é alta.

    Esta memória só é liberada se houver um Restart da Instância ou pode ser liberada uma parte com Free Cache por base, mas assim que o Processamento do ambiente voltar esse alocamento por base volta tudo de novo.

    Já no Oracle segundo este DBA primeiro eu aloco memória por bases, então nele não será possível dizer alocada 100GB e usado 30GB neste momento, supondo que um Plano de execução solicitou X de memória commitou morreu o assunto X fica para o próximo Plano.

    Enfim se o Oracle realmente é assim, espero que aqui tenha um DBA Oracle, eu prefiro o SQL, pois se uma base começou usar memória fora da normalidade é sinal de  investigação e entender o que esta acontecendo.

    quarta-feira, 25 de abril de 2018 15:42
  • Então esse não é o Problema ser alto, por isso informo que na madrugada tem caído muito o PLE se aproximando de 300 e esse tem sido meu problema.

    Tenho Backups na madrugada e plano de manutenção Rebuild, Reorganizer e Stastistics, além de processamento de algumas bases, a ferramenta de Backup tem consumido muitos Recursos CPU e Memória, vou dividir esta situação com ADM dela, e vou buscar melhoria para estas bases.

    quarta-feira, 25 de abril de 2018 15:51
  • Boa tarde.

    Qual o tempo da tua janela de manutenção? Separa as execuções de rebuild, backup, etc. 

    Gosto de usar o script do Ola https://ola.hallengren.com/ para dar manutenção. Pode ser que ja esteja usando.

    Você separando as execuções vai ter um ganho. Tive casos onde a operação de rebuild estava muito custosa e foi necessário mudar para bulk logged. Não era problema exatamente de memoria e sim disco.

    Talvez mudar o teu plano de backup para sua maior base de dados, tipo fazer full diario, fazer dif.

    terça-feira, 15 de maio de 2018 17:39