BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
description
Transcript of BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES Buenas Prácticas para el Desarrollador de bases de datos
REL303
Javier Loria, Jesús Gil y Eladio Rincón
SQL Server MVPs
α{[email protected] || [email protected]}
Mentors
No olvideis rellenar las evaluaciones en el Portal
del Summit!
Nos encontrareis en la zona de exposición en los
siguientes horarios
Javier, Jesús y Eladio
Mentors SolidQ
Buenas Prácticas para el DBD
αCursores de cliente vs Cursores de servidor β Cuidado donde lo abres y tipo de cursor
αConsultas ad-hoc vs consultas parametrizadas vs procedimientos almacenados β Trata bien tu CPU
αCalidad del código TSQL β UDFs, Vistas
β Transacciones atómicas vs transacciones de bloque
AGENDA
Buenas Prácticas para el DBD
αHabitual en aplicaciones VB tradicional donde debías especificar tipo de cursor y donde se abre
CUIDADO CON LOS CURSORES
Investigando los Tipos de Cursores
Consultas Eficientes
αConclusión β Viajes de Ida y Vuelta
γ Keyset, estáticos, dinámicos
β Usan tempdb γ Keyset, estáticos
β Rápidos: fast_forward (server y client)
α.NET no lo sufre sin triquiñuelas ; Cuidado con APIs en las que puedes especificar tipo de cursor y ubicación
CUIDADO CON LOS CURSORES
Buenas Prácticas para el DBD
βLo habitual
βSeguridad γ Gestión basada a nivel de SP (no por objeto base)
βEncapsulación: Punto único de entrada δ poco acoplamiento, alta cohesión
βMantenimiento: unidad centralizada para: δ Mejorar proceso, optimización, gestión de bugs, …
CONSULTAS AD-HOC, PARAMETRIZADAS, SPS
¿POR QUÉ PROCEDIMIENTOS ALMACENADOS SI?
Buenas Prácticas para el DBD
βRendimiento
γCuestión de CPU y tiempo!!!
γVs. consultas ad-hoc
δParsing, validaciones, seguridad, exec plan, …
γVs. consultas preparadas
δGestión de red
γLos SPs son más cuidadosos con la memoria
δMonitoriza la gestión del buffer pool
CONSULTAS AD-HOC, PARAMETRIZADAS, SPS
¿POR QUÉ PROCEDIMIENTOS ALMACENADOS SI?
Investigando ad-hoc, params, sprocs
Buenas Prácticas para el DBD
αConclusión
β Muévete a consultas parametrizadas o procedimientos almacenados
β Si no, puedes considera: γ Parametrización forzada:
δ SQL Server trata de autoparametrizar “todo”
β En algunos escenarios: γ sp_configure ‘optimize for adhoc workloads’
CONSULTAS AD-HOC, PARAMETRIZADAS, SPS
¿POR QUÉ PROCEDIMIENTOS ALMACENADOS SI?
Las consultas parametrizadas suelen ser
suficientemente buenas
Buenas Prácticas para el DBD
αVistas
β¿Para qué usarlas? γ Simplificación
δ Más fácil de entender vw_pedidos que query de pedidos
γ Seguridad
δ Gestión de permisos mediante vistas ε No acceso a tablas base
ε Permisos para usar y manipular vista
γ Alternativa a estructuras físicas existentes
δ Vistas indexadas
δ Vistas particionadas
USO EFICIENTE DE VISTAS
Vista de vista de vista… (revisar scripts)
Vistas indexadas
Transacciones atómicas vs Transacciones de bloque
Transacciones atómicas vs transacciones en bloque
Buenas Prácticas para el DBD
αConclusión: Pásaselo a Sistemas
βDimensiona Transaction Log acorde
βVigila el tamaño de los VLFs
TRANSACCIONES ATÓMICAS
Buenas Prácticas para el DBD
αUDFs; 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 Tablas γ Simular “vistas parametrizadas”
γ JOINs con Tablas o UDFs (sentencia APPLY)
β ¿Qué debes evitar? γ Puedes implementar cursores!!
FUNCIONES DEFINIDAS DE USUARIO
Ejemplos de uso de UDFs SQLCLR
Buenas Prácticas para el DBD
αVigila los cursores con SQL Profiler en tus pruebas β Si eres admin, vigila el código que entra (cuidado con los filtros)
β «Me llaman Dr. House» Enrique Catalá
αMejora el tiempo de respuesta de tus consultas con codificación «pre» compilada β No hagas algo que está en tu memoria (compilación)
β «Andrés Iniesta juega de memoria» El amigo Pep
αCalidad del código TSQL; simplicidad
β «Hazlo simple, pero no más simple» El mentor de Mou
CONCLUSIONES
Si quieres disfrutar de las mejores sesiones de
nuestros mentores de España y Latino América,
ésta es tu oportunidad.
http://summit.solidq.com/madrid/