The problem with this concept is that you depend upon the query being run enough times that you get the query's plan stored in the Plan Cache and then if a DBA happens to catch that issue. Every database has this issue but this only really works for queries and doesn't catch these types of patters in C# Entity Framework code or in stored procedures. There is a better way with SqlParser and that can be done without looking at the execution plan and even without querying the database.