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

#6 Eduardo
26/04/2008 - 19:27 | Informe spam
Depende de cuantos registros lleves a la aplicacion. Ejemplo si es para un
reporte yo creo que es mejor que vengan ordenados ya.

"Maxi Accotto" escribió en el mensaje
news: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
#7 Jhonny Vargas P.
26/04/2008 - 20:09 | Informe spam
"Alfredo Novoa" escribió en el mensaje de
noticias:1893c18i4dj63$
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.



Exacto... claro que viene todo un tema de índices que hay de por medio...



¿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.



Que lamentable tu expresión sobre un gran valor de este foro...
independiente de que puedas tener discrepancias en el uso de algunas cosas,
realmente valora la colaboración y sin duda el conocimiento que tiene de SQL
Server... por mi parte he aprendido muchísimo...



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



Tienes varias formas... yo utilizo tablas temporales, ya que aún tengo
servidores en SQL Server 2000


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.




Para el caso que puse.


PD: sin ánimos de causar polémica... solo de entregar conocimiento...


Saludos,
Jhonny Vargas P.
http://msmvps.com/jvargas
Santiago de Chile
Respuesta Responder a este mensaje
#8 Alfredo Novoa
26/04/2008 - 22:49 | Informe spam
El Sat, 26 Apr 2008 14:09:08 -0400, Jhonny Vargas P. escribió:

Que lamentable tu expresión sobre un gran valor de este foro...
independiente de que puedas tener discrepancias en el uso de algunas cosas,
realmente valora la colaboración y sin duda el conocimiento que tiene de SQL
Server... por mi parte he aprendido muchísimo...



Bueno, si tu lo dices será cierto, yo solo le conozco de un par de
colaboraciones poco afortunadas que ha hecho los últimos días.


Saludos
Respuesta Responder a este mensaje
#9 Maxi Accotto
28/04/2008 - 00:29 | Informe spam
Jonhy, es cierto, pero yo la paginacion la pondria en otra capa :-) pero
tienes razon, no es en todos los casos aplicable, la paginacion es uno de
ellos, pero el resto habria que estudiarlo :-)


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Jhonny Vargas P." escribió en el mensaje
de noticias:
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
#10 Maxi Accotto
28/04/2008 - 00:34 | Informe spam
mm, para que? ordenalos en el reporte, sera mas eficiente, ahora si vas a
usar paginacion la cosa cambia!

Hace una prueba, fijate el plan de ejecucion de una query con order by y sin
order by y saca tus propias conclusiones.

Lo que quiero decir es que antes de poner un order by en un SP o una query
se analice bien eso y no se ponga porque si, cuando tienes millones de
registros esto te puede jugar encontra nomas , solo eso!


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Eduardo" escribió en el mensaje de
noticias:#
Depende de cuantos registros lleves a la aplicacion. Ejemplo si es para
un reporte yo creo que es mejor que vengan ordenados ya.

"Maxi Accotto" escribió en el mensaje
news: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
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida