Estoy buscando una pieza de código estándar que pueda incluir en el procedimiento que pueda recorrer todos los parámetros del proceso y recuperar los valores actuales pasados--
Puede obtener todos los valores pasados para un sp usando la consulta a continuación
Ejemplo:
Tengo un proceso almacenado a continuación que me brinda detalles de ventas (solo para demostración)
alter proc dbo.getsales
(
@salesid int
)
as
begin
select
* from sales where [email protected]
end
He llamado a mi sp como a continuación..
exec dbo.getsales 4
Ahora, si quiero que se apruebe el valor, puedo usar la siguiente consulta
select top 10* from sys.dm_exec_cached_plans cp
cross apply
sys.dm_exec_text_query_plan(cp.plan_handle,default,default)
where objtype='proc'
que me mostró a continuación como el valor de tiempo de compilación
dicho esto, hay muchas cosas a considerar... podemos usar métodos xml para obtener este valor
ahora qué sucede, si vuelvo a ejecutar el mismo proceso almacenado por un valor de 2 ..
<ColumnReference Column="@salesid" ParameterCompiledValue="(4)" ParameterRuntimeValue="(2)" />
Un problema importante aquí es que los valores anteriores se muestran cuando seleccioné el plan de ejecución para mostrar desde ssms.
Pero cuál será el valor en el caché, veamos usando la consulta de caché del plan anterior nuevamente
<ColumnReference Column="@salesid" ParameterCompiledValue="(4)"/>
Todavía muestra el valor compilado, más la columna usecounts como 5, lo que significa que este plan se ha utilizado 5 veces y el parámetro que se pasó cuando el plan se compiló inicialmente es 4, lo que también significa que los valores de tiempo de ejecución no se almacenan en caché detalles de los planes..
Entonces, en resumen, puede obtener valores de tiempo de ejecución pasados al proceso almacenado
- 1.Valores que se pasan mientras se compila la declaración (
Puede comenzar a recopilar esta información durante un período de tiempo y registrarlos en el proceso almacenado, creo que con el tiempo con reinicios del servidor, planifique las recompilaciones, puede obtener un nuevo conjunto de valores de parámetros) - 2. Ponerse en contacto con el equipo DEV también es una buena manera, ya que pueden brindarle una lista total de parámetros que se pueden pasar, si este ejercicio es complicado