How to detect bad execution plans automatically? I want to automate a way to detect when a stored procedure plan changed for worse. I am planning to do it using a list of critical SPs and checking when their plans changed. Then compare the execution metrics with the previous executions collected in extended events. 

Does anyone have any recommendations to monitor plans without using a lot of server resources?
I've had that problem for only on query: 
1. Scheduled job was looking in query cache for particular query.
2. When query is found it looked for bad pattern in plan. For instance: Index Seek for index XYZ.
3. If bad pattern is found, that query will be automatically deleted from query cache by it's plan-handle using DBCC FREEPROCCACHE