Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/01/2012, 02:43
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con ids consecutivos

El orden de insercion de los registros en una base de datos relacional que se precie, es irelevante se prima antes economias de lectura, es decir el motor en funcion de como esten almacenados fisicamente los datos en el disco los lee lo mas rapido posible...

Si lees un poco de teoria sobre SQL lo primero que te explicaran es que es un leguaje declarativo, no indicativo, es decir tu declaras lo que quieres y el motor te lo sirve de la forma mas rápida posible. Luego si no declaras en que orden quieres los registros el motor los muestra de la forma mas rápida que puede...

Incluso se da que una misma consulta puede mostrar los datos en distinto orden si entre las ejecuciones ha habido cambios en el disco que hayan modificado el almacenaje de los datos.

La diferencia con los lenguajes no declarativos es que en ellos no solo indicas lo que quieres si no tambien como hacerlo. En SQL solo declaras lo que quieres y el motor decide como hacerlo segun su algoritmo de optimización. Luego si quieres un orden determinado debes decirselo al motor para que lo tenga en cuenta en el momento en que analiza como servirte los datos de forma optima.

Finamente, por muchas consultas anidadas que tengas el ORDER BY lo puedes aplicar al final sobre la lista de campos que vaya a mostrasr la "super"query.

SELECT ...lista de campos...
FROM
...todas las subqueris que quieras...
ORDER BY ...lista de campos;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.