Hola a todos:
Espero que puedan ayudarme con un problema que se nos ha presentado en la
aplicación que tenemos desarrollada, tenemos un procedimiento almacenado que
utiliza una función defina por el usuario que retorna una variable tipo tabla
y la relaciona con otras tablas. Por ejemplo:
CREATE PROCEDURE <mi_procedimiento>
AS
SET NOCOUNT ON
SELECT <lista_campos>,
SUM(sb.Cantidad) AS Cantidad
FROM fn_StockLote(@prm1, @prm2) sb
INNER JOIN Producto p (NOLOCK) ON (p.Producto = sb.Producto)
WHERE sb.Cantidad > 0
GROUP BY <lista_campos>
SET NOCOUNT OFF
GO
Esta función es utilizada en otros procedimientos para obtener los stocks de
los productos, bueno estamos utilizando una conexion con ADO y al invocar al
recordset utilizamos: CursorLocation : adUseCLient, adOpenForwardOnly,
adLockReadOnly en SQL Server 2000 funcionaba correctamente, hace unos meses
migramos a SQL Server 2005 y con esta configuracion tenemos problemas al
ejecutar el procedimiento almacenado.
Espero que me haya explicado bien y puedan ayudarme, no creo que sea
incompatilidad de la UDF con la configuracion del recordet ya que se hizo
otra prueba con un proc. similar pero que retorna pocos datos y funciona
correctamente.
Me quedan dudas si el SQL Server 2005 tiene problemas con el rendimiento en
las consultas pues varias procedimientos en SQL Server 2000 funcionaban
correctamente, pero migrados a SQL Server 2005 tienen problemas son lentos
pues se ha utilizado ORDER BY en algunos.
Espero su ayuda y les agradezco por anticipado.
Saludos.
Leer las respuestas