Orden de registros sin Order By

29/12/2004 - 22:42 por Jose | Informe spam
Si yo tengo un SELECT SIN la cláusula ORDER BY sobre una tabla (una sola)
que tiene una clave primaria clustered, se espera que los registros
seleccionados se muestren SIEMPRE en el orden de la clave primaria ?

ej. SELECT * FROM MITABLA

Preguntas similare

Leer las respuestas

#6 Maxi
30/12/2004 - 13:13 | Informe spam
Tienes razon


Salu2
Maxi


"Salvador Ramos" escribió en el
mensaje news:
Maxi una pequeña puntualización :-)
En la mayoría de los casos saldrán por el indice cluster, es más puedes
hacer un montón de pruebas y que en todas ellas lo utilice. Pero nada te
garantiza total y absolutamente que siempre, y sin excepción, te salgan
por ese orden, si lo quieres garantizar debes añadir el ORDER BY.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"MAXI" escribió en el mensaje
news:
Jose, el orden sera del indice Cluster, veamos un ejemplo

==>>
use northwind
go

create table m_prueba (id int identity, nombre varchar(50), pais
varchar(100))
go

insert into m_prueba (nombre,pais) values ('Maxi','Arg')
insert into m_prueba (nombre,pais) values ('Aragon','USA')
insert into m_prueba (nombre,pais) values ('Carlos','España')
insert into m_prueba (nombre,pais) values ('Miguel','España')

/* aca vemos que el orden es como se han ingresado los registros */

select * from m_prueba

go

create clustered index m_index on m_prueba(nombre)

/* Aca vemos que ordeno por el indice Cluster */

select * from m_prueba

>>
Suerte




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

Msn Messenger:

"Jose" escribió en el mensaje
news:
Si yo tengo un SELECT SIN la cláusula ORDER BY sobre una tabla (una
sola)
que tiene una clave primaria clustered, se espera que los registros
seleccionados se muestren SIEMPRE en el orden de la clave primaria ?

ej. SELECT * FROM MITABLA











Respuesta Responder a este mensaje
#7 Eladio Rincón
30/12/2004 - 13:26 | Informe spam
¿estaba indexada la columna(s) del order by?

Eladio Rincón
SQL Server MVP
http://www.siquelnet.com

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Maxi" wrote in message
news:
Hola, a mi me paso lo mismo justamente ayer con la optimizacion de una


Query
:( tuve que mandarlo sin el order by y ordenar en el cliente ya que la
operacion Order By me consumia mucho :(


Salu2
Maxi


"Eladio Rincón" escribió en el mensaje
news:
> Hola qwalgrande :-)
>
> estoy de acuerdo con tu comentario; sólo quería decir que en alguna
> ocasión
> me he visto con problemas de rendimiento a la hora de ordenar los
> registros
> y he decidido recuperar la consulta sin ORDER BY, y realizar la


ordenación
> en el cliente: Dataset-->DataView; conseguía descargar al servidor de la
> ordenación y le hacía trabajar un poco a la memoria del cliente.
>
> Es un caso puntual aplicable en un caso que no tenía indexada la columna
> de
> la ordenación; tan sólo quería saber si alguien ha recurrido a esto en
> alguna ocasión
>
>
> Eladio Rincón
> SQL Server MVP
> http://www.siquelnet.com
>
> Solid Quality Learning (http://www.solidqualitylearning.com)
> "Comparte lo que sabes, aprende lo que no sepas", FGG
>
> Consulte el histórico del grupo en Google
> http://groups.google.com/groups?gro....sqlserver
>
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "qwalgrande" <qwalgrande*nospam*@yahoo.es> wrote in message
> news:
>> Hola.
>>
>> Si no pones order by, nada te garantiza que los registros queden
> ordenados.
>> Es posible que salgan ordenados por el índice clustered, es decir, tal


y
> como
>> están físicamente los registros, pero nada te lo asegura. En la


práctica
> es
>> improbable que se te dé el caso de que lances la misma consulta varias
> veces
>> y cada vez la ordene de forma diferente, pero si quieres asegurarte de
>> que
>> los registros salen ordenados, es decir, si el orden tiene una
>> importancia
> en
>> el negocio que quieras solventar con la consulta, usa "ORDER BY".
>>
>> qwalgrande
>>
>> "Jose" wrote:
>>
>> > Si yo tengo un SELECT SIN la cláusula ORDER BY sobre una tabla (una
> sola)
>> > que tiene una clave primaria clustered, se espera que los registros
>> > seleccionados se muestren SIEMPRE en el orden de la clave primaria ?
>> >
>> > ej. SELECT * FROM MITABLA
>> >
>> >
>> >
>> >
>
>


Respuesta Responder a este mensaje
#8 qwalgrande
30/12/2004 - 13:43 | Informe spam
Qué tal, Eladio:

Es por eso que le he comentado que si la ordenación es relevante y quiere
garantizarla, que le plante el "order by". Y lo de perder rendimiento con la
ordenación me ha pasado muchas veces, como tú mismo comentas, siempre que no
pase por el índice por el que filtras te va a penalizar seguro, aunque no sé
si más o menos que realizar la ordenación en el cliente. Pero también me ha
pasado lo contrario, es decir, para llevar al plan de ejecución por donde me
convenía (ya que el motor no parecía darse por aludido), usar "order by", en
lugar de la sugerencia de índice, que no es muy recomendable.

qwalgrande

"Eladio Rincón" wrote:

Hola qwalgrande :-)

estoy de acuerdo con tu comentario; sólo quería decir que en alguna ocasión
me he visto con problemas de rendimiento a la hora de ordenar los registros
y he decidido recuperar la consulta sin ORDER BY, y realizar la ordenación
en el cliente: Dataset-->DataView; conseguía descargar al servidor de la
ordenación y le hacía trabajar un poco a la memoria del cliente.

Es un caso puntual aplicable en un caso que no tenía indexada la columna de
la ordenación; tan sólo quería saber si alguien ha recurrido a esto en
alguna ocasión


Eladio Rincón
SQL Server MVP
http://www.siquelnet.com

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"qwalgrande" <qwalgrande*nospam*@yahoo.es> wrote in message
news:
> Hola.
>
> Si no pones order by, nada te garantiza que los registros queden
ordenados.
> Es posible que salgan ordenados por el índice clustered, es decir, tal y
como
> están físicamente los registros, pero nada te lo asegura. En la práctica
es
> improbable que se te dé el caso de que lances la misma consulta varias
veces
> y cada vez la ordene de forma diferente, pero si quieres asegurarte de que
> los registros salen ordenados, es decir, si el orden tiene una importancia
en
> el negocio que quieras solventar con la consulta, usa "ORDER BY".
>
> qwalgrande
>
> "Jose" wrote:
>
> > Si yo tengo un SELECT SIN la cláusula ORDER BY sobre una tabla (una
sola)
> > que tiene una clave primaria clustered, se espera que los registros
> > seleccionados se muestren SIEMPRE en el orden de la clave primaria ?
> >
> > ej. SELECT * FROM MITABLA
> >
> >
> >
> >



Respuesta Responder a este mensaje
#9 Maxi
30/12/2004 - 13:52 | Informe spam
Sip :(


Salu2
Maxi


"Eladio Rincón" escribió en el mensaje
news:
¿estaba indexada la columna(s) del order by?

Eladio Rincón
SQL Server MVP
http://www.siquelnet.com

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Maxi" wrote in message
news:
Hola, a mi me paso lo mismo justamente ayer con la optimizacion de una


Query
:( tuve que mandarlo sin el order by y ordenar en el cliente ya que la
operacion Order By me consumia mucho :(


Salu2
Maxi


"Eladio Rincón" escribió en el mensaje
news:
> Hola qwalgrande :-)
>
> estoy de acuerdo con tu comentario; sólo quería decir que en alguna
> ocasión
> me he visto con problemas de rendimiento a la hora de ordenar los
> registros
> y he decidido recuperar la consulta sin ORDER BY, y realizar la


ordenación
> en el cliente: Dataset-->DataView; conseguía descargar al servidor de
> la
> ordenación y le hacía trabajar un poco a la memoria del cliente.
>
> Es un caso puntual aplicable en un caso que no tenía indexada la
> columna
> de
> la ordenación; tan sólo quería saber si alguien ha recurrido a esto en
> alguna ocasión
>
>
> Eladio Rincón
> SQL Server MVP
> http://www.siquelnet.com
>
> Solid Quality Learning (http://www.solidqualitylearning.com)
> "Comparte lo que sabes, aprende lo que no sepas", FGG
>
> Consulte el histórico del grupo en Google
> http://groups.google.com/groups?gro....sqlserver
>
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "qwalgrande" <qwalgrande*nospam*@yahoo.es> wrote in message
> news:
>> Hola.
>>
>> Si no pones order by, nada te garantiza que los registros queden
> ordenados.
>> Es posible que salgan ordenados por el índice clustered, es decir, tal


y
> como
>> están físicamente los registros, pero nada te lo asegura. En la


práctica
> es
>> improbable que se te dé el caso de que lances la misma consulta varias
> veces
>> y cada vez la ordene de forma diferente, pero si quieres asegurarte de
>> que
>> los registros salen ordenados, es decir, si el orden tiene una
>> importancia
> en
>> el negocio que quieras solventar con la consulta, usa "ORDER BY".
>>
>> qwalgrande
>>
>> "Jose" wrote:
>>
>> > Si yo tengo un SELECT SIN la cláusula ORDER BY sobre una tabla (una
> sola)
>> > que tiene una clave primaria clustered, se espera que los registros
>> > seleccionados se muestren SIEMPRE en el orden de la clave primaria ?
>> >
>> > ej. SELECT * FROM MITABLA
>> >
>> >
>> >
>> >
>
>






Respuesta Responder a este mensaje
#10 Eladio Rincón
30/12/2004 - 14:12 | Informe spam
sería interesante ver el plan de ejecución, tablas, índices...

Eladio Rincón
SQL Server MVP

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Maxi" wrote in message
news:
Sip :(


Salu2
Maxi


"Eladio Rincón" escribió en el mensaje
news:
> ¿estaba indexada la columna(s) del order by?
>
> Eladio Rincón
> SQL Server MVP
> http://www.siquelnet.com
>
> Solid Quality Learning (http://www.solidqualitylearning.com)
> "Comparte lo que sabes, aprende lo que no sepas", FGG
>
> Consulte el histórico del grupo en Google
> http://groups.google.com/groups?gro....sqlserver
>
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "Maxi" wrote in message
> news:
>> Hola, a mi me paso lo mismo justamente ayer con la optimizacion de una
> Query
>> :( tuve que mandarlo sin el order by y ordenar en el cliente ya que la
>> operacion Order By me consumia mucho :(
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Eladio Rincón" escribió en el mensaje
>> news:
>> > Hola qwalgrande :-)
>> >
>> > estoy de acuerdo con tu comentario; sólo quería decir que en alguna
>> > ocasión
>> > me he visto con problemas de rendimiento a la hora de ordenar los
>> > registros
>> > y he decidido recuperar la consulta sin ORDER BY, y realizar la
> ordenación
>> > en el cliente: Dataset-->DataView; conseguía descargar al servidor de
>> > la
>> > ordenación y le hacía trabajar un poco a la memoria del cliente.
>> >
>> > Es un caso puntual aplicable en un caso que no tenía indexada la
>> > columna
>> > de
>> > la ordenación; tan sólo quería saber si alguien ha recurrido a esto


en
>> > alguna ocasión
>> >
>> >
>> > Eladio Rincón
>> > SQL Server MVP
>> > http://www.siquelnet.com
>> >
>> > Solid Quality Learning (http://www.solidqualitylearning.com)
>> > "Comparte lo que sabes, aprende lo que no sepas", FGG
>> >
>> > Consulte el histórico del grupo en Google
>> > http://groups.google.com/groups?gro....sqlserver
>> >
>> > ¿Te interesa participar en las reuniones
>> > del grupo de Usuarios de SQL-Server y .NET
>> > Se harán en levante de España, (Alicante o Murcia)?
>> >
>> > "qwalgrande" <qwalgrande*nospam*@yahoo.es> wrote in message
>> > news:
>> >> Hola.
>> >>
>> >> Si no pones order by, nada te garantiza que los registros queden
>> > ordenados.
>> >> Es posible que salgan ordenados por el índice clustered, es decir,


tal
> y
>> > como
>> >> están físicamente los registros, pero nada te lo asegura. En la
> práctica
>> > es
>> >> improbable que se te dé el caso de que lances la misma consulta


varias
>> > veces
>> >> y cada vez la ordene de forma diferente, pero si quieres asegurarte


de
>> >> que
>> >> los registros salen ordenados, es decir, si el orden tiene una
>> >> importancia
>> > en
>> >> el negocio que quieras solventar con la consulta, usa "ORDER BY".
>> >>
>> >> qwalgrande
>> >>
>> >> "Jose" wrote:
>> >>
>> >> > Si yo tengo un SELECT SIN la cláusula ORDER BY sobre una tabla


(una
>> > sola)
>> >> > que tiene una clave primaria clustered, se espera que los


registros
>> >> > seleccionados se muestren SIEMPRE en el orden de la clave primaria


?
>> >> >
>> >> > ej. SELECT * FROM MITABLA
>> >> >
>> >> >
>> >> >
>> >> >
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida