• There is no way to go back in time to retrieve an execution plan. So, if you have a need to monitor particular plans, you need to set up, ahead of time, a mechanism for capturing those plans. When I have to do this, I generally use extended events. It is possible to use a server-side trace, but they put a lot of load on the server. You can also query directly into the cache using the Dynamic Management Objects. But you'll have to set all this up.

    Conversely, if you know the query has a problem now, capture the plan (see above) and save it. You can save plans as .sqlplan files. Then, either wait for performance to go back to normal or force a recompile on the query in order to see if changing circumstances change the plan. Compare what's there to what you captured.

    But, performance may not be about plans changing. It could be about differences in statistics, the amount of data, blocking, etc. So all this comes back to having monitoring in place to be able to track system performance and behavior.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning