Post on 23-Jan-2016
Mejorando el Acceso a tu Base de Datos SQL Server
Eladio Rincón (eladio@solidq.com)Mentor y SQL Server MVP
Solid Quality Mentors
DEV305
Solid Quality MentorsAyudamos a obtener lo mejor de su sistema SQL ServerMentoring, formación y consultoría en proyectos:
tradicionalmente de Bases de Datosde Inteligencia de Negociode Arquitecturas de Sistemasde Colaboración (MOSS, Enterprise Search)
http://www.solidq.comhttp://blogs.solidq.com eladio@solidq.com
Mejorando el Acceso a tu SQL Server… O ¿qué Puedes Hacer como Desarrollador?
AgendaHerramientas (introducción)¿Miedo a .NET dentro de SQL Server?¿Usamos objetos programables?
¿Vistas? ¿UDFs?
Procedimientos Almacenados¿por qué sí?
Tratemos de entender como funciona cada cosa
Mejorando el Acceso a tu SQL Server Herramientas a Utilizar
SQL Server Management StudioAnálisis de consultas con pequeños cambios
SQL ProfilerTraza por defecto con pequeños cambios
Veámoslo rápido…
Mejorando el Acceso a tu SQL Server¿Miedo a .NET dentro del Servidor?
¿No es seguro? SAFE, EXTERNAL_ACCESS, UNSAFE Usa la sentencia GRANT para asignar permisosGranularidad a nivel de objeto que usa el assembly
¡Entiende cuando es más eficiente!Cuando usarlo
Cálculos complejos; i.e.: funciones de agregadoReferencias a librerías .NET
Cuando no usarloAcceso a datos
Mejorando el Acceso a tu SQL Server¿Miedo a .NET dentro del Servidor?
DemoFunciones de AgregadoExpresiones Regulares en SQL Server
"La simplicidad llevada al extremo se convierte en elegancia"
Jon Franklin
Mejorando el Acceso a tu SQL ServerObjetos Programables
Vistas¿Para qué usarlas?
SimplificaciónAcceso más “fácil” (leer, modificar, borrar)Gestión de permisos
Alternativa a estructuras físicas existentesVistas indexadasVistas particionadas
¿Qué debes evitar?Generalización de vistas“Cruzar” objetos no necesarios
Mejorando el acceso a tu SQL Server¿Objetos Programables?
DemoVistas de vistas de vistas…
"Hazlo todo tan simple como sea posible, pero no más simple"
Albert Einstein
Mejorando el Acceso a tu SQL ServerObjetos Programables
Funciones Definidas de Usuario; usado para:Simplificación y generalización de código existente
Tipo1: Escalares“Resolución de constantes”Convertir un caso de uso en procedural
Tipo2 y Tipo3: de Resultado de TablasSimular “vistas parametrizadas”JOINs con Tablas o UDFs (sentencia APPLY)
¿Qué debes evitar?Puede llegar a funcionar como un cursor
Mejorando el acceso a tu SQL Server¿Objetos Programables?
DemoFunciones Definidas de Usuario
"Hazlo todo tan simple como sea posible, pero no más simple"
Albert Einstein
Mejorando el Acceso a tu SQL ServerProcedimientos Almacenados ¿Por qué sí?
SeguridadGestión basada a nivel de SP (no por objeto base)
Encapsulación: Punto único de entrada poco acoplamiento, alta cohesión
RendimientoVs. consultas ad-hoc
Parsing, validaciones, seguridad, exec plan, …Vs. consultas preparadas
Gestión de redLos SPs son más cuidadosos con la memoria
Monitoriza la gestión del buffer pool
Mantenimiento: unidad centralizada para:Mejorar proceso, optimización, gestión de bugs, …
AdsfadsfadsfAdsfadsfasdf
Mejorando el acceso a tu SQL Server Procedimientos Almacenados ¿Por qué sí?
DemoProcedimientos Almacenados vs
Consultas ad-hoc“Cuando una persona desea realmente algo, el Universo entero conspira para que pueda realizar su sueño“
Paulo Coelho
Mejorando el Acceso a tu SQL Server
ResumenHerramientas: SQL Profiler, SSMSFuera complejos con .NETUsa los objetos programables correctamenteProcedimientos almacenados, … SI!!!
… ¡entiende cómo funciona la tecnología para usarla eficientemente!
Question & AnswerEladio Rincón
SQL Server MVPhttp://www.solidq.com
http://blogs.solidq.comeladio@solidq.com