A resposta curta é, se usada corretamente , as Páginas de bloqueio na memória podem melhorar o desempenho do SQL Server em sistemas de 64 bits.
A resposta longa nos leva alguns passos para trás.
Primeiro de tudo, você precisa entender que há uma diferença entre paginação e paginação para o disco. Com os sistemas operacionais modernos, a ALL memória é alocada em páginas dentro do VAS (espaço de endereço virtual) . Isso não é uma coisa ruim, é assim que funciona.
Existem dois problemas com a maneira como o SQL Server trabalha com a memória do buffer pool quando Lock Pages não é usado:
Primeiro, é mais caro para alocar memória . Quando um processo é iniciado ou pede mais memória, o sistema operacional cria novas páginas para ele sob demanda. Portanto, normalmente, como o SQL Server é executado, ele estará solicitando, recebendo, liberando páginas conversando com o sistema operacional o tempo todo, o que é caro.
Segundo, o NUMA não funciona muito bem. Suporte NUMA apropriado significa que o aplicativo pode contar com uma página residente na memória física que é a mais próxima do processador no qual o encadeamento está, mas quando o SO está assumindo a paginação, o SQL Server não pode garantir isso. É necessário verificar se há residência NUMA para cada solicitação de página, o que também é caro .
Quando você ativa o bloqueio de páginas na memória, o SQL Server não precisa lidar com nenhum desses problemas para o buffer pool porque ele usa a AWE API para gerenciamento de memória.
Em primeiro lugar, quando ele pede memória, faz isso apenas uma vez e obtém uma lista de páginas do sistema operacional de uma só vez. Então, no futuro, ele pode alocar essas páginas da forma que precisar, sem precisar solicitar o sistema operacional para elas.
Em segundo lugar, porque está bloqueando as páginas do sistema operacional, sabe que as propriedades dessas páginas não serão alteradas . Portanto, se a página for uma página NUMA, ela será colocada no pool de buffers NUMA e não precisará se preocupar em verificar se está na NUMA na próxima vez que verificar.
Você observará esses aprimoramentos à medida que o banco de dados aumentar (quando a alocação de memória ocorrer) e também ao longo do tempo (quando normalmente o SQL Server estaria lidando com o SO para alocação / desalocação de páginas).
Se você quiser mais detalhes, há um excelente artigo técnico sobre isso por Slava Oks, quando ele estava na equipe do SQL Server. Ele também fez uma postagem sobre Perguntas e respostas sobre o assunto em outro excelente artigo sobre < a href="http://blogs.msdn.com/slavao/archive/2005/08/02/446648.aspx"> como o NUMA funciona no SQL Server .