Comment vider le cache de 1 procédure stockée dans sql server
Je suis à l'aide de SQL Server 2008 R2.
Je sais que DBCC FREEPROCCACHE
permettra de vider le cache de toutes les procédures stockées dans SQL Server.
Mais j'ai besoin de vider le cache de seulement 1 procédure stockée. Comment puis-je le faire?
Le nom de la Procédure Stockée est Rpt_RegionReport
. Je ne veux pas exécuter la procédure stockée avec WITH RECOMPILE
option.
Pourquoi? Quel problème essayez-vous de résoudre?
Je suis en train de tester cette procédure stockée uniquement et ne veulent pas déranger les autres stockée procs cache
Je suis en train de tester cette procédure stockée uniquement et ne veulent pas déranger les autres stockée procs cache
OriginalL'auteur srh | 2015-06-02
Vous devez vous connecter pour publier un commentaire.
DBCC FreeProcCache
a un seul argument optionnel - le numéro d'identification de l'exécution du plan que vous souhaitez supprimer.Vous pouvez trouver le plan que vous souhaitez supprimer à l'aide de
sys.dm_exec_cached_plans
, et alors vous pouvez simplement l'utiliser commeselect cp.plan_handle from sys.dm_exec_cached_plans cp CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) st where OBJECT_NAME(st.objectid, st.dbid) = 'Rpt_RegionReport'
puis le stocker dans une variable et de le passer àDBCC FREEPROCCACHE
OriginalL'auteur Luaan
viens de trouver sur le plan de l'aide de cette requête et de nettoyer la plan_handle
Plan_handle
cp.objtype = N'Adhoc' AND cp.usecounts = 1
comme il peut filtrer le plan en question. Vous ne devriez pas supposer que quelqu'un qui fait des tests est de frapper le proc de SSMS, l'utilisateur pourrait être frappé dans la proc de code de l'application ou d'un framework de test. Etusecounts
peut "être incrémenté à plusieurs reprises lors de l'utilisation de plan d'exécution", selon la page MSDN pour sys.dm_exec_cached_plans.OriginalL'auteur mohan111
La Requête donnée par @mohan pourrait avoir quelques problèmes, comme c'est le filtrage seul type de l'objet que Adhoc qui signifie que toutes les autres requêtes à l'exclusion de la procédure de apparaît ici.
Donc Veuillez Exécuter l'ensemble des états de manière sélective clair sélectionné uniquement de la procédure de plan d'exécution.
OriginalL'auteur vibs2006