Вы можете запрашивать кэш несколькими различными способами, либо просматривая его содержимое, либо просматривая некоторую связанную статистику.
Пара команд, которые помогут вам на вашем пути:
SELECT * FROM syscacheobjects -- shows the contents of the procedure
-- cache for all databases
DBCC PROCCACHE -- shows some general cache statistics
DBCC CACHESTATS -- shows the usage statistics for the cache, things like hit ratio
Если вам нужно очистить кеш только для одной базы данных, вы можете использовать:
DBCC FLUSHPROCINDB (@dbid) -- that's an int, not the name of it.
-- The int you'd get from sysdatabases or the dbid() function
Редактировать: над строкой - 2000, что и задал вопрос. Однако для тех, кто посещает и использует SQL Server 2005 , это немного отличается от описанного выше:
select * from sys.dm_exec_cached_plans -- shows the basic cache stuff
Полезный запрос для отображения планов в 2005 году:
SELECT cacheobjtype, objtype, usecounts, refcounts, text
from sys.dm_exec_cached_plans p
join sys.dm_exec_query_stats s on p.plan_handle = s.plan_handle
cross apply sys.dm_exec_sql_text(s.sql_handle)