31/01/2012, 02:43
|
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. |