Se ejecuta dos veces la funcion ?

02/05/2007 - 17:11 por principiante | Informe spam
Necesito filtrar una tabla de items de stock en esta forma:

select items.codigo, items.nombre, dbo.CalculaExistencia(items.codigo) as
existencia from items
where dbo.CalculaExistencia(items.codigo)>0


Pregunto si SQL Server no optimiza internamente para que la funcion
CalculaExistencia se ejecute una sola vez para cada registro o
necesariamente lo hace dos veces (una para las columnas del select y otra
para el Where)?

En caso de que ciertamente lo haga dos veces, hay alguna maneja de evitarlo?


Jose TH
 

Leer las respuestas

#1 Maxi
02/05/2007 - 18:23 | Informe spam
Tu funcion se ejecutara para cada registro, internamente el optimizador vera
si lo hace en una o 2 veces, que dice tu plan de ejecucion?


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"principiante" escribió en el mensaje
news:
Necesito filtrar una tabla de items de stock en esta forma:

select items.codigo, items.nombre, dbo.CalculaExistencia(items.codigo) as
existencia from items
where dbo.CalculaExistencia(items.codigo)>0


Pregunto si SQL Server no optimiza internamente para que la funcion
CalculaExistencia se ejecute una sola vez para cada registro o
necesariamente lo hace dos veces (una para las columnas del select y otra
para el Where)?

En caso de que ciertamente lo haga dos veces, hay alguna maneja de
evitarlo?


Jose TH



Preguntas similares