Stored procedures

Phatality

Hola tetes,

Siendo usuario de una base de datos (no DBA) y sin pretender hacer mantenimiento de la base de datos, ¿Le veis alguna utilidad a las stored procedures de MySQL (no sé cómo se llaman en otros RDBMS) que no pueda hacer un script de php/python/whatever llamando a una query y manipulando el result set en un script?

Me refiero a esto--> https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-stored-procedures.html

QuitCat

#1 Todo esto que voy a poner son impresiones mias o cosas que me suena haber leído, puedo estar equivocado.
-Es más rápido si se ejecuta desde procedimiento almacenado que como tú dices
-Aún así está diferencia es cada menos significativa
-Me parece más cómodo para cosas complejas usar procedimientos almacenados

willy_chaos

Diria que la gracia es que juntandolo con los triggers, efectuar ciertas acciones cuando suceda un evento. Y que quede todo en la base de datos.

Porque por ejemplo, si quisieras ejecutar un cuenteo + actualizacion de una tabla + pon random cosas aqui, cuando un usuario se registra, tendrias que hacer las llamadas desde el php/python/java {... lenguaje con el que te conectes ...}

Con el stored procedure, entiendo que tambien te ahorras la parte de envio de datos por socket al servidor que supongo que aumenta el rendimiento (aunque a estas alturas, eso debe ser minimo)

1 respuesta
B

Depende de la complejidad de la DB, consultas por minuto, ... Pero en cosas grandes los procedimientos almacenados son básicos y totalmente necesarios para poder optimizar las consultas y facilitar la vida al desarrollador.

Kiroushi

#1 Es un proceso clave para separar la lógica del frontend del backend.

1 respuesta
DarkSoldier

#5 ? desde cuando el stored procedure separa frontend de backend?

1 respuesta
Kiroushi

#6 No he dicho que un stored procedure separe el frontend del backend, he dicho que en proceso clave para la separación.

Front (POST datos) -> Back (Transformación de datos -> Escribir sentencia SQL) -> BDD

Puede ser reescrito como:

Front (POST datos) -> Back (Llamada a stored procedure) -> BDD

La transformación en vez de hacerla en el front o el backend puedes hacerla directamente en la BDD. De hecho, habrá muchas empresas donde la manipulación de inserciones se haga a nivel de motor y no en el backend. Ahí donde no te dejarán ni tocar.

Tal vez no he usado las mejores palabras, pero la idea es obvia.

1 respuesta
BLZKZ

#3 no solo para eso, con el programador, lanzar ciertos procedimientos nocturnos en aplicaciones tochas.

1
QuitCat

#7 Donde he estado yo haciendo prácticas, un 95% de las operaciones con bases de datos se hacía mediante procedimientos almacenados.

Usuarios habituales