Comportamento de cache de plano completo


8

No SQL Server 2005, o que acontece quando o cache do plano é preenchido? Eu fiz algumas pesquisas e, a partir dos trechos reunidos, parece que os planos em cache recebem uma "idade" que consiste em seu peso ou custo para compilar, multiplicado pelo número de vezes que foi executado desde que foi armazenado em cache. Com o tempo, essa idade é diminuída, até atingir 0, quando é considerada "envelhecida" e é candidata a descarga quando necessário. Quando o cache do plano é preenchido, os planos antigos ficam liberados do cache.

Há mais alguma coisa que está acontecendo nos bastidores para complicar esse cenário?

Obrigado,

Matt

Respostas:


9

As melhores informações para o assunto encontrado no MSDN estão aqui: Execution Plan Caching and Reuse . Citação do artigo do MSDN:

"Removendo planos de execução do cache de procedimentos

Os planos de execução permanecem no cache do procedimento enquanto houver memória suficiente para armazená-los. Quando existe pressão de memória, o Mecanismo de Banco de Dados usa uma abordagem baseada em custo para determinar quais planos de execução remover do cache do procedimento. Para tomar uma decisão baseada em custo, o Mecanismo de Banco de Dados aumenta e diminui uma variável de custo atual para cada plano de execução, de acordo com os seguintes fatores.

Quando a pressão da memória existe, o Mecanismo de Banco de Dados responde removendo os planos de execução do cache do procedimento. Para determinar quais planos remover, o Mecanismo de Banco de Dados examina repetidamente o estado de cada plano de execução e remove os planos quando o custo atual é zero. Um plano de execução com custo atual zero não é removido automaticamente quando existe pressão na memória; ele é removido apenas quando o Mecanismo de Banco de Dados examina o plano e o custo atual é zero. Ao examinar um plano de execução, o Mecanismo de Banco de Dados empurra o custo atual para zero, diminuindo o custo atual se uma consulta não estiver usando o plano no momento. "

É melhor ler o artigo completo, está muito bem documentado. Veja que ele também possui alguns links.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.