none
Paginação

    Question

  • Olá Pessoal,

    Tenho uma máquina virtual (vmware) que hospeda um servidor de banco de dados que contêm aproximadamente 60GB ao todo.
    Atualmente o mesmo possui 6GB, porém o consumo de memória está altíssimo (95%).

    Minha pergunta é: Que tipo de problemas meu servidor(banco de dados) poderá acarretar?

    Em relação a paginação, é verdade que isso ocorre devido ao consumo de memória está alto?
    O que seria paginação nesse caso?

    Thursday, August 25, 2011 5:08 PM

Answers

  • Just

    em uma linguagem simples... seria:

    Se vc esta sofrendo pressão de memória o windows vai usar o arquivo em disco como uma extenção da memória, como sabemos a leiura em disco é muito inferior que a leitura em memória o que acarretará baixa performance...

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 5:18 PM
    Moderator
  • Just,

     

    Alem da informação do Marcelo, o SQL Server trabalha com paginas de dados que são levadas do disco para a memoria, paginação poderia ser divisão dos dados em uma camada de apresentação em paginas por exemplo, porem quando falamos de paginação de memoria, não estamos falando dos dados de ums instancia, ou de uma pagina de 8kb diretamente do SQL Server, paginação de memoria é Memory Paging, no caso, o maior causador de perda de performance é Page swap, ou seja, devido a falta de memoria,o servidor tem que ficar trocando toda hora seus dados em memoria, e isso acarreta logo de cara 2 coisas impactantes:

    - Tempo de swap.

    - Aumenta I/O, como I/O é lento, diminui a performance, pois ele tem toda hora que ficar pegando e ponto paginas na memoria.

     

    Se estivessemos falando de Oracle talvez escrita assincrona em disco poderia melhorar a sua situação, porem infelizmente o SQL Server não possui essa opção.

    Recomendo um upgrade de memoria, caso seu servidor seja dedicado a banco de dados, se não, verifique se algum servidor que esta competindo com o servidor pode ir para outro servidor.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 5:22 PM
    Moderator
  • Just,

     

    Uma das maiores dificuldades que as pessoas que respondem aqui no forum tentando ajudar os outros é que se tratando de banco de dados, quase nada é uma regra, uma coisa pode ser boa ou ruim, depende apenas de seu ambiente.

    Se voce disse que seu servidor esta sempre com 95% da memoria utilizada e com problemas de performance, eu diria que 6GB não esta sendo o sulficiente.

    Problemas em se ter baixa memoria:

    - Maior paginação da memoria

    Consequencia: Maior Swap de pagina e Mais I/O

    por final, voce encontrara lentidão em seus processos, alias, não só nos processos, se voce logar via TS por exemplo dentro do servidor e tentar abrir um IE por exemplo, voce tambem deve identificar lentidão.

    Em relação ao banco de dados, o maior problema que pode acontecer é: Uma query que precise de X para ser executada, não tiver esse X, ela dara erro informando que não houve memoria o sulficiente e fara RollBack no que conseguiu fazer.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 5:43 PM
    Moderator
  • Just,

     

    Não entendi, o que voce defini por critico? Colocar basicamente seus processos em uma roleta russa sendo na sorte se vai ou não rodar ao meu ver é critico o sulficiente para uma expansão de memoria.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 5:52 PM
    Moderator
  • Just,

     

    No maximo seu banco não ira processar as requisições dos usuarios, pode dar problemas de backup ou qualquer outra requisição, mas teoricamente não iria sózinho por exemplo, corromper uma base de dados sua e nem parar o banco, simplismente daria erro na requisição, mas o banco continuaria no ar.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 6:02 PM
    Moderator

All replies

  • Just

    em uma linguagem simples... seria:

    Se vc esta sofrendo pressão de memória o windows vai usar o arquivo em disco como uma extenção da memória, como sabemos a leiura em disco é muito inferior que a leitura em memória o que acarretará baixa performance...

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 5:18 PM
    Moderator
  • Just,

     

    Alem da informação do Marcelo, o SQL Server trabalha com paginas de dados que são levadas do disco para a memoria, paginação poderia ser divisão dos dados em uma camada de apresentação em paginas por exemplo, porem quando falamos de paginação de memoria, não estamos falando dos dados de ums instancia, ou de uma pagina de 8kb diretamente do SQL Server, paginação de memoria é Memory Paging, no caso, o maior causador de perda de performance é Page swap, ou seja, devido a falta de memoria,o servidor tem que ficar trocando toda hora seus dados em memoria, e isso acarreta logo de cara 2 coisas impactantes:

    - Tempo de swap.

    - Aumenta I/O, como I/O é lento, diminui a performance, pois ele tem toda hora que ficar pegando e ponto paginas na memoria.

     

    Se estivessemos falando de Oracle talvez escrita assincrona em disco poderia melhorar a sua situação, porem infelizmente o SQL Server não possui essa opção.

    Recomendo um upgrade de memoria, caso seu servidor seja dedicado a banco de dados, se não, verifique se algum servidor que esta competindo com o servidor pode ir para outro servidor.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 5:22 PM
    Moderator
  • Marcelo, Fabrizzio,

    Qual é o ponto negativo em ter baixa memória então?

    Aplicações irão rodar mais lentas? Existe algo muito crítico para isso? Por ex, se meu server de banco de dados possui apenas 6GB poderá acontecer isso... (CRÍTICO)

     

    Thursday, August 25, 2011 5:40 PM
  • Just,

     

    Uma das maiores dificuldades que as pessoas que respondem aqui no forum tentando ajudar os outros é que se tratando de banco de dados, quase nada é uma regra, uma coisa pode ser boa ou ruim, depende apenas de seu ambiente.

    Se voce disse que seu servidor esta sempre com 95% da memoria utilizada e com problemas de performance, eu diria que 6GB não esta sendo o sulficiente.

    Problemas em se ter baixa memoria:

    - Maior paginação da memoria

    Consequencia: Maior Swap de pagina e Mais I/O

    por final, voce encontrara lentidão em seus processos, alias, não só nos processos, se voce logar via TS por exemplo dentro do servidor e tentar abrir um IE por exemplo, voce tambem deve identificar lentidão.

    Em relação ao banco de dados, o maior problema que pode acontecer é: Uma query que precise de X para ser executada, não tiver esse X, ela dara erro informando que não houve memoria o sulficiente e fara RollBack no que conseguiu fazer.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 5:43 PM
    Moderator
  • Tudo bem,

    Mas existe algo CRÍTICO para que isso seja trocado (armazenado mais memória) o mais rápido possível?

    Por ex, como a memória está baixa, preciso fazer isso pra ontem...

    Thursday, August 25, 2011 5:50 PM
  • Just,

     

    Não entendi, o que voce defini por critico? Colocar basicamente seus processos em uma roleta russa sendo na sorte se vai ou não rodar ao meu ver é critico o sulficiente para uma expansão de memoria.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 5:52 PM
    Moderator
  • Crítico no sentido que eu digo, parar algo, acarretar algo para meu banco, ou coisa do gênero.
    Thursday, August 25, 2011 6:01 PM
  • Just,

     

    No maximo seu banco não ira processar as requisições dos usuarios, pode dar problemas de backup ou qualquer outra requisição, mas teoricamente não iria sózinho por exemplo, corromper uma base de dados sua e nem parar o banco, simplismente daria erro na requisição, mas o banco continuaria no ar.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Marked as answer by JustSQL Thursday, August 25, 2011 6:14 PM
    Thursday, August 25, 2011 6:02 PM
    Moderator
  • Obrigado.
    Thursday, August 25, 2011 6:14 PM