私のデータベースにはいくつかあります 再コンパイルされたストアドプロシージャ
私がそれらを見つける方法は:
SELECT OBJECT_NAME(ID)AS SP_NAME,*
FROM SYSCOMMENTS
WHERE TEXT LIKE '%WITH RECOMPILE%'
私が見たとき:
select * from sys.procedures
recompiles の表示が見つかりません。
再コンパイルあり ストアドプロシージャを見つけるためのより良いまたはよりエレガントな方法はありますか?
データベースごとに、これを行うことができます:
SELECT DISTINCT
DB_NAME() AS DBName,
SO.name AS SPName,
SM.is_recompiled,
ISR.SPECIFIC_SCHEMA
FROM sys.sql_modules AS SM
LEFT OUTER JOIN master.sys.databases AS sDB
ON SM.object_id = DB_ID()
LEFT OUTER JOIN sys.sysobjects AS SO
ON SM.object_id = SO.id
AND SO.type = 'P'
LEFT OUTER JOIN INFORMATION_SCHEMA.ROUTINES AS ISR
ON ISR.ROUTINE_NAME = SO.name
AND ISR.SPECIFIC_CATALOG = DB_NAME()
WHERE SM.is_recompiled = 1;