Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones
Transact-SQL. Los procedimientos se asemejan a las construcciones de otros lenguajes
de programación, porque pueden:
 Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de
salida al programa que realiza la llamada.
 Contener instrucciones de programación que realicen operaciones en la base de
datos. Entre otras, pueden contener llamadas a otros procedimientos.
 Devolver un valor de estado a un programa que realiza una llamada para indicar si la
operación se ha realizado correctamente o se han producido errores, y el motivo de
DEFINICIÓN
 CREACIÓN: Utilice la instrucción CREATE PROCEDURE para
crearlos en la base de datos. Puede añadir hasta 32 niveles.
USE Northwind
GO
CREATE PROC dbo.OverdueOrders
AS
SELECT * FROM dbo.Orders WHERE RequiredDate
< GETDATE() AND ShippedDate IS Null
GO
 MODIFICACIÓN: Utilice la instrucción ALTER PROCEDURE. No
afecta a los procedimientos almacenados añadidos.
USE Northwind
GO
ALTER PROC dbo.OverdueOrders
AS
SELECT CONVERT(char(8), RequiredDate, 1)
RequiredDate, CONVERT(char(8), OrderDate, 1)
OrderDate, OrderID, CustomerID, EmployeeID
FROM Orders
WHERE RequiredDate < GETDATE() AND
ShippedDate IS Null
ORDER BY RequiredDate
GO
 ELIMINACIÓN: Ejecute el procedimiento almacenado
sp_depends para determinar si los objetos dependen del
procedimiento almacenado.
 ELIMINACIÓN: Ejecute el procedimiento almacenado
sp_depends para determinar si los objetos dependen del
procedimiento almacenado.
N
Los procedimientos almacenados no son nuevos en la industria de las bases de
datos, como referenciase tiene a ORACLE, que presentó PL/SQL 2. A la
publicación de este documento es MYSQL el más reciente poseedor de
procedimientos almacenados, esto invita a algunos expertos en la materia
a mencionar que con esta incorporación este DBMS ha llegado a su mayoría de
edad, aunque sin aventurarse a mencionar que pudiera ser una competencia
seria para los grandes en esta rama como lo son ORACLE Y SQLSERVER. Los
procedimientos almacenados son una herramienta que todo desarrollador debe
tener en cuenta siempre, ya que proporcionan un rendimiento en términos de
velocidad e incrementan la seguridad en su sistema de base de datos, es por ello
que su empleo en los diferentes proyectos incrementa localidad del desarrollo de
software.
RECOMENDACIONES
 El usuario debe ser el propietario de todos los procedimientos almacenados.
 Un procedimiento almacenado por tarea debe de crear, probar y solucionar
problemas.
 Evite sp_Prefix en los nombres de procedimientos almacenados.
 Utilice la misma configuración de conexión para todos los procedimientos
almacenados.
 Reduzca al mínimo la utilización de procedimientos almacenados temporales.
 No elimine nunca directamente las entradas de Syscomments.
CONCLUSIÓN
 La ejecución de un procedimiento almacenado con el prefijo "sp_"
hace que MS SQL Server siempre busque primeramente el
procedimiento almacenado en el caché de procedimientos
almacenados en la base de datos master, lo cual no se refleja con
herramientas que permiten la ejecución de T-SQL. La utilización
del prefijo "sp_" hace que MS SQL Server trabaje con los
procedimientos almacenados de forma similar al modo que debe
trabajar cuando no hay más memoria disponible en el servidor y no
puede agregar nuevas entradas al caché, por lo cual debe
recompilar continuamente todos los procedimientos almacenados
que se ejecuten.
APRECIACIÓN DE EQUIPO
 Los SP en general, serán realmente útiles (y aplicables) en caso
de estar desarrollando aplicaciones robustas, de categoría
empresarial, o para servicios que deben ser seguros, que posean
alta disponibilidad y con vistas a ser escalables.
 Lo más importante de todo, los procedimientos almacenados
SIEMPRE serán más rápidos que una consulta externa. Si no lo
son, es por dos motivos: No puedes escribir procedimientos
almacenados, y El gestor de base de datos que estas usando es
deficiente.
PROCEDIMIENTOS ALMACENADOS

PROCEDIMIENTOS ALMACENADOS

  • 2.
    Un procedimiento almacenadode SQL Server es un grupo de una o varias instrucciones Transact-SQL. Los procedimientos se asemejan a las construcciones de otros lenguajes de programación, porque pueden:  Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al programa que realiza la llamada.  Contener instrucciones de programación que realicen operaciones en la base de datos. Entre otras, pueden contener llamadas a otros procedimientos.  Devolver un valor de estado a un programa que realiza una llamada para indicar si la operación se ha realizado correctamente o se han producido errores, y el motivo de DEFINICIÓN
  • 4.
     CREACIÓN: Utilicela instrucción CREATE PROCEDURE para crearlos en la base de datos. Puede añadir hasta 32 niveles. USE Northwind GO CREATE PROC dbo.OverdueOrders AS SELECT * FROM dbo.Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null GO
  • 5.
     MODIFICACIÓN: Utilicela instrucción ALTER PROCEDURE. No afecta a los procedimientos almacenados añadidos. USE Northwind GO ALTER PROC dbo.OverdueOrders AS SELECT CONVERT(char(8), RequiredDate, 1) RequiredDate, CONVERT(char(8), OrderDate, 1) OrderDate, OrderID, CustomerID, EmployeeID FROM Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null ORDER BY RequiredDate GO
  • 6.
     ELIMINACIÓN: Ejecuteel procedimiento almacenado sp_depends para determinar si los objetos dependen del procedimiento almacenado.
  • 7.
     ELIMINACIÓN: Ejecuteel procedimiento almacenado sp_depends para determinar si los objetos dependen del procedimiento almacenado.
  • 8.
    N Los procedimientos almacenadosno son nuevos en la industria de las bases de datos, como referenciase tiene a ORACLE, que presentó PL/SQL 2. A la publicación de este documento es MYSQL el más reciente poseedor de procedimientos almacenados, esto invita a algunos expertos en la materia a mencionar que con esta incorporación este DBMS ha llegado a su mayoría de edad, aunque sin aventurarse a mencionar que pudiera ser una competencia seria para los grandes en esta rama como lo son ORACLE Y SQLSERVER. Los procedimientos almacenados son una herramienta que todo desarrollador debe tener en cuenta siempre, ya que proporcionan un rendimiento en términos de velocidad e incrementan la seguridad en su sistema de base de datos, es por ello que su empleo en los diferentes proyectos incrementa localidad del desarrollo de software.
  • 9.
    RECOMENDACIONES  El usuariodebe ser el propietario de todos los procedimientos almacenados.  Un procedimiento almacenado por tarea debe de crear, probar y solucionar problemas.  Evite sp_Prefix en los nombres de procedimientos almacenados.  Utilice la misma configuración de conexión para todos los procedimientos almacenados.  Reduzca al mínimo la utilización de procedimientos almacenados temporales.  No elimine nunca directamente las entradas de Syscomments.
  • 10.
    CONCLUSIÓN  La ejecuciónde un procedimiento almacenado con el prefijo "sp_" hace que MS SQL Server siempre busque primeramente el procedimiento almacenado en el caché de procedimientos almacenados en la base de datos master, lo cual no se refleja con herramientas que permiten la ejecución de T-SQL. La utilización del prefijo "sp_" hace que MS SQL Server trabaje con los procedimientos almacenados de forma similar al modo que debe trabajar cuando no hay más memoria disponible en el servidor y no puede agregar nuevas entradas al caché, por lo cual debe recompilar continuamente todos los procedimientos almacenados que se ejecuten.
  • 11.
    APRECIACIÓN DE EQUIPO Los SP en general, serán realmente útiles (y aplicables) en caso de estar desarrollando aplicaciones robustas, de categoría empresarial, o para servicios que deben ser seguros, que posean alta disponibilidad y con vistas a ser escalables.  Lo más importante de todo, los procedimientos almacenados SIEMPRE serán más rápidos que una consulta externa. Si no lo son, es por dos motivos: No puedes escribir procedimientos almacenados, y El gestor de base de datos que estas usando es deficiente.