Tenho várias tabelas grandes que preciso copiar em cópias particionadas em um banco de dados transacional.
Estou preocupado com o impacto que isso causará no desempenho dos meus aplicativos de produção.
Em uma tentativa de mitigar isso, estou analisando o Resource Governor. Vou definir meu script para usar um pool de recursos limitado a um máximo de 5% de CPU e memória.
A única parte disso que não tenho certeza é o efeito no PLE.
Pelo que entendi, o select da tabela lerá o valor no cache. Isso forçará a saída de outra coisa que estava no cache. (O conceito básico do PLE.) Mas os itens "forçados" serão limitados aos 5% que especifiquei?
Ou seja, depois de usar os 5% da memória, isso forçará apenas os itens em cache nos mesmos 5%? (Deixando os outros 95% inalterados.)
Outra maneira de perguntar isso é: o limite de memória de 5% é o mesmo que dizer um limite de cache de 5%?
Esta página do MSDN informa que as configurações de memória afetam apenas a memória de consulta:
Pool de recursos do administrador de recursos
O acima indica que o pool de buffers está excluído das limitações do pool de recursos. Portanto, se você pretende executar algumas ações que podem fazer com que todo o buffer pool seja esvaziado para executar seu processo, convém garantir que o processo seja executado fora do horário comercial.
A seguir, um trecho do blog do MSDN, SQL Server Page Life Expectancy :
De perguntas nos comentários aqui:
A memória de consulta é usada para execução de consultas. Ele é usado temporariamente para coisas como classificações, criação de bitmap, tabelas de hash, etc. O cache contém dados de tabela na memória.
Correto. Page Life Expectancy é tudo sobre quanto tempo as páginas de dados permanecem na memória.