SQL Server кэширует каждый план (не только для процедур), который он генерирует в памяти.Эти планы могут быть не длинными там.В основном это зависит от того, насколько занят ваш сервер, сколько у вас ОЗУ, как SQL-сервер используется для памяти и т. Д. Кроме того, вы можете включить хранилище запросов, но это новая функция, которая была введена в SQL-сервере 2016 года.Есть несколько вариантов, но, например, он может сохранить для вас планы для конкретных запросов и историю выполнения и т. д. Вы можете использовать этот запрос, чтобы увидеть, что на самом деле в вашем кэше:
SELECT
c.usecounts
,c.size_in_bytes
,c.objtype
,query.text
,plans.query_plan
FROM sys.dm_exec_cached_plans AS c
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS query
CROSS APPLY sys.dm_exec_query_plan(plan_handle) AS plans
ORDER BY c.usecounts DESC