Me encontré con este problema también. El Analizador de SQL no estaba capturando la declaración sp_prepare
porque ocurrió antes de que el rastreo del Analizador de SQL comenzara a ejecutarse. Las diversas publicaciones que se basan en sys.dm_exec_sql_text
no ayudaron porque no pude encontrar el valor correcto sql_handle
o plan_handle
para proporcionar ese procedimiento almacenado.
he encontrado una solución de this blog post: Analizador de SQL, haga clic en el "Mostrar todos los eventos" casilla de verificación y luego en el epígrafe "procedimientos almacenados" la partida elegir "SP: CacheHit".
En la salida del Analizador de SQL resultante, verá un "SP: CacheHit" fila que contiene la instrucción SQL en caché cerca de su "RPC: Starting ... sp_execute" comunicado.
A continuación, puede reconstruir y volver a ejecutar la instrucción SQL completa en SSMS si usted desea usando:
exec sp_executesql @stmt=N'{statement from SP:CacheHit}',
@params=N'{parameter declaration from SP:CacheHit}',
@param1={value}, {...parameters from RPC:Starting sp_execute statement}
¿Está utilizando realmente el Analizador de SQL? – Rodrigo
Sería [un estado de cosas normal/deseable] (http://www.sql-server-performance.com/forum/threads/sp_prepare-and-sp_execute.14685/) tener muchas más llamadas 'sp_execute' en los archivos de rastreo que las llamadas 'sp_prepare'. En cuanto a encontrar el SQL (parametrizado) vinculado a los identificadores preparados, consultaría los esquemas de las tablas del sistema de SQL Server para las columnas denominadas clases de cosas con las que se denomina "manejar" o "plan de consulta". – hardmath