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

3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registrosMeztli Valeriano Orozco
 
Implementacion de bases de datos en mysql
Implementacion de bases de datos en mysqlImplementacion de bases de datos en mysql
Implementacion de bases de datos en mysqlPipe Muñoz
 
Algebra relacional i-bdi
Algebra relacional i-bdiAlgebra relacional i-bdi
Algebra relacional i-bdiDeisy Montoya
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidademilio_ambrosio
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQLIsabel Gómez
 
Modelo Relacional (Base de Datos)
Modelo Relacional (Base de Datos)Modelo Relacional (Base de Datos)
Modelo Relacional (Base de Datos)Neguib Núñez
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosSergio Sanchez
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controladorEmilio Sarabia
 

La actualidad más candente (20)

3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
Bases de datos NoSQL en entornos Big Data
Bases de datos NoSQL en entornos Big DataBases de datos NoSQL en entornos Big Data
Bases de datos NoSQL en entornos Big Data
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
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
 
Consultas base de datos en SQL
Consultas base de datos en SQLConsultas base de datos en SQL
Consultas base de datos en SQL
 
DB1 Unidad 4: SQL
DB1 Unidad 4: SQLDB1 Unidad 4: SQL
DB1 Unidad 4: SQL
 
Implementacion de bases de datos en mysql
Implementacion de bases de datos en mysqlImplementacion de bases de datos en mysql
Implementacion de bases de datos en mysql
 
INTEGRIDAD DE DATOS
INTEGRIDAD DE DATOSINTEGRIDAD DE DATOS
INTEGRIDAD DE DATOS
 
Algebra relacional i-bdi
Algebra relacional i-bdiAlgebra relacional i-bdi
Algebra relacional i-bdi
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidad
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQL
 
Modelo Relacional (Base de Datos)
Modelo Relacional (Base de Datos)Modelo Relacional (Base de Datos)
Modelo Relacional (Base de Datos)
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Taller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridadTaller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridad
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
Chapter8 pl sql
Chapter8 pl sqlChapter8 pl sql
Chapter8 pl sql
 
Sql
SqlSql
Sql
 
Plsql y paquetes
Plsql y paquetesPlsql y paquetes
Plsql y paquetes
 

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
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQLRonald Rivas
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosiluijo
 

Destacado (7)

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
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQL
 
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

BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 

Último (20)

BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 

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