Re: Resumen de correo con resúmenes de improve-your-code@googlegroups.com - 2 actualizaciones en 1 tema

3 views
Skip to first unread message

Ramiro Juarez

unread,
Apr 4, 2017, 3:42:53 PM4/4/17
to improve-...@googlegroups.com
Hola Carlos Osoria,

   Permiteme participar en esta platica con lo siguiente:
1. Tienes razon al descontento de que los argumentos del grupo de administradores son algo flojos o no bien explicados
2. Yo tambien he programado en C#, y creeeme que no soy partidiario de "SQL Plain Queries" en el codigo fuente, no es una buena practica
3. Es mejor llamar una API, usando JSON en la cual por un metodo POST o GET obtienes tu recordset de manera transparente
4. En el caso de que no sea una aplicacion WEB, las llamadas a Stored Proc, son la mejor via.

Respecto a los IF ... eso que comentas que hacen los progranadores de SQL, se llama LAZYNESS (flojera)
porque?
Porque es mas facil llamar a un procedimieto ya hecho por una funcion que volver a crear el codigo...
Contra: aja y la reusabilidad ? ... recurre a la modularizacion Packages (en Oracle si, pero en SQL Server?)

En SQL server no es posible tener packages, pero se puede simular creando un schema dedicated user "Sales" por ejemplo contiene todas las funciones y procedimientos para el bussines logic de "Sales".

En terminos practicos, nunguna llamada anidada, debe superar el nivel 3 ... para evitar el spaguetti code.
es decir, ejemplo:

IF sales_amout < 30000 and period  = "monthly" THEN --(nivel 1)
   EXEC sp_lowsalesmarge(id_user);
...
dentro de "sp_lowsalesmarge"

If id_user <> "el Lamebotas" then --(Nivel 2)
  EXEC sp_awarebossLowPerformanceof(id_user)

...
dentro de "sp_awarebossLowPerformanceof"

  IF id_user = "La chica mas sexy" then --(nivel 3)
    Exec  Forgive_SalesPerson(id_user)
  Else
    Exec Send_WarningToSalesPerson(id_user )

...dentro de "Send_WarningToSalesPerson(id_user)"

IF id_user = "Godinez" and warnings_received > 3 then --nivel (4)
  exec kick_agent(id_iser)

----------- (espero que hayan disfrutado el ejemplo)

Si el citado ejemplo es la manera de programar de los Administradores ... ufff... pobres de ellos, olvidate, solo enviales el warning cuando su codigo no de la informacion correcta.

...

Tu como programador de .NET application, solo debes preocuparte por la representacion de los datos y que ellos (los DBA)se arreglen con la logica interna

Los procedimientos al estar COMPILADOS, corren mas rapido que queries que el DBMS tiene que interpretar y crear el plan de ejecucion por cada invocacion, eso es cierto!.

Pero el performance es algo con lo que los DBA deben lidiar, creando la mejor estructura de datos (digase Tablas o vistas almacenadas), Indices, referencias y triggers.

Saludos cordiales a todos :)

El 15 de marzo de 2017, 9:29, <improve-...@googlegroups.com> escribió:
Yoel de la Noval <yno...@gmail.com>: Mar 14 02:35PM

Martes a primera hora, tarea para el Kaki: escribir sobre un tema cosas así
:)
 
Thanks, espero nos podamos ver la próxima vez que este por allá
 
Un abrazon
Yoel.
 
 
 
El mar., 14 mar. ...más
"Carlos A. Osoria" <carlos...@gmail.com>: Mar 14 09:58AM -0500

Hola a todos
 
Muchas gracias por las respuestas, ahora comprendo mucho mejor. Por aca no
te dan respuesta tan claras y completas. Especialmente por la division que
existe entre los teams.
...más
Has recibido este resumen porque estás suscrito a las actualizaciones de este grupo. Puedes modificar la configuración en la página de pertenencia al grupo.
Para cancelar la suscripción a este grupo y dejar de recibir correos electrónicos, envía un correo electrónico a improve-your-code+unsubscribe@googlegroups.com.

Carlos A. Osoria

unread,
Apr 4, 2017, 4:32:51 PM4/4/17
to improve-...@googlegroups.com
Hola Ramiro 

Muchas gracias por la explicacion, luego de todas las explicaciones me ha quedado mucho mas claro estos temas. 

Creo que mi poco conocimiento sobre como funciona SQL Server unido a la desconeccion que existe por aca entre el grupo de los DBA y los Developers es quizas lo mas frustrante. 

Muchas Gracias a todos una vez mas ;) 

Saludos
Carlos



El 15 de marzo de 2017, 9:29, <improve-your-code@googlegroups.com> escribió:
Yoel de la Noval <yno...@gmail.com>: Mar 14 02:35PM

Martes a primera hora, tarea para el Kaki: escribir sobre un tema cosas así
:)
 
Thanks, espero nos podamos ver la próxima vez que este por allá
 
Un abrazon
Yoel.
 
 
 
El mar., 14 mar. ...más
"Carlos A. Osoria" <carlos...@gmail.com>: Mar 14 09:58AM -0500

Hola a todos
 
Muchas gracias por las respuestas, ahora comprendo mucho mejor. Por aca no
te dan respuesta tan claras y completas. Especialmente por la division que
existe entre los teams.
...más
Has recibido este resumen porque estás suscrito a las actualizaciones de este grupo. Puedes modificar la configuración en la página de pertenencia al grupo.
Para cancelar la suscripción a este grupo y dejar de recibir correos electrónicos, envía un correo electrónico a improve-your-code+unsubscribe@googlegroups.com.

--

---
Has recibido este mensaje porque estás suscrito al grupo "Improve your code" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a improve-your-code+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--

Eng. Carlos A. Osoria.
carlos...@gmail.com

qbantek

unread,
Apr 4, 2017, 5:06:02 PM4/4/17
to improve-...@googlegroups.com
Las respuestas absolutas son peligrosas, voy a dejar este link por aqui:


Los SP tienen ventajas adicionales (security granularity por ejemplo), pero el performance ya no es necesariamente una de ellas, al menos no en las ultimas versiones de SQL Server.

En lo personal, yo soy partidario de usar SP cuando se justifique y no tengo issues con mantener logica en la base de datos, entre otras cosas, porque el SQL es un lenguaje bastante familiar para mi y se me hace mas sencillo implementar procedimientos complejos directamente en la base de datos que tratar de obtener los mismos resultados desde una applicacion externa, PERO la tendencia 'actual' apunta mas a usar ORMs.

Hay argumentos validos de los dos bandos (ORM/SP), pero creo que es valido tener conocimiento y comprender SQL para evitar problemas de perfomance. El uso de ORMs solo para evitar comprender como funciona la base de datos es un camino directo al fracaso :)

Saludos,
Erich
Reply all
Reply to author
Forward
0 new messages