
26/01/2010, 09:27
|
 | Colaborador | | Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años, 2 meses Puntos: 38 | |
Respuesta: Optimizar cursor optimizar y cursor deben ser utilizados con cuidado en una misma sentencia
y solo como comentario: Programar un flujo en base a excepciones no es lo mejor en ninguna plataforma que yo conozca.. ya que es costoso el manejo de las mismas...
adicional... creo que tu proceso puede ser replanteado en tres pasos, creando previamente una tabla adicional para almacenar la info a procesar, seria algo mas o menos asi..
Código:
INSERT INTO MyNewTable (nId, sClassName)
SELECT id, ClassName
(
select id, class0, class1, class2, class3, class4, class5, class6, class7, class8, class9
from total
) Classes
UNPIVOT
(ClassName FOR ClassColumn IN (class0, class1, class2, class3, class4, class5, class6, class7, class8, class9 )
)AS unpvt;
UPDATE P
SET P.cantidad = P.cantidad + 1
FROM procesado P
INNER JOIN MyNewTable M
ON ID = nId and
clase= sClassName
INSERT INTO procesado (id,clase,cantidad)
SELECT P.nId
,P.sClassName
,1
FROM MyNewTable M
LEFT JOIN procesado P
ON ID = nId and
clase= sClassName
WHERE P.Id is null
 Saludos!
__________________ La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications. |