Respostas:
O SQL Server 2012 possui um indicador no próprio plano RetrievedFromCache
, que pode ser "verdadeiro" ou "falso".
Parece ser a propriedade que você está perguntando.
Esta é uma amostra (a última linha mostra a propriedade):
<StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1"
StatementOptmLevel="FULL" StatementOptmEarlyAbortReason="GoodEnoughPlanFound"
StatementSubTreeCost="0.0508992" StatementText="SELECT COUNT(*)

FROM sys.tables" StatementType="SELECT"
QueryHash="0x9A4B63A948B30EA0" QueryPlanHash="0xF357CAE882D5B15D"
RetrievedFromCache="true">
Infelizmente, não vejo nada semelhante em um plano gerado pelo SQL Server 2008 R2.
No SQL Server 2008 R2, você pode usar a sys.dm_exec_query_stats
DMV do sistema para inspecionar a creation_time
coluna em busca de planos com o mesmo query_hash
valor. O hash da consulta pode ser obtido no cabeçalho do XML do plano (veja o exemplo acima). Esta consulta retornará linhas relacionadas ao plano mencionado acima:
SELECT *
FROM sys.dm_exec_query_stats qs
WHERE qs.query_hash = 0x9A4B63A948B30EA0;