SQL Server Fundamentals 3ra Sesion

Post on 19-Jun-2015

1.750 views 0 download

Transcript of SQL Server Fundamentals 3ra Sesion

Julián Castiblanco P.http://julycastiblanco.blogspot.com/Julian_castiblancop@hotmail.comMCT-MCITP-MCTS 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