SlideShare a Scribd company logo
1 of 21
Implementación de
procedimientos
almacenados
 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
 Definición de procedimientos almacenados
 Procesamiento inicial de los procedimientos
almacenados
 Procesamientos posteriores de los procedimientos
almacenados
 Ventajas de los procedimientos almacenados
 Introducción a 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
Se almacena en las tablas
sysobjects y syscomments
Se almacena en las tablas
sysobjects y syscomments
El plan compilado se
coloca en la caché de
procedimientos
El plan compilado se
coloca en la caché de
procedimientos
CompilaciónCompilación
OptimizaciónOptimización
CreaciónCreaciónCreaciónCreación
EjecuciónEjecución
(por primera vez(por primera vez
o recompilación)o recompilación)
EjecuciónEjecución
(por primera vez(por primera vez
o recompilación)o recompilación)
AnálisisAnálisis
Procesamientos posteriores de los procedimientos
almacenados
Plan de ejecución recuperado
Plan sin usar se retira
Plan de consulta Contexto de ejecución
SELECT *
FROM
dbo.member
WHERE
member_no = ?
Conexión 1
8082
Conexión 2
Conexión 3
24
1003
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
 Puede anidar hasta 32 niveles
 Use sp_help para mostrar información
USE Northwind
GO
CREATE PROC dbo.OverdueOrders
AS
SELECT *
FROM dbo.Orders
WHERE RequiredDate < GETDATE() AND ShippedDate IS Null
GO
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
 Ejecución de un procedimiento almacenado en una
instrucción INSERT
EXEC OverdueOrders
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
 Eliminación de procedimientos almacenados
 Ejecute el procedimiento almacenado sp_depends para determinar si
los objetos dependen del procedimiento almacenado
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
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
 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]
@BeginningDate DateTime, @EndingDate DateTime
AS
IF @BeginningDate IS NULL OR @EndingDate IS NULL
BEGIN
RAISERROR('NULL values are not allowed', 14, 1)
RETURN
END
SELECT O.ShippedDate,
O.OrderID,
OS.Subtotal,
DATENAME(yy,ShippedDate) AS Year
FROM ORDERS O INNER JOIN [Order Subtotals] OS
ON O.OrderID = OS.OrderID
WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate
GO
CREATE PROCEDURE dbo.[Year to Year Sales]
@BeginningDate DateTime, @EndingDate DateTime
AS
IF @BeginningDate IS NULL OR @EndingDate IS NULL
BEGIN
RAISERROR('NULL values are not allowed', 14, 1)
RETURN
END
SELECT O.ShippedDate,
O.OrderID,
OS.Subtotal,
DATENAME(yy,ShippedDate) AS Year
FROM ORDERS O INNER JOIN [Order Subtotals] OS
ON O.OrderID = OS.OrderID
WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate
GO
Ejecución de procedimientos almacenados con
parámetros de entrada
 Paso de valores por el nombre del parámetro
 Paso de valores por posición
EXEC AddCustomer 'ALFKI2', 'Alfreds
Futterkiste', 'Maria Anders', 'Sales
Representative', 'Obere Str. 57', 'Berlin',
NULL, '12209', 'Germany', '030-0074321'
EXEC AddCustomer 'ALFKI2', 'Alfreds
Futterkiste', 'Maria Anders', 'Sales
Representative', 'Obere Str. 57', 'Berlin',
NULL, '12209', 'Germany', '030-0074321'
EXEC AddCustomer
@CustomerID = 'ALFKI',
@ContactName = 'Maria Anders',
@CompanyName = 'Alfreds Futterkiste',
@ContactTitle = 'Sales Representative',
@Address = 'Obere Str. 57',
@City = 'Berlin',
@PostalCode = '12209',
@Country = 'Germany',
@Phone = '030-0074321'
EXEC AddCustomer
@CustomerID = 'ALFKI',
@ContactName = 'Maria Anders',
@CompanyName = 'Alfreds Futterkiste',
@ContactTitle = 'Sales Representative',
@Address = 'Obere Str. 57',
@City = 'Berlin',
@PostalCode = '12209',
@Country = 'Germany',
@Phone = '030-0074321'
Devolución de valores mediante parámetros de salida
CREATE PROCEDURE dbo.mathtutor
@m1 smallint,
@m2 smallint,
@result smallint OUTPUT
AS
SET @result = @m1* @m2
GO
DECLARE @answer smallint
EXECUTE mathtutor 5, 6, @answer
OUTPUT
SELECT 'The result is: ' , @answer
The result is: 30
CREATE PROCEDURE dbo.mathtutor
@m1 smallint,
@m2 smallint,
@result smallint OUTPUT
AS
SET @result = @m1* @m2
GO
DECLARE @answer smallint
EXECUTE mathtutor 5, 6, @answer
OUTPUT
SELECT 'The result is: ' , @answer
The result is: 30
Resultados delResultados del
procedimientoprocedimiento
almacenadoalmacenado
Resultados delResultados del
procedimientoprocedimiento
almacenadoalmacenado
Ejecución delEjecución del
procedimientoprocedimiento
almacenadoalmacenado
Ejecución delEjecución del
procedimientoprocedimiento
almacenadoalmacenado
Creación delCreación del
procedimientoprocedimiento
almacenadoalmacenado
Creación delCreación del
procedimientoprocedimiento
almacenadoalmacenado
Volver a compilar explícitamente procedimientos
almacenados
 Volver a compilar cuando
 El procedimiento almacenado devuelve conjuntos de
resultados que varían considerablemente
 Se agrega un nuevo índice a una tabla subyacente
 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

More Related Content

Similar to 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
 
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
 
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
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 
9. Uso De Procedimientos Almacenados
9.  Uso De Procedimientos Almacenados9.  Uso De Procedimientos Almacenados
9. Uso De Procedimientos Almacenadosguest3cf6ff
 
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
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos AlmacenadosRafa
 

Similar to procedimientos almacenados (20)

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
 
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
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
Preparedstatement
PreparedstatementPreparedstatement
Preparedstatement
 
9. Uso De Procedimientos Almacenados
9.  Uso De Procedimientos Almacenados9.  Uso De Procedimientos Almacenados
9. Uso De Procedimientos Almacenados
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
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
 
Pa
PaPa
Pa
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 

Recently uploaded

5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD EDUCATIVO.pdfdeBelnRosales2
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxMartaChaparro1
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaMarco Camacho
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacionviviantorres91
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Gonella
 

Recently uploaded (20)

Acuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptxAcuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptx
 
5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria Farmaceutica
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacion
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1
 

procedimientos almacenados

  • 2.  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
  • 3.  Definición de procedimientos almacenados  Procesamiento inicial de los procedimientos almacenados  Procesamientos posteriores de los procedimientos almacenados  Ventajas de los procedimientos almacenados  Introducción a 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 Se almacena en las tablas sysobjects y syscomments Se almacena en las tablas sysobjects y syscomments El plan compilado se coloca en la caché de procedimientos El plan compilado se coloca en la caché de procedimientos CompilaciónCompilación OptimizaciónOptimización CreaciónCreaciónCreaciónCreación EjecuciónEjecución (por primera vez(por primera vez o recompilación)o recompilación) EjecuciónEjecución (por primera vez(por primera vez o recompilación)o recompilación) AnálisisAnálisis
  • 6. Procesamientos posteriores de los procedimientos almacenados Plan de ejecución recuperado Plan sin usar se retira Plan de consulta Contexto de ejecución SELECT * FROM dbo.member WHERE member_no = ? Conexión 1 8082 Conexión 2 Conexión 3 24 1003
  • 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  Puede anidar hasta 32 niveles  Use sp_help para mostrar información USE Northwind GO CREATE PROC dbo.OverdueOrders AS SELECT * FROM dbo.Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null GO
  • 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  Ejecución de un procedimiento almacenado en una instrucción INSERT EXEC OverdueOrders 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  Eliminación de procedimientos almacenados  Ejecute el procedimiento almacenado sp_depends para determinar si los objetos dependen del procedimiento almacenado 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 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
  • 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] @BeginningDate DateTime, @EndingDate DateTime AS IF @BeginningDate IS NULL OR @EndingDate IS NULL BEGIN RAISERROR('NULL values are not allowed', 14, 1) RETURN END SELECT O.ShippedDate, O.OrderID, OS.Subtotal, DATENAME(yy,ShippedDate) AS Year FROM ORDERS O INNER JOIN [Order Subtotals] OS ON O.OrderID = OS.OrderID WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate GO CREATE PROCEDURE dbo.[Year to Year Sales] @BeginningDate DateTime, @EndingDate DateTime AS IF @BeginningDate IS NULL OR @EndingDate IS NULL BEGIN RAISERROR('NULL values are not allowed', 14, 1) RETURN END SELECT O.ShippedDate, O.OrderID, OS.Subtotal, DATENAME(yy,ShippedDate) AS Year FROM ORDERS O INNER JOIN [Order Subtotals] OS ON O.OrderID = OS.OrderID WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate GO
  • 15. Ejecución de procedimientos almacenados con parámetros de entrada  Paso de valores por el nombre del parámetro  Paso de valores por posición EXEC AddCustomer 'ALFKI2', 'Alfreds Futterkiste', 'Maria Anders', 'Sales Representative', 'Obere Str. 57', 'Berlin', NULL, '12209', 'Germany', '030-0074321' EXEC AddCustomer 'ALFKI2', 'Alfreds Futterkiste', 'Maria Anders', 'Sales Representative', 'Obere Str. 57', 'Berlin', NULL, '12209', 'Germany', '030-0074321' EXEC AddCustomer @CustomerID = 'ALFKI', @ContactName = 'Maria Anders', @CompanyName = 'Alfreds Futterkiste', @ContactTitle = 'Sales Representative', @Address = 'Obere Str. 57', @City = 'Berlin', @PostalCode = '12209', @Country = 'Germany', @Phone = '030-0074321' EXEC AddCustomer @CustomerID = 'ALFKI', @ContactName = 'Maria Anders', @CompanyName = 'Alfreds Futterkiste', @ContactTitle = 'Sales Representative', @Address = 'Obere Str. 57', @City = 'Berlin', @PostalCode = '12209', @Country = 'Germany', @Phone = '030-0074321'
  • 16. Devolución de valores mediante parámetros de salida CREATE PROCEDURE dbo.mathtutor @m1 smallint, @m2 smallint, @result smallint OUTPUT AS SET @result = @m1* @m2 GO DECLARE @answer smallint EXECUTE mathtutor 5, 6, @answer OUTPUT SELECT 'The result is: ' , @answer The result is: 30 CREATE PROCEDURE dbo.mathtutor @m1 smallint, @m2 smallint, @result smallint OUTPUT AS SET @result = @m1* @m2 GO DECLARE @answer smallint EXECUTE mathtutor 5, 6, @answer OUTPUT SELECT 'The result is: ' , @answer The result is: 30 Resultados delResultados del procedimientoprocedimiento almacenadoalmacenado Resultados delResultados del procedimientoprocedimiento almacenadoalmacenado Ejecución delEjecución del procedimientoprocedimiento almacenadoalmacenado Ejecución delEjecución del procedimientoprocedimiento almacenadoalmacenado Creación delCreación del procedimientoprocedimiento almacenadoalmacenado Creación delCreación del procedimientoprocedimiento almacenadoalmacenado
  • 17. Volver a compilar explícitamente procedimientos almacenados  Volver a compilar cuando  El procedimiento almacenado devuelve conjuntos de resultados que varían considerablemente  Se agrega un nuevo índice a una tabla subyacente  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