SQL Server Fundamentals 3ra Sesion
-
Upload
julian-castiblanco-p -
Category
Technology
-
view
1.750 -
download
0
Transcript of SQL Server Fundamentals 3ra Sesion
Julián Castiblanco P.http://julycastiblanco.blogspot.com/[email protected] SQL Server 2008/2005
Líder ITPros-DC
SESIÓN 3
CONTENIDO DEL CURSO
CONTENIDO DEL CURSO
• Teoría Procedimientos Almacenados (2da Sesión)• Consultas Simples• Consultas Complejas• Inserción de datos• Actualización de datos• Eliminación de datos
Agenda Tercera Sesión
Entendiendo Procedimientos Almacenados
Procedimientos
• Son sentencias de T-SQL que se almacenan en el servidor. Utilizado para almacenar tareas repetitivas que se ejecutan eficientemente en el servidor.
• Aceptan parámetros y retornan parámetros cuando son invocados.• Las reglas de negocio encapsuladas en un procedimiento puede ser cambiada en un solo
objeto y todos los clientes utilizan el mismo objeto lo que asegura la consistencia en acceso y modificación de datos
• El modelo ER puede ser oculto a los usuarios finales.• Se pueden otorgar privilegios de ejecución aún si estos no tienen acceso a las tablas y
vistas referenciadas.• Se reduce el tráfico de datos en la red.• Puede mejorar el desempeño de las aplicaciones.
Procedimientos
• Existen propiedades adicionales para los procedimientos como las siguientes:– With Recompile: Cada vez que se ejecuta se recrea el plan de ejecución– With Encryption: Oculta la lógica (TSQL statement) que genera el dataset de respuesta.– Execute AS: La consulta interna en el procedimiento se ejecuta con los privilegios de un usuario diferente al que lo
invocó.
CREATE Procedure pGetEmployeeLogin@NationalIDNumber nvarchar(15)ASSELECT NationalIDNumber,LoginIDFROM HumanResources.Employee WHERE NationalIDNumber = @NationalIDNumber GO
•
Procedimientos
• Porque mejoran el performance de las aplicaciones?– Todo se basa en los planes de ejecución de SQL Server
Parcing Resolving Optimizing Compiling Executing
Cuando se ejecuta un procedimiento almacenado, este utiliza los planes de ejecución creados con anterioridad, lo que reduce el tiempo de ejecución de las consultas.
Procedimientos
Sql Server se divide en 2 motores principales Storage (SE)y Relational (query processor RE).• RE: Optimización y ejecución de
sentencias. Contiene un Cmd Parser que verifica la sintaxis y prepara el árbol de consulta, un Optimizador que es el valor de un DBMS y un QE responsable de la ejecución.
• SE: es responsable de la gestión del I/O y contiene los métodos de acceso que manejan las peticiones de I/O de filas, índices, paginas, bloqueo de filas y al Buffer Manager el cual maneja que información deberá estar disponible en memoria, también maneja al log transaccional.
Consultas Simples
Consultas simples – Filtros Básicos
• Se utilizan para limitar las filas que serán devueltas en una consultan.
Comparación: =,<,>,>=,<=,!=
Cadenas: LIKE, CONTAINTS, FREETEXT
Logical: AND, OR, NOT, IN, ALL, ANY, SOME, EXISTS
Consultas simples – Group By
• Se utiliza para agrupar información por una o varias columnas.• Se aprovecha normalmente para sacar totales, promedios, encontrar valores
máximos y mínimos.• Resuelve preguntas como ¿Cuál es el costo total de la factura?
Consultas simples – Having
• Se utiliza para condicionar los registros de salida resultantes de una agrupación.• Resuelve preguntas como ¿Devuelva los clientes y el promedio de valor de sus
facturas, siempre y cuando el cliente haya realizado compras superiores a $15.000 pesos?
Consultas simples – Roll Up y CUBE
• Generan subtotales para cada una de las combinaciones de la consulta.
Consultas simples – Rank
• Son funciones de Clasificación que permite entregar diferentes análisis de información.• RANK• DENSE_RANK• NTILE• ROW_NUMBER
Consultas simples – Rank
Consultas Complejas
Consultas simples – Subconsultas
• Consultas anidadas dentro de un SELECT, INSERT, UPDATE o DELETE• Puede ser utilizada en cualquier expresión que lo necesite.
Consultas simples – EXISTS
• Devuelve los registros solo si existen en un resultset anterior..
Consultas simples – Tablas Temporales
• Permiten almacenar información en tablas de sesión de usuario.• Estas se almacenan en la base de datos TEMPDB• Pueden ser locales o Globales
Inserción de datos
Inserción de datos
Actualización de datos
Actualización de datos
Actualización de datos
Eliminación de datos
Eliminación de datos
Eliminación de datos
TRUNCATE TABLE se diferencia del comando DELETE por:
1. Utiliza menos espacio en el log transaccional2. Realiza menos bloqueos en la base de datos3. Ninguna página queda en la tabla
Bibliografía
• http://msdn.microsoft.com/en-us/library/aa933206(v=sql.80).aspx• http://msdn.microsoft.com/en-us/library/ms189835.aspx• http://msdn.microsoft.com/en-us/library/aa260662(v=sql.80).aspx• http://msdn.microsoft.com/en-us/library/ms189575.aspx• http://msdn.microsoft.com/en-us/library/ms189872.aspx• http://msdn.microsoft.com/en-us/library/ms189305(v=sql.90).aspx• Course 2778A, Writing Queries Using Microsoft® SQL Server® 2008
Transact-SQL