O SQL Server armazena em cache o resultado de uma coluna computada não persistente para que possa ser reutilizada sem incorrer em custos de recálculo?
Contexto Adicional Sempre dei o conselho de que, se estiver usando colunas computadas, você deve usar a opção PERSISTED, a menos que esteja esperando uma frequência de inserção/atualização maior do que a frequência de leitura, ou se precisar de melhor desempenho em inserções/atualizações do que as leituras de os dados (ou seja, uma vez que o custo do cálculo deve ser incorrido em um ou outro, então a decisão é realmente onde você quer pagar esse custo).
Há também a consideração do armazenamento adicional para os dados computados, mas normalmente isso é bastante insignificante e barato, portanto, não é muito importante.
No entanto, eu queria verificar se meu conselho é totalmente preciso, já que o SQL pode ser mais inteligente ... consultas. O SQL pode ter um carimbo de data/hora no valor armazenado em cache e outro nos dados do registro subjacente para dizer se esse registro foi alterado desde que o valor calculado foi calculado para determinar se o valor armazenado em cache ainda é válido.
Existe algo assim em vigor / depende dos recursos disponíveis (por exemplo, memória) ou outros fatores (por exemplo, o valor em cache tem um TTL além do tempo de vida do processo)? Eu nunca li nada sugerindo que isso existe, mas ficaria surpreso se não houvesse alguma otimização acontecendo nos bastidores.