jueves, 16 de junio de 2016

Implementación de procedimientos almacenados y función

Un procedimiento almacenado es un procedimiento almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

Sintaxis

Crear una base de datos actual utilizando la sintruddcion CREATE PROCEDURE
CREATE PROCEDRE  production.longLeadProducts
AS
SELECT name, ProducNumber
FROM
Production.Product
Where DatsToManufature >=1

Directrices para crear 


  • Calificar nombres de objeto dentro del procedimiento
  • crear un procedimiento almacenado para una tarea
  • crear, probar y solucionar problemas
  • evite utilizar el prefijo sp_en los nombre de procedimientos almacenados.

Parámetros de entrada

  • Proporcione valores predeterminados apropiados
  • Valide los valores de parámetros de entrada. Incluyendo comprobaciones de valores nulos.

Control de errores

Los bloques TRY CATCH proporcionan la estructura
El bloque TRY contiene transacciones proteginas 
El bloque CATCH controla errores
CREARE PROCEDURE dbo.addDATA @a int, @b int
AS
BEGIN TRY
INSERT INTO Table_WithKey VALUES (@a, @b)
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER( ) ErrorNumber,
ERROR_MESSAGE( ) [Message]
END CATCH









Implementación de Vistas

Introducción a las vistas

Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no están almacenados en la base de datos como un objeto.

Entonces, una vista almacena una consulta como un objeto para utilizarse posteriormente. Las tablas consultadas en una vista se llaman tablas base. En general, se puede dar un nombre a cualquier consulta y almacenarla como una vista.

Vistas Estándar
combinan datos de una o mas tablas hasta en una nueva tabla virtual.

Vistas indizadas
Materializan la vista mediante al creación de un indice único agrupado en la vista.

Vistas con particiones
Combinan datos con particiones horizontales de una o mas tablas de base en uno o varios servidores.

Ventajas

  • Centrar los datos par aun usuario
  • Enmascarar la complejidad de la base de datos
  • Simplificar la admistración de los permisos de los usuarios
  • Mejorar el rendimiento
  • Organizar datos para exportarlos a otras aplicaciones 

Sintaxis

Se utiliza CREATE VIEW de Transact-SQL;
CREATE VIEW [Nombre esquema] nombreDeVista [Columna{.....n}]

Restricciones
  • No se pueden anidar mas de 32 niveles de profundidad.
  • No se pueden contener mas de 1024 columnas.
  • No se pueden utilizar COMPUTE, COMPUTE BY o INTO.
  • No se pueden utilizar ORDER BY sin TOP.

Cifrado de Vistas
Usar la opción WITH ENCRYPTION en la instruccion CREATE VIEW

  • Cifra de definición de vista en al tabla sys.syscomments
  • protege la lógica de creación de la vista

Modificar datos de una Vista

Las vistas no mantienen una copia independiente de los datos (las vistas indizadas son una excepción).

Las actualizaciones de las vistas modifican las tablas base.

Restricciones:

  • No pueden modificar mas de una tabla base
  • No pueden modificar columnas derivadas de funciones de agregado o cálculos
  • No pueden modificar columnas afectadas por clausulas GROUP BY, HAVING, DISTINCT.
Las actualizaciones de las vistas están restringidas por el uso de WITH CHECK OPTION

Consideraciones de rendimiento para las vistas

Las vistas introducen una sobrecarga de rendimiento porque se resuelven dinamicamente.
Las vistas anidadas presentan posibles problemas de rendimiento:
  • Examine la definición de las vistas anidadas no cifradas.
  • Utilice el analizador de SQL server para examinar el rendimiento.
Las vistas indizadas pueden mejorar el rendimiento.