Laburo España: 250.000 ofertas de empleo
Logotipo del weblog

 


Reflexiones desde el sillón

Oracle: consulta con resultados "paginados"

9, 21 de 2005-11-21 de 2005
Este pequeño truco nos evita que las consultas nos devuelvan gran cantidad de resultados que luego tenemos que paginar.

Imaginemos, por ejemplo, que tenemos una tabla con 2000 registros que deseamos mostrar de 50 en 50. Lo más habitual es recuperar los 2000 registros y utilizar la programación para hacer una paginación.

Esto nos consume gran cantidad de recursos, ya que la consulta precisará más tiempo y, en el caso de que el servidor de bases de datos sea distinto al servidor web, la transferencia de datos entre uno y otro servidor será también más lenta.

La solución: recuperar sólo los registros que necesitamos. Esto se hace del siguiente modo:

SELECT *
FROM ( SELECT a.*, ROWNUM rnum
FROM (
//AQUI ES DONDE VA MI CONSULTA
SELECT * from NOMBRE_DE_LA_TABLA
WHERE condiciones ORDER BY orden deseado
//AQUI ACABA MI CONSULTA
) a
WHERE ROWNUM <= 50 )
//cuando el número de registro sea igual o inferior a 50
WHERE rnum >= 1 //cuando el número de registro sea igual o superior a 1

Esto nos mostraría los registros del 1 al 50. Sería por lo tanto, en la programación previa a la consulta, donde habría que especificar desde que registro hasta que registro queremos recuperar.
Por Agustín Roca | # enlace | Comentarios (0) | Referencias (0) | En: Bases de datos

Comentarios

Agregar un comentario


Recordar datos
¡Un solo click vale!
LaInformacion.com lainformacion.com - Medio Oficial de los Premios Bitacoras 2009