Recompilar funciones y stred procs

23/07/2006 - 03:39 por Pablo Rodríguez | Informe spam
Hola, quisiera saber si hay alguna manera de recompilar las funciones,
procedimientos y vistas de SQL 2005, ya que cada vez que hago un cambio en
alguna tabla debo recompilar cada uno de los procedimientos que hacen
referencia a esa tabla... y en algunos casos eso ocurre muy seguido

Por lo que me dijo alguien que trabaja con oracle, él puede acceder a una
tabla y ver que objetos están descompilados y con esa info maneja un script
que recompila todos los objetos que así lo requieran.

Saludos!!!
Pablo Rodríguez.

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera \(MVP\)
23/07/2006 - 06:04 | Informe spam
En SQL Server las recompilaciones son totalmente automáticas cuando
modificas una tabla utilizada por algún stored procedure.

En el caso que se podría necesitar optimización es cuando modificas índices.
Puedes usar la opción WITH RECOMPILE de CREATE PROCEDURE para obligar a que
el stored procedure sea compilado en cada ejecución.

Puedes aprender los detalles en tus Books Online, sección "Recompiling
Stored Procedures":

ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/...8f7c18.htm



Gustavo Larriera, MVP
Mentor, Solid Quality Learning
Blog: http://solidqualitylearning.com/blogs/glarriera/


"Pablo Rodríguez" wrote in message
news:
Hola, quisiera saber si hay alguna manera de recompilar las funciones,
procedimientos y vistas de SQL 2005, ya que cada vez que hago un cambio en
alguna tabla debo recompilar cada uno de los procedimientos que hacen
referencia a esa tabla... y en algunos casos eso ocurre muy seguido

Por lo que me dijo alguien que trabaja con oracle, él puede acceder a una
tabla y ver que objetos están descompilados y con esa info maneja un
script que recompila todos los objetos que así lo requieran.

Saludos!!!
Pablo Rodríguez.

Respuesta Responder a este mensaje
#2 Alejandro Mesa
24/07/2006 - 15:20 | Informe spam
Pablo,

Ademas de lo indicado por Gustavo, puedes usar los procediminetos
almacenados sp_recompile (para recompilar sps y triggers) y sp_refreshview
(para actualizar la metadata de las vistas).

Ejemplo:

use northwind
go

declare @sql nvarchar(4000)
declare @vn nvarchar(256)
declare my_views cursor
local
fast_forward
for
select
N'[' + TABLE_SCHEMA + N'].[' + TABLE_NAME + N']'
from
INFORMATION_SCHEMA.TABLES
where
TABLE_TYPE = 'VIEW'
and objectproperty(object_id('[' + TABLE_SCHEMA + '].[' + TABLE_NAME +
']'), 'IsMSShipped') = 0

open my_views

while 1 = 1
begin
fetch next from my_views into @vn

if @@error != 0 or @@fetch_status != 0 break

set @sql = N'exec sp_refreshview @viewname'

exec sp_executesql @sql, N'@viewname nvarchar(256)', @vn
end

close my_views
deallocate my_views
go


AMB


"Pablo Rodríguez" wrote:

Hola, quisiera saber si hay alguna manera de recompilar las funciones,
procedimientos y vistas de SQL 2005, ya que cada vez que hago un cambio en
alguna tabla debo recompilar cada uno de los procedimientos que hacen
referencia a esa tabla... y en algunos casos eso ocurre muy seguido

Por lo que me dijo alguien que trabaja con oracle, él puede acceder a una
tabla y ver que objetos están descompilados y con esa info maneja un script
que recompila todos los objetos que así lo requieran.

Saludos!!!
Pablo Rodríguez.



Respuesta Responder a este mensaje
#3 Pablo Rodríguez
25/07/2006 - 23:25 | Informe spam
Gracias por las respuestas, voy a estudiar un poco al respecto a ver que
sale...
en cuanto a la compilación automática, en sql 2000 me funciona, pero con el
2005 no...



"Pablo Rodríguez" escribió en el mensaje
news:
Hola, quisiera saber si hay alguna manera de recompilar las funciones,
procedimientos y vistas de SQL 2005, ya que cada vez que hago un cambio en
alguna tabla debo recompilar cada uno de los procedimientos que hacen
referencia a esa tabla... y en algunos casos eso ocurre muy seguido

Por lo que me dijo alguien que trabaja con oracle, él puede acceder a una
tabla y ver que objetos están descompilados y con esa info maneja un
script que recompila todos los objetos que así lo requieran.

Saludos!!!
Pablo Rodríguez.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida