Não consigo encontrar documentação em nenhum lugar sobre o que acionaria esse motivo de recompilação. Estamos investigando uma queda repentina no desempenho da consulta e a única coisa em que consigo pensar é que o plano foi recompilado para a consulta parametrizada quando executado em um pequeno conjunto de dados que resultou em mexer nas estimativas de linha. Percebemos que quando esse processo estava em execução (depois de começar a levar horas em vez de segundos), ele estava atingindo o tempdb com bastante força. As estatísticas nas tabelas consumidas não foram alteradas e o único outro motivo que faz sentido na lista de motivos de recompilação é o nº 12 "Plano parametrizado liberado".
O processo em questão estava chamando uma visão e filtrando em uma única coluna INT. Isso foi feito através do Entity Framework. Há apenas 1 Entity Key na classe e é o PK da tabela principal na exibição. Todos os registros são únicos.
Estou curioso para saber se alguém pode me indicar alguma documentação que explique por que um plano pode ser recompilado devido a "plano parametrizado liberado" .
Os Planos de Consulta são liberados do cache por vários motivos, incluindo o envelhecimento, sendo liberados devido à pressão da memória, liberados devido à ação do usuário (DBCC FREEPROCCACHE etc), liberados devido à reinicialização e liberados devido à recompilação explícita (OPTION (RECOMPILE ou sp_recompile) ).
Se você não puder ver evidências de recompilação forçada ou liberação manual, é provável que o plano tenha expirado ou tenha sido liberado devido à pressão da memória. Dos Documentos: Planejar Cache Internals :
Dê uma olhada nesta resposta do StackExchange , que fornece muitos links excelentes e informações sobre reutilização de planos e armazenamento em cache. Você terá que implementar o monitoramento para detectar a causa exata se isso ocorrer novamente, mas você também deve aproveitar o Query Store, que permitirá forçar um bom plano conhecido para essa consulta e rastrear regressões em seu banco de dados, pois isso pode ser afetando outras consultas também.