ADO.NET y procesos almacenados (Cont.)

 

Procedimientos almacenados.

Conjunto de comandos que pueden ser ejecutados directamente en el servidor, es decir, será ejecutado por el servidor de Base de Datos y no por el programa cliente que lo accede, permitiendo la ejecución de una acción o conjunto de acciones específicas.

 

Características.

Se almacenan en la propia Base de Datos y constituyen un objeto más dentro de esta. Tienden a mejorar el rendimiento de los sistemas producto a que reducen en intercambio entre cliente y servidor. Los procedimientos almacenados son reutilizables, de manera que los usuarios mediante la aplicación cliente no necesitan relanzar los comandos individuales, sino que pueden llamar el procedimiento para ejecutarlo en el servidor tantas veces como sea necesario.

 

Elementos de los procedimientos almacenados

Los procedimientos almacenados están compuestos por algunos de estos elementos:

·         Parámetros de entrada (pueden esperar parámetros)

·         Parámetros de salida (pueden devolver resultados)

·         Declaración de variables (puede usarse variables en su cuerpo)

·         Cuerpo del procedimiento (en su cuerpo se indican las acciones a realizar)

Tanto los parámetros de entrada como los de salida son opcionales. Podemos tener un procedimiento que no tenga parámetros de entrada, pero sí de salida y viceversa. Como todo buen programador sabe, los parámetros de entrada sirven para pasarle datos al procedimiento que necesita para llevar a cabo una acción determinada. Los parámetros de salida devuelven al programa cliente que ejecutó el procedimiento el resultado del mismo.

Los procedimientos almacenados permiten aprovechar los recursos del servidor, ahorrar tiempo creando consultas complejas desde el servidor y permiten interactuar con otros objetos, generadores, excepciones, tablas y vistas. Por lo tanto, es importante para todo desarrollador utilizarlos correctamente y saber todo lo que se puede hacer con ellos.

 

¿Para qué se utilizan?

Los procedimientos almacenados se utilizan para agrupar las instrucciones de T-SQL y cualquier lógica asociada necesaria para llevar a cabo una tarea.

¿Cómo se ejecutan?

Cuando un procedimiento almacenado es ejecutado por primera vez se compila, se crea y se guarda en memoria su plan de ejecución., luego SQL utiliza ese plan de ejecución cuando se vuelve a llamar al procedimiento sin volver a compilarlo nuevamente.

¿Qué nos proporcionan?

Nos proporcionan a nosotros los usuarios un acceso fácil a la base de datos, se puede tener acceso a la base de datos sin tener que conocer los detalles de la arquitectura de tablas -simplemente se ejecutan los procedimientos almacenados que llevan a cabo las tareas solicitadas.

Los procedimientos almacenados pueden aceptar datos de entrada, utilizar variables locales y devolver datos.

 

Tipos de Procedimientos Almacenados:

Procedimientos Almacenados del sistema, se utilizan para administrar el SQL Server y para mostrar información sobre base de datos y sobre usuarios.

Procedimientos almacenados Extendidos, son bibliotecas de vínculos dinámicos (dynamic-link libraries, DLLs) que SQL puede cargar y ejecutar de manera dinámica.

Procedimientos Almacenados sencillos definidos por el usuario, son los procedimientos creados por los usuarios y están personalizados para llevar a cabo la tarea deseada por el usuario.

 

Los procedimientos almacenados ofrecen ventajas importantes:

Rendimiento: al ser ejecutados por el motor de base de datos ofrecen un rendimiento inmejorable ya que no es necesario transportar datos a ninguna parte. Cualquier proceso externo tiene una penalidad de tiempo adicional dada por el transporte de datos.

Potencia: el lenguaje para procedimientos almacenados es muy potente. Permiten ejecutar operaciones complejas en pocos pasos ya que poseen un conjunto de instrucciones avanzado.

Centralización: al formar parte de la base de datos los procedimientos almacenados están en un lugar centralizado y pueden ser ejecutados por cualquier aplicación que tenga acceso a la misma.

 

Ejemplo en C#:






Comentarios