Los triggers guardan el plan de ejecucion ?

26/01/2005 - 13:05 por Berta Gomez | Informe spam
Las sentencias T-sql que se indican en los triggers guardan el plan de
ejecucion de por si o solamente lo hacen los SP ' s ?

Preguntas similare

Leer las respuestas

#1 Maxi
26/01/2005 - 13:23 | Informe spam
Hola, no Berta, los Triggers no guardan en cache ningun plan de ejecucion y
cada vez que se ejecuten se volveran a calcular


Salu2
Maxi


"Berta Gomez" escribió en el mensaje
news:%
Las sentencias T-sql que se indican en los triggers guardan el plan de
ejecucion de por si o solamente lo hacen los SP ' s ?



Respuesta Responder a este mensaje
#2 Eladio Rincón
26/01/2005 - 13:49 | Informe spam
Hola Berta,

si se guardan los planes de ejecución; para ello debes mirar en la tabla
master..syscacheobjects y buscar por objtype = 'Trigger'

mira, te pego un trozo de código con el que lo puedes comprobar; ejecutalo
paso a paso y verás el resultado;
ahhh, hay varios ejemplos; trigger en caché con sentencia insert, trigger en
caché con llamada a procedimiento almacenado (que hace que el procedimiento
vaya también a caché)...

use tempdb
go
drop proc pr_t_ins
go
drop proc pr_t_upd
go
drop trigger tr_t
go
drop trigger tr_t_upd
go
drop table t
go
drop table t2
go
create table t (id int)
go
create table t2 (id int)
go
create trigger tr_t on t after insert
as
insert into t2 select id from inserted
go

create trigger tr_t_upd on t after update
as
declare @id int
select top 1 @id = id from inserted
exec pr_t_upd @id
go

create proc pr_t_ins @id int as
insert into t select @id
go

create proc pr_t_upd @id int as
update t set id = @id
go

select object_name(objid), * from master..syscacheobjects where object_name
(objid) in ( 'tr_t', 'tr_t_upd', 'pr_t_ins', 'pr_t_upd' )
go

exec pr_t_ins @id=1
go
select object_name(objid), * from master..syscacheobjects where object_name
(objid) in ( 'tr_t', 'tr_t_upd', 'pr_t_ins', 'pr_t_upd' )
go

update t set id = id
go
select object_name(objid), * from master..syscacheobjects where object_name
(objid) in ( 'tr_t', 'tr_t_upd', 'pr_t_ins', 'pr_t_upd' )


Eladio Rincón
SQL Server MVP

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Berta Gomez" wrote in message
news:#
Las sentencias T-sql que se indican en los triggers guardan el plan de
ejecucion de por si o solamente lo hacen los SP ' s ?



Respuesta Responder a este mensaje
#3 Gustavo Larriera [MVP]
26/01/2005 - 14:13 | Informe spam
Sí. Los sproc y triggers guardan su plan de ejecución.

La primera vez que se ejecutan se genera el plan de ejecución y se
almacena. La siguiente ejecución utiliza el plan de ejecución ya
generado, a menos que haya "envejecido" en memoria.

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"Berta Gomez" wrote in message
news::
Las sentencias T-sql que se indican en los triggers guardan el plan de
ejecucion de por si o solamente lo hacen los SP ' s ?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida