Have you analyzed your plan cache to find out if you have a large number of one-time plans?
SELECT usecounts, COUNT(*), SUM(size_in_bytes)
FROM sys.dm_exec_cached_plans
GROUP BY usecounts
ORDER BY usecounts;
optimize for ad hoc workloads, , , , ? , .
SQL, , . , , ( , , , ). , , DBCC FREEPROCCACHE , , . (, , " ad hoc" , , , , , ).
, , (. " " ).