none
Duvida Lock pages in memory” and “Perform volume maintenance tasks” RRS feed

Respostas

  • Robert, boa tarde!

    Leia este arquivo quem o explica é nosso MCA (Microsoft Architect) de SQL Server - http://blogs.msdn.com/b/fcatae/archive/2010/07/02/lock-pages-in-memory.aspx


    /* Se útil por favor classifique a resposta */

    quarta-feira, 8 de maio de 2013 18:57
  • Caro Robert,

    O usuário que roda o serviço do SQL Server deveria possuir o direito de Lock Pages in Memory para que o próprio processo do SQL Server utilize uma outra maneira de alocar memória. Esta outra maneira evitaria que, caso o Windows sinalize falta de memória para continuar gerenciando o Sistema Operacional, o cache do SQL fosse parar no arquivo de paginação. Mas se o Sistema Operacional está pedindo memória (sob risco de parar) de que adianta manter as páginas do SQL em memória?

    Com esta "outra" maneira, o SQL utilizaria mecanismos internos para liberar memória para o SO, sendo menos agressivo, gravando páginas menos utilizadas em disco ao invés de colocar qualquer página (incluindo as mais utilizadas) no arquivo de paginação. Mas veja que mesmo assim ele devolve memória pois se não devolver o SO pára e o SQL também... rs... Este conceito era mais utilizado em sistemas com Windows 2003 e Windows 2008 RTM com pouca memória disponível, porque o gerenciamento de memória nesta época não era muito eficiente. Já para o Windows 2008 R2, é afirmado pela Microsoft que seu gerenciamento de memória é mais esperto e portanto não seria necessário utilizar este recurso.

    Veja que se você tem bastante memória, teoricamente não seria necessário, porém, nada como dormir sabendo que todas as páginas do seu banco estão na RAM e não estão no arquivo de paginação por engano, certo?

    -------------------------

    Já o Perform Volume Maintenance Tasks tem outra finalidade completamente diferente. Quando você tem configurado o auto growth para seus arquivos de Transaction Log e chega o momento de crescer o arquivo, existe a necessidade de escrever zeros na parte nova do arquivo. Este processo é doloroso (muitas operações de I/O gerando fila de disco) além de lento. Suponhamos que seu TLog esteja com 2GB e por falta de espaço vai crescer mais 1GB: neste caso, teria que escrever zeros dentro deste 1GB para que então o SQL possa utilizá-lo. Enquanto isso seu SQL fica parado esperando :( . 

    Para evitar esta espera, existe o recurso Instant File Inicialization, que permite o crescimento rápido do arquivo de Transaction Log reduzindo drasticamente este tempo de espera. Para que este recurso funcione, o usuário que roda o processo do SQL Server deve possuir o direito de executar atividades de manutenção de volumes ou o Perform Volume Maintenance Tasks.

    Estas preciosas informações estão no meu caderno de anotações do treinamento que fiz com o MVP Luciano Moreira, que recomendo.

    Foi mais didático?

    Abs!

     


    Luiz Mercante
    MCITP SQL 2008 | MCTS SQL 2008 | MCTS Windows Apps | MCTS Windows Network | MCP 2003
    sqldicas@outlook.com
    http://sqldicas.com.br


    Se a resposta foi útil de alguma forma, classifique.

    quinta-feira, 9 de maio de 2013 01:46
    Moderador

Todas as Respostas

  • Robert, boa tarde!

    Leia este arquivo quem o explica é nosso MCA (Microsoft Architect) de SQL Server - http://blogs.msdn.com/b/fcatae/archive/2010/07/02/lock-pages-in-memory.aspx


    /* Se útil por favor classifique a resposta */

    quarta-feira, 8 de maio de 2013 18:57
  • Caro Robert,

    O usuário que roda o serviço do SQL Server deveria possuir o direito de Lock Pages in Memory para que o próprio processo do SQL Server utilize uma outra maneira de alocar memória. Esta outra maneira evitaria que, caso o Windows sinalize falta de memória para continuar gerenciando o Sistema Operacional, o cache do SQL fosse parar no arquivo de paginação. Mas se o Sistema Operacional está pedindo memória (sob risco de parar) de que adianta manter as páginas do SQL em memória?

    Com esta "outra" maneira, o SQL utilizaria mecanismos internos para liberar memória para o SO, sendo menos agressivo, gravando páginas menos utilizadas em disco ao invés de colocar qualquer página (incluindo as mais utilizadas) no arquivo de paginação. Mas veja que mesmo assim ele devolve memória pois se não devolver o SO pára e o SQL também... rs... Este conceito era mais utilizado em sistemas com Windows 2003 e Windows 2008 RTM com pouca memória disponível, porque o gerenciamento de memória nesta época não era muito eficiente. Já para o Windows 2008 R2, é afirmado pela Microsoft que seu gerenciamento de memória é mais esperto e portanto não seria necessário utilizar este recurso.

    Veja que se você tem bastante memória, teoricamente não seria necessário, porém, nada como dormir sabendo que todas as páginas do seu banco estão na RAM e não estão no arquivo de paginação por engano, certo?

    -------------------------

    Já o Perform Volume Maintenance Tasks tem outra finalidade completamente diferente. Quando você tem configurado o auto growth para seus arquivos de Transaction Log e chega o momento de crescer o arquivo, existe a necessidade de escrever zeros na parte nova do arquivo. Este processo é doloroso (muitas operações de I/O gerando fila de disco) além de lento. Suponhamos que seu TLog esteja com 2GB e por falta de espaço vai crescer mais 1GB: neste caso, teria que escrever zeros dentro deste 1GB para que então o SQL possa utilizá-lo. Enquanto isso seu SQL fica parado esperando :( . 

    Para evitar esta espera, existe o recurso Instant File Inicialization, que permite o crescimento rápido do arquivo de Transaction Log reduzindo drasticamente este tempo de espera. Para que este recurso funcione, o usuário que roda o processo do SQL Server deve possuir o direito de executar atividades de manutenção de volumes ou o Perform Volume Maintenance Tasks.

    Estas preciosas informações estão no meu caderno de anotações do treinamento que fiz com o MVP Luciano Moreira, que recomendo.

    Foi mais didático?

    Abs!

     


    Luiz Mercante
    MCITP SQL 2008 | MCTS SQL 2008 | MCTS Windows Apps | MCTS Windows Network | MCP 2003
    sqldicas@outlook.com
    http://sqldicas.com.br


    Se a resposta foi útil de alguma forma, classifique.

    quinta-feira, 9 de maio de 2013 01:46
    Moderador
  • Ótimo Luiz Obrigado!!!!
    quinta-feira, 9 de maio de 2013 11:51