SQL Server can avoid compilations of previously executed queries by using four mechanisms to make plan caching accessible in a wide set of situations.
Ad hoc query caching
Prepared queries, using either sp_executesql or the prepare and execute method invoked through your API
Stored procedures or other compiled objects (triggers, TVFs, etc.)
To determine which mechanism is being used for each plan in cache, you should look at the values in the cacheobjtype and objtype columns in the sys.dm_exec_cached_plans view. The cacheobjtype column can have one of six possible values.
Compiled Plan Stub
CLR Compiled Func
CLR Compiled Proc
This section looks at only Compiled Plan and Compiled ...