Sobre un SP

25/04/2008 - 22:02 por Penta | Informe spam
Estimados.
Utilizo SS2000 SP4

Si quisera ordenar un recordset por el campos A o por campo B o por
campo C.

Que es mejor copiar la consulta 3 veces y cada una ordenada por el
campo en cuestion y mostrar el Select que que corresponda ??

O
Hacer 3 SP ??


Esto dado que en cada Select ordenado se hacen operaciones distintas
en el select, por poner un ejemplo una suma otra da el promedio.

Atte.
Penta.

Preguntas similare

Leer las respuestas

#1 Maxi Accotto
25/04/2008 - 22:11 | Informe spam
Lo mejor seria, que en el SP no uses ordenamiento de ningun tipo y que esa
operacion la hagas en otra capa, por lo general hacer un order by en SQL no
tiene mucho sentido en varios procesos de traida de datos y muestra al
usuario, lo bueno seria hacer el select dentro del SP y en tu capa mas
arriba ordenas, es mucho mas eficiente y menos complejo.



Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Penta" escribió en el mensaje de
noticias:
Estimados.
Utilizo SS2000 SP4

Si quisera ordenar un recordset por el campos A o por campo B o por
campo C.

Que es mejor copiar la consulta 3 veces y cada una ordenada por el
campo en cuestion y mostrar el Select que que corresponda ??

O
Hacer 3 SP ??


Esto dado que en cada Select ordenado se hacen operaciones distintas
en el select, por poner un ejemplo una suma otra da el promedio.

Atte.
Penta.
Respuesta Responder a este mensaje
#2 Penta
25/04/2008 - 22:59 | Informe spam
En cuanto a la capa mas arriba seria la aplicacion ?? o sea al lado
del cliente ??

Mil Gracias por sus comentarios.
Penta.
Respuesta Responder a este mensaje
#3 Maxi Accotto
25/04/2008 - 23:08 | Informe spam
Exacto!


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Penta" escribió en el mensaje de
noticias:
En cuanto a la capa mas arriba seria la aplicacion ?? o sea al lado
del cliente ??

Mil Gracias por sus comentarios.
Penta.
Respuesta Responder a este mensaje
#4 Jhonny Vargas P.
26/04/2008 - 18:23 | Informe spam
Hummmm... cuestiono un poco este punto y dependerá del uso que necesites los
datos.

Si tienes por ejemplo una página aspx y necesitas buscar un conjunto de
valores "paginados"... y quieres ordenar por "nombre"...

Con lo que dices... tendríamos que enviar "todo el conjunto de datos" a la
capa que hace el llamado, ordenar y paginar.

¿Para que voy a devolver la gran cantidad de registros a la capa que me hace
el llamado si solo necesito "x" registros por página?

No es más simple:
Buscar - Ordenar, Paginar y Devolver solo los "x" registros de la página
los datos están en el mismo servidor y no estás enviando información que no
requieres a otra capa.. que puede ser otro servidor distinto...


Saludos,
Jhonny Vargas P.
http://msmvps.com/jvargas
Santiago de Chile

"Maxi Accotto" escribió en el mensaje de
noticias:e3F$
Lo mejor seria, que en el SP no uses ordenamiento de ningun tipo y que esa
operacion la hagas en otra capa, por lo general hacer un order by en SQL
no tiene mucho sentido en varios procesos de traida de datos y muestra al
usuario, lo bueno seria hacer el select dentro del SP y en tu capa mas
arriba ordenas, es mucho mas eficiente y menos complejo.



Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Penta" escribió en el mensaje de
noticias:
Estimados.
Utilizo SS2000 SP4

Si quisera ordenar un recordset por el campos A o por campo B o por
campo C.

Que es mejor copiar la consulta 3 veces y cada una ordenada por el
campo en cuestion y mostrar el Select que que corresponda ??

O
Hacer 3 SP ??


Esto dado que en cada Select ordenado se hacen operaciones distintas
en el select, por poner un ejemplo una suma otra da el promedio.

Atte.
Penta.



Respuesta Responder a este mensaje
#5 Alfredo Novoa
26/04/2008 - 18:41 | Informe spam
El Sat, 26 Apr 2008 12:23:31 -0400, Jhonny Vargas P. escribió:

Con lo que dices... tendríamos que enviar "todo el conjunto de datos" a la
capa que hace el llamado, ordenar y paginar.



Si, imagínate hacer esto con una tabla con un millón de registros en un
servidor distinto. Sería un disparate.

¿Para que voy a devolver la gran cantidad de registros a la capa que me hace
el llamado si solo necesito "x" registros por página?



Por que la religión de Maxi le prohibe hacer consultas desde las
aplicaciones, y contra la fe no hay razón que valga.

Pero los demás podemos usar una consulta con ROW_NUMBER() para automatizar
la paginación.

No es más simple:
Buscar - Ordenar, Paginar y Devolver solo los "x" registros de la página
los datos están en el mismo servidor y no estás enviando información que no
requieres a otra capa.. que puede ser otro servidor distinto...



Evidentemete si es más simple.


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