Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2008, 02:59
Beatrice
 
Fecha de Ingreso: febrero-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 1
Cursor o T-Sql

Hola a todos!!

Llevo poco tiempo utilizando procedimientos almacenados y necesito hacer una consulta bastante complicada en la que primero recupero una serie de datos y posteriormente recupero otros datos que dependen de unas fechas recuperadas en los datos que he traido inicialmente.

De momento no he utlizado ni cursores. El esquema de mi primera solucion ha sido este:

SELECT dato1, dato2, ...
FROM
(
SELECT
ROW_NUMBER() OVER (ORDER BY Columna ASC) AS numFila,
dato1, dato2,...
FROM
(
/*Al ejecutarse esta parte ya tengo los datos iniciales con sus fechas con las que obtendré el resto de datos que obtendre en TABLA4*/
SELECT datox,datoy....
FROM
(
SELECT datoxx,...
FROM ..... (AQUI HAY VARIOS JOIN)
WHERE ......
)as Tabla1
FULL OUTER JOIN
(
SELECT datox2,datoy2....
FROM
(
SELECT datoxx,...
FROM ..... (AQUI HAY VARIOS JOIN)
WHERE ......
)as Tabla2
on Tabla1.datox = Tabla2.datox2
) AS TABLA3
- Aqui tambien hay varios join -
WHERE
- criterios de seleccion-
GROUP BY .....
)
AS TABLA4
WHERE numFila BETWEEN @startRowIndex and @maximumRows


¿Creeis que es mas eficiente la consulta de esta manera o sería mas optima utilizando cursores?

El volumen de registros que tengo que taer puede ser bastante alto.

Muchas gracias por opinar!!
:D

Última edición por Beatrice; 13/05/2008 a las 03:17