none
Consultas(query) vs Store Procedure RRS feed

  • Pregunta

  • Hola

    Quiero hacer una pregunta tecnica entre el uso de consultas de selección, como consultas para hacer un CRUD, ¿hay alguna diferencia de rendimiento en hacerlo en SP y hacerlo en una simple query?.

    Según mi punto de vista trabajar con querys tiene buen performace ya que hoy en día las computadoras tienen buena cantidad de RAM no habría nada de malo de usar una simple consulta y manejar la lógica de la aplicación en la capa de lógica, en vez de manejarlo en la base de datos.

    Según entiendo cuando se hace el uso de una consulta query de SQL o cualquier gestor de base de datos ya se guarda en la caché en el segundo uso ya sería mas rápido la ejecución de la query.

    Alguna opinión sera bienvenida.

    Saludos!




    miércoles, 18 de abril de 2018 14:20

Respuestas

  • Hola JulianSanchez:

    Las consultas contenidas en un procedimiento almacenado, salvo problemas, específicos, siempre serán más rápidas y mejores que una consulta fuera.

    El Motor no tiene que analizar semánticamente la misma, pues ya lo hizo cuando creaste el procedure.

    En función de lo que haga, es probable, que cuando las uses tenga un plan de ejecución mucho más molón que si no lo haces.

    Además la evitas la inyección de código.

    Y algo que también es importante, los errores que cometemos al programar, al hacer los querys sea en la capa que sea, ya que el procedimiento lo chequeas, haces lo que sea trabajando contra el y luego, ya pasa a ser una cajita negra....

    Desde mi juicio, seguro que hay muchos más motivos, pero solo con estos, ya es suficiente, para ir tirando por esa vía.

    Saludos

    • Marcado como respuesta JulianSanchez miércoles, 18 de abril de 2018 16:36
    miércoles, 18 de abril de 2018 14:47

Todas las respuestas

  • Hola JulianSanchez:

    Las consultas contenidas en un procedimiento almacenado, salvo problemas, específicos, siempre serán más rápidas y mejores que una consulta fuera.

    El Motor no tiene que analizar semánticamente la misma, pues ya lo hizo cuando creaste el procedure.

    En función de lo que haga, es probable, que cuando las uses tenga un plan de ejecución mucho más molón que si no lo haces.

    Además la evitas la inyección de código.

    Y algo que también es importante, los errores que cometemos al programar, al hacer los querys sea en la capa que sea, ya que el procedimiento lo chequeas, haces lo que sea trabajando contra el y luego, ya pasa a ser una cajita negra....

    Desde mi juicio, seguro que hay muchos más motivos, pero solo con estos, ya es suficiente, para ir tirando por esa vía.

    Saludos

    • Marcado como respuesta JulianSanchez miércoles, 18 de abril de 2018 16:36
    miércoles, 18 de abril de 2018 14:47
  • Además de mi opinión, personal que ya te expuse.

    esta esto

    https://docs.microsoft.com/es-es/sql/relational-databases/stored-procedures/stored-procedures-database-engine

    Y aquí ya no firmo yo, esto es documentación oficial.

    Saludos

    miércoles, 18 de abril de 2018 14:48