Is there a measure of time frame as to which the execution plan of inline queries will cached?
There is an algorithm (will find it), but practically it will stay there:
- while being used (Edit: See AdaTheDev's answer)
- until statistics update (also implied by index rebuild)
- until definition changes (including whitespace and case)
- SQL instance restart
- until severe memory pressure
As gbn said, there is an algorithm. Just to add that the length of time a plan will be cached for also relates to how valuable a plan is deemed to be and how often it is used (if it's a higher value plan, and it keeps getting used then it's value is very high so will be more likely to be held for longer than other plans)