Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2010, 16:32
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Dudas stored procedures

Buenas,

UNA
Tengo algunas dudas sobre los stored procedures, a diferencia de los triggers que tengo claro que son "disparadores" los SP (stored procedures) son simples consultas SQL que se guardan en la propia base de datos y por tanto son más rápidas que ejecutar la consulta a "pelo"? se nota realmente la diferencia?

Segun la wiki
Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) el cual es almacenado físicamente en una base de datos. Su implementación varía de un manejador de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

DOS
He marcado en negrita lo que me interesa, el motor de la base de datos corre por separado de la web? en ese caso si tendría sentido los stored procedures, pero si corren en la misma máquina, dejaría de tenerlo?

TRES
Luego he leído que mysql soporta tanto stored procedures como triggers, correcto?

CUATRO
Y que para ejecutar los stored procedures de mysql en php se ha de trabajar con mysqli?

CINCO
La penúltima duda (tonta), los stored procedures pueden ser simples select's que devuelven información no? es que he visto varios stored procedures en mi trabajo que son bastante grandes, con inners joins entre tablas y tal, pero lo único que hacían era hacer un select gigante.

SEIS
¿Puede ser que la diferencia entre el stored procedured y las vistas (views) es que las vistas están creadas y son fijas y los stored procedures son dinámicos?

Muchas gracias de antemano!