SlideShare una empresa de Scribd logo
1 de 21
Implementación de
procedimientos
almacenados
Introducción



Introducción a los procedimientos almacenados



Creación, ejecución, modificación y eliminación de
procedimientos almacenados



Utilización de parámetros en los procedimientos
almacenados



Ejecución de procedimientos almacenados extendidos



Control de mensajes de error



Consideraciones acerca del rendimiento
 Introducción a los procedimientos almacenados



Definición de procedimientos almacenados



Procesamiento inicial de los procedimientos
almacenados



Procesamientos posteriores de los procedimientos
almacenados



Ventajas de los procedimientos almacenados
Definición de procedimientos almacenados



Colecciones con nombre de instrucciones Transact-SQL



Encapsulado de tareas repetitivas



Admiten cinco tipos (del sistema, locales, temporales,
remotos y extendidos)



Aceptar parámetros de entrada y devolver valores



Devolver valores de estado para indicar que se ha
ejecutado satisfactoriamente o se ha producido algún
error
Procesamiento inicial de los procedimientos
almacenados
Creación
Creación

Análisis
Análisis

Ejecución
Ejecución

Se almacena en las tablas
Se almacena en las tablas
sysobjects y syscomments
sysobjects y syscomments

Optimización
Optimización

(por primera vez
(por primera vez
o recompilación)
o recompilación)

Compilación
Compilación

El plan compilado se
El plan compilado se
coloca en la caché de
coloca en la caché de
procedimientos
procedimientos
Procesamientos posteriores de los procedimientos
almacenados
Plan de ejecución recuperado
Plan de consulta

Contexto de ejecución
Conexión 1

SELECT *
FROM
dbo.member
WHERE
member_no = ?

8082
Conexión 2

24
Conexión 3

1003

Plan sin usar se retira
Ventajas de los procedimientos almacenados



Compartir la lógica de la aplicación



Exposición de los detalles de las tablas de la
base de datos



Proporcionar mecanismos de seguridad



Mejorar el rendimiento



Reducir el tráfico de red
 Creación, ejecución y modificación de
procedimientos almacenados



Creación de procedimientos almacenados



Recomendaciones para la creación de procedimientos
almacenados



Ejecución de procedimientos almacenados



Modificación y eliminación de procedimientos
almacenados
Creación de procedimientos almacenados


Utilice la instrucción CREATE PROCEDURE para crearlos en la
base de datos activa

USE Northwind
GO
CREATE PROC dbo.OverdueOrders
AS
SELECT *
FROM dbo.Orders
WHERE RequiredDate < GETDATE() AND ShippedDate IS Null
GO



Puede anidar hasta 32 niveles



Use sp_help para mostrar información
Recomendaciones para la creación de
procedimientos almacenados


El usuario dbo debe ser el propietario de todos los
procedimientos almacenados



Un procedimiento almacenado por tarea



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
Ejecución de procedimientos almacenados


Ejecución de un procedimiento almacenado por
separado
EXEC OverdueOrders



Ejecución de un procedimiento almacenado en una
instrucción INSERT
INSERT INTO Customers
EXEC EmployeeCustomer
Alteración y eliminación de procedimientos
almacenados


Modificación de procedimientos almacenados


Incluya cualquiera de las opciones en ALTER PROCEDURE



No afecta a los procedimientos almacenados anidados

USE Northwind
USE Northwind
GO
GO
ALTER PROC dbo.OverdueOrders
ALTER PROC dbo.OverdueOrders
AS
AS
SELECT CONVERT(char(8), RequiredDate, 1) RequiredDate,
SELECT CONVERT(char(8), RequiredDate, 1) RequiredDate,
CONVERT(char(8), OrderDate, 1) OrderDate,
CONVERT(char(8), OrderDate, 1) OrderDate,
OrderID, CustomerID, EmployeeID
OrderID, CustomerID, EmployeeID
FROM Orders
FROM Orders
WHERE RequiredDate < GETDATE() AND ShippedDate IS Null
WHERE RequiredDate < GETDATE() AND ShippedDate IS Null
ORDER BY RequiredDate
ORDER BY RequiredDate
GO
GO


Eliminación de procedimientos almacenados



Ejecute el procedimiento almacenado sp_depends para determinar si
los objetos dependen del procedimiento almacenado
 Utilización de parámetros en los procedimientos
almacenados



Utilización de parámetros de entrada



Ejecución de procedimientos almacenados con
parámetros de entrada



Devolución de valores mediante parámetros de salida



Volver a compilar explícitamente procedimientos
almacenados
Utilización de parámetros de entrada


Valide primero todos los valores de los parámetros
de entrada



Proporcione los valores predeterminados apropiados
e incluya las comprobaciones de Null

CREATE PROCEDURE dbo.[Year to Year Sales]
CREATE PROCEDURE dbo.[Year to Year Sales]
@BeginningDate DateTime, @EndingDate DateTime
@BeginningDate DateTime, @EndingDate DateTime
AS
AS
IF @BeginningDate IS NULL OR @EndingDate IS NULL
IF @BeginningDate IS NULL OR @EndingDate IS NULL
BEGIN
BEGIN
RAISERROR('NULL values are not allowed', 14, 1)
RAISERROR('NULL values are not allowed', 14, 1)
RETURN
RETURN
END
END
SELECT O.ShippedDate,
SELECT O.ShippedDate,
O.OrderID,
O.OrderID,
OS.Subtotal,
OS.Subtotal,
DATENAME(yy,ShippedDate) AS Year
DATENAME(yy,ShippedDate) AS Year
FROM ORDERS O INNER JOIN [Order Subtotals] OS
FROM ORDERS O INNER JOIN [Order Subtotals] OS
ON O.OrderID = OS.OrderID
ON O.OrderID = OS.OrderID
WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate
WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate
GO
GO
Ejecución de procedimientos almacenados con
parámetros de entrada


Paso de valores por el nombre del parámetro
EXEC AddCustomer
EXEC AddCustomer
@CustomerID = 'ALFKI',
@CustomerID = 'ALFKI',
@ContactName = 'Maria Anders',
@ContactName = 'Maria Anders',
@CompanyName = 'Alfreds Futterkiste',
@CompanyName = 'Alfreds Futterkiste',
@ContactTitle = 'Sales Representative',
@ContactTitle = 'Sales Representative',
@Address = 'Obere Str. 57',
@Address = 'Obere Str. 57',
@City = 'Berlin',
@City = 'Berlin',
@PostalCode = '12209',
@PostalCode = '12209',
@Country = 'Germany',
@Country = 'Germany',
@Phone = '030-0074321'
@Phone = '030-0074321'



Paso de valores por posición
EXEC AddCustomer 'ALFKI2', 'Alfreds
EXEC AddCustomer 'ALFKI2', 'Alfreds
Futterkiste', 'Maria Anders', 'Sales
Futterkiste', 'Maria Anders', 'Sales
Representative', 'Obere Str. 57', 'Berlin',
Representative', 'Obere Str. 57', 'Berlin',
NULL, '12209', 'Germany', '030-0074321'
NULL, '12209', 'Germany', '030-0074321'
Devolución de valores mediante parámetros de salida

Creación del
Creación del
procedimiento
procedimiento
almacenado
almacenado

Ejecución del
Ejecución del
procedimiento
procedimiento
almacenado
almacenado
Resultados del
Resultados del
procedimiento
procedimiento
almacenado
almacenado

CREATE PROCEDURE dbo.mathtutor
CREATE PROCEDURE dbo.mathtutor
@m1 smallint,
@m1 smallint,
@m2 smallint,
@m2 smallint,
@result smallint OUTPUT
@result smallint OUTPUT
AS
AS
SET @result = @m1* @m2
SET @result = @m1* @m2
GO
GO
DECLARE @answer smallint
DECLARE @answer smallint
EXECUTE mathtutor 5, 6, @answer
EXECUTE mathtutor 5, 6, @answer
OUTPUT
OUTPUT
SELECT 'The result is: ' , @answer
SELECT 'The result is: ' , @answer

The result is: 30
The result is: 30
Volver a compilar explícitamente procedimientos
almacenados


Volver a compilar cuando




Se agrega un nuevo índice a una tabla subyacente





El procedimiento almacenado devuelve conjuntos de
resultados que varían considerablemente

El valor del parámetro es atípico

Volver a compilar mediante


CREATE PROCEDURE [WITH RECOMPILE]



EXECUTE [WITH RECOMPILE]



sp_recompile
Ejecución de procedimientos almacenados extendidos



Se programan con la API Servicios abiertos de datos



Pueden incluir características de C y C++



Pueden contener múltiples funciones



Se pueden llamar desde un cliente o desde SQL Server



Se pueden agregar sólo a la base de datos master

EXEC master..xp_cmdshell 'dir c:'
Control de mensajes de error


La instrucción RETURN sale incondicionalmente de una
consulta o procedimiento



sp_addmessage crea mensajes de error personalizados



@@error contiene el número de error de la instrucción
ejecutada más recientemente



Instrucción RAISERROR


Devuelve un mensaje de error del sistema definido por el
usuario



Establece un indicador del sistema para registrar un error
Demostración: Control de mensajes de error
Consideraciones acerca del rendimiento



Monitor de sistema de Windows 2000





Objeto: SQL Server: Administrador de caché
Objeto: Estadísticas de SQL

Analizador de SQL


Puede supervisar eventos



Puede probar cada instrucción en un procedimiento
almacenado

Más contenido relacionado

La actualidad más candente (20)

Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
Paradigmas de ingenieria del software
Paradigmas de ingenieria del softwareParadigmas de ingenieria del software
Paradigmas de ingenieria del software
 
ADO
ADOADO
ADO
 
ETL
ETLETL
ETL
 
10 sistemas gestores de base de datos
10 sistemas gestores de base de datos10 sistemas gestores de base de datos
10 sistemas gestores de base de datos
 
Vistas en SQL
Vistas en SQLVistas en SQL
Vistas en SQL
 
Estructuras de datos fundamentales
Estructuras de datos  fundamentalesEstructuras de datos  fundamentales
Estructuras de datos fundamentales
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
Ado net
Ado netAdo net
Ado net
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQL
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Presentacion PL/SQL
Presentacion PL/SQLPresentacion PL/SQL
Presentacion PL/SQL
 
Análisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemasAnálisis de sistemas fases del diseño de sistemas
Análisis de sistemas fases del diseño de sistemas
 

Destacado

Capa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenadosCapa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenadosUNACAR
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosbat1820
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosiluijo
 

Destacado (6)

Capa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenadosCapa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenados
 
Curso HTML 5 & jQuery - Leccion 4
Curso HTML 5 & jQuery - Leccion 4Curso HTML 5 & jQuery - Leccion 4
Curso HTML 5 & jQuery - Leccion 4
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Sql procedimientos-almacenados
Sql procedimientos-almacenadosSql procedimientos-almacenados
Sql procedimientos-almacenados
 
Taller Tablas Dinámicas Excel 2010
Taller Tablas Dinámicas Excel 2010Taller Tablas Dinámicas Excel 2010
Taller Tablas Dinámicas Excel 2010
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 

Similar a 7.1. procedimientos almacenados

7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenadosJorge Luis Lopez M
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenadoshirmaroxana13
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM Kamisutra
 
12 Guía_Fundamentos de Base de Datos.docx
12 Guía_Fundamentos de Base de Datos.docx12 Guía_Fundamentos de Base de Datos.docx
12 Guía_Fundamentos de Base de Datos.docxLeydyVeronicaDelgado
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosJosé Antonio Sandoval Acosta
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 

Similar a 7.1. procedimientos almacenados (20)

procedimientos almacenados
 procedimientos almacenados procedimientos almacenados
procedimientos almacenados
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
12 Guía_Fundamentos de Base de Datos.docx
12 Guía_Fundamentos de Base de Datos.docx12 Guía_Fundamentos de Base de Datos.docx
12 Guía_Fundamentos de Base de Datos.docx
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datos
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Preparedstatement
PreparedstatementPreparedstatement
Preparedstatement
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Pa
PaPa
Pa
 
Qué es SQL
Qué es SQL Qué es SQL
Qué es SQL
 
Sesión 6
Sesión 6Sesión 6
Sesión 6
 

Último

Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxpaogar2178
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...JoseMartinMalpartida1
 

Último (20)

Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 

7.1. procedimientos almacenados

  • 2. Introducción  Introducción a los procedimientos almacenados  Creación, ejecución, modificación y eliminación de procedimientos almacenados  Utilización de parámetros en los procedimientos almacenados  Ejecución de procedimientos almacenados extendidos  Control de mensajes de error  Consideraciones acerca del rendimiento
  • 3.  Introducción a los procedimientos almacenados  Definición de procedimientos almacenados  Procesamiento inicial de los procedimientos almacenados  Procesamientos posteriores de los procedimientos almacenados  Ventajas de los procedimientos almacenados
  • 4. Definición de procedimientos almacenados  Colecciones con nombre de instrucciones Transact-SQL  Encapsulado de tareas repetitivas  Admiten cinco tipos (del sistema, locales, temporales, remotos y extendidos)  Aceptar parámetros de entrada y devolver valores  Devolver valores de estado para indicar que se ha ejecutado satisfactoriamente o se ha producido algún error
  • 5. Procesamiento inicial de los procedimientos almacenados Creación Creación Análisis Análisis Ejecución Ejecución Se almacena en las tablas Se almacena en las tablas sysobjects y syscomments sysobjects y syscomments Optimización Optimización (por primera vez (por primera vez o recompilación) o recompilación) Compilación Compilación El plan compilado se El plan compilado se coloca en la caché de coloca en la caché de procedimientos procedimientos
  • 6. Procesamientos posteriores de los procedimientos almacenados Plan de ejecución recuperado Plan de consulta Contexto de ejecución Conexión 1 SELECT * FROM dbo.member WHERE member_no = ? 8082 Conexión 2 24 Conexión 3 1003 Plan sin usar se retira
  • 7. Ventajas de los procedimientos almacenados  Compartir la lógica de la aplicación  Exposición de los detalles de las tablas de la base de datos  Proporcionar mecanismos de seguridad  Mejorar el rendimiento  Reducir el tráfico de red
  • 8.  Creación, ejecución y modificación de procedimientos almacenados  Creación de procedimientos almacenados  Recomendaciones para la creación de procedimientos almacenados  Ejecución de procedimientos almacenados  Modificación y eliminación de procedimientos almacenados
  • 9. Creación de procedimientos almacenados  Utilice la instrucción CREATE PROCEDURE para crearlos en la base de datos activa USE Northwind GO CREATE PROC dbo.OverdueOrders AS SELECT * FROM dbo.Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null GO  Puede anidar hasta 32 niveles  Use sp_help para mostrar información
  • 10. Recomendaciones para la creación de procedimientos almacenados  El usuario dbo debe ser el propietario de todos los procedimientos almacenados  Un procedimiento almacenado por tarea  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
  • 11. Ejecución de procedimientos almacenados  Ejecución de un procedimiento almacenado por separado EXEC OverdueOrders  Ejecución de un procedimiento almacenado en una instrucción INSERT INSERT INTO Customers EXEC EmployeeCustomer
  • 12. Alteración y eliminación de procedimientos almacenados  Modificación de procedimientos almacenados  Incluya cualquiera de las opciones en ALTER PROCEDURE  No afecta a los procedimientos almacenados anidados USE Northwind USE Northwind GO GO ALTER PROC dbo.OverdueOrders ALTER PROC dbo.OverdueOrders AS AS SELECT CONVERT(char(8), RequiredDate, 1) RequiredDate, SELECT CONVERT(char(8), RequiredDate, 1) RequiredDate, CONVERT(char(8), OrderDate, 1) OrderDate, CONVERT(char(8), OrderDate, 1) OrderDate, OrderID, CustomerID, EmployeeID OrderID, CustomerID, EmployeeID FROM Orders FROM Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null WHERE RequiredDate < GETDATE() AND ShippedDate IS Null ORDER BY RequiredDate ORDER BY RequiredDate GO GO  Eliminación de procedimientos almacenados  Ejecute el procedimiento almacenado sp_depends para determinar si los objetos dependen del procedimiento almacenado
  • 13.  Utilización de parámetros en los procedimientos almacenados  Utilización de parámetros de entrada  Ejecución de procedimientos almacenados con parámetros de entrada  Devolución de valores mediante parámetros de salida  Volver a compilar explícitamente procedimientos almacenados
  • 14. Utilización de parámetros de entrada  Valide primero todos los valores de los parámetros de entrada  Proporcione los valores predeterminados apropiados e incluya las comprobaciones de Null CREATE PROCEDURE dbo.[Year to Year Sales] CREATE PROCEDURE dbo.[Year to Year Sales] @BeginningDate DateTime, @EndingDate DateTime @BeginningDate DateTime, @EndingDate DateTime AS AS IF @BeginningDate IS NULL OR @EndingDate IS NULL IF @BeginningDate IS NULL OR @EndingDate IS NULL BEGIN BEGIN RAISERROR('NULL values are not allowed', 14, 1) RAISERROR('NULL values are not allowed', 14, 1) RETURN RETURN END END SELECT O.ShippedDate, SELECT O.ShippedDate, O.OrderID, O.OrderID, OS.Subtotal, OS.Subtotal, DATENAME(yy,ShippedDate) AS Year DATENAME(yy,ShippedDate) AS Year FROM ORDERS O INNER JOIN [Order Subtotals] OS FROM ORDERS O INNER JOIN [Order Subtotals] OS ON O.OrderID = OS.OrderID ON O.OrderID = OS.OrderID WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate GO GO
  • 15. Ejecución de procedimientos almacenados con parámetros de entrada  Paso de valores por el nombre del parámetro EXEC AddCustomer EXEC AddCustomer @CustomerID = 'ALFKI', @CustomerID = 'ALFKI', @ContactName = 'Maria Anders', @ContactName = 'Maria Anders', @CompanyName = 'Alfreds Futterkiste', @CompanyName = 'Alfreds Futterkiste', @ContactTitle = 'Sales Representative', @ContactTitle = 'Sales Representative', @Address = 'Obere Str. 57', @Address = 'Obere Str. 57', @City = 'Berlin', @City = 'Berlin', @PostalCode = '12209', @PostalCode = '12209', @Country = 'Germany', @Country = 'Germany', @Phone = '030-0074321' @Phone = '030-0074321'  Paso de valores por posición EXEC AddCustomer 'ALFKI2', 'Alfreds EXEC AddCustomer 'ALFKI2', 'Alfreds Futterkiste', 'Maria Anders', 'Sales Futterkiste', 'Maria Anders', 'Sales Representative', 'Obere Str. 57', 'Berlin', Representative', 'Obere Str. 57', 'Berlin', NULL, '12209', 'Germany', '030-0074321' NULL, '12209', 'Germany', '030-0074321'
  • 16. Devolución de valores mediante parámetros de salida Creación del Creación del procedimiento procedimiento almacenado almacenado Ejecución del Ejecución del procedimiento procedimiento almacenado almacenado Resultados del Resultados del procedimiento procedimiento almacenado almacenado CREATE PROCEDURE dbo.mathtutor CREATE PROCEDURE dbo.mathtutor @m1 smallint, @m1 smallint, @m2 smallint, @m2 smallint, @result smallint OUTPUT @result smallint OUTPUT AS AS SET @result = @m1* @m2 SET @result = @m1* @m2 GO GO DECLARE @answer smallint DECLARE @answer smallint EXECUTE mathtutor 5, 6, @answer EXECUTE mathtutor 5, 6, @answer OUTPUT OUTPUT SELECT 'The result is: ' , @answer SELECT 'The result is: ' , @answer The result is: 30 The result is: 30
  • 17. Volver a compilar explícitamente procedimientos almacenados  Volver a compilar cuando   Se agrega un nuevo índice a una tabla subyacente   El procedimiento almacenado devuelve conjuntos de resultados que varían considerablemente El valor del parámetro es atípico Volver a compilar mediante  CREATE PROCEDURE [WITH RECOMPILE]  EXECUTE [WITH RECOMPILE]  sp_recompile
  • 18. Ejecución de procedimientos almacenados extendidos  Se programan con la API Servicios abiertos de datos  Pueden incluir características de C y C++  Pueden contener múltiples funciones  Se pueden llamar desde un cliente o desde SQL Server  Se pueden agregar sólo a la base de datos master EXEC master..xp_cmdshell 'dir c:'
  • 19. Control de mensajes de error  La instrucción RETURN sale incondicionalmente de una consulta o procedimiento  sp_addmessage crea mensajes de error personalizados  @@error contiene el número de error de la instrucción ejecutada más recientemente  Instrucción RAISERROR  Devuelve un mensaje de error del sistema definido por el usuario  Establece un indicador del sistema para registrar un error
  • 20. Demostración: Control de mensajes de error
  • 21. Consideraciones acerca del rendimiento  Monitor de sistema de Windows 2000    Objeto: SQL Server: Administrador de caché Objeto: Estadísticas de SQL Analizador de SQL  Puede supervisar eventos  Puede probar cada instrucción en un procedimiento almacenado