pregunta facil, ¿no?
select * from tal; <---- (usado desde un programa en java)
| |||
Respuesta: por defecto, ¿en que orden devuelve filas? Yo lo diria así: si no indicas tu un orden en el ORDER BY NADA te garantiza obtener los registros en algun orden. Incluso una misma query puede dar ordenes distintos en ejecuciones repetidas, especialmente si se han producido cambios en el disco del sevidor, no forzosamente relacionados con los datos que consultas. El motor de bbdd prioriza la velocidad de respuesta, luego si no indicas en que orden quieres los datos los retorna lo mas rapido que puede, es decir retorna primero los primeros que encuentra y sucesivamente.
__________________ Quim -------------------------------------------------- Ayudar a ayudar es una buena práctica!!! Y da buenos resultados. |
| |||
Respuesta: por defecto, ¿en que orden devuelve filas? Cita: ¿quieres decir que en resumen los devuelve aleatoriamente (como minimo, la 1ª vez)?
Iniciado por quimfv Yo lo diria así: si no indicas tu un orden en el ORDER BY NADA te garantiza obtener los registros en algun orden. Incluso una misma query puede dar ordenes distintos en ejecuciones repetidas, especialmente si se han producido cambios en el disco del sevidor, no forzosamente relacionados con los datos que consultas. El motor de bbdd prioriza la velocidad de respuesta, luego si no indicas en que orden quieres los datos los retorna lo mas rapido que puede, es decir retorna primero los primeros que encuentra y sucesivamente. PD: mi PK en mi BD es un tipo VARCHAR |
| ||||
Respuesta: por defecto, ¿en que orden devuelve filas? Ni, como ya te dije yo, en ese caso aplica la clave primaria, porque esta define el orden físico en que los registros se almacenan en los discos.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: por defecto, ¿en que orden devuelve filas? Cita: Aleatoriamente no, los retorna como más rápido los pueda leer, en función de donde/como esten guardados en el disco. Como sabrás la localizacón fisica de la información en el disco no es fija, depende del sistema operativo y este usa algoritmos de optimización para aprovechar el disco. Luego dos ejecuciones de la misa query pueden generar ordenes distintos si entre una y otra ha habido cambios en el disco que asi lo provoquen.¿quieres decir que en resumen los devuelve aleatoriamente (como minimo, la 1ª vez)? SQL es un lenguage declarativo, dices lo que quieres y el motor optimiza la forma de dartelo, para ello decide las operaciones que debe realizar para conseguirlo. Luego si no dices en que orden quieres los datos el motor los retorna lo más rápido que puede, para que se va a entretener en hacer algo que no le has pedido. (Lenguage declarativo se confronta a los lenguages imperativos donde dices lo que hay que hacer para obtener lo que quieres).
__________________ Quim -------------------------------------------------- Ayudar a ayudar es una buena práctica!!! Y da buenos resultados. Última edición por quimfv; 30/09/2013 a las 07:31 |
Etiquetas: |