You are on page 1of 14

Mejores prcticas en el desarrollo para SQL Server

Mario Roa
Danysoft Ingeniero de Sistemas m.roa@danysoft.com

Miguel Egea
Solid Quality Learning Iberoamericana MVP SQL Server megea@solidq.com

Fernando G. Guerrero
Solid Quality Learning Iberoamericana CEO fguerrero@solidq.com

y si no las sigo qu?


Te juro que en la oficina funcionaba Claro! Es que el usuario tiene que ser sa Bueno, es que en Espaa la fecha se pone dd/mm/yyyy Aadir una columna a la tabla clientes? te has vuelto loco?

Entonces esto del ciclo de vida va a ser verdad?

Gestin del cdigo fuente de BBDD Gestin del esquema Comparaciones de objetos Pruebas en base de datos Generacin e implementacin Ms buenas prcticas

Antes de DBPro Edition


Ningn control, produccin siempre tiene lo ltimo Copias del esquema en el control de versiones Tratamiento especializado (DBA)

Despus de DBPro Edition


Datos en produccin Esquema en DBPro

Control de cambios ms sencillos


Checkin vs Shelve El papel del DBA

Importacin del esquema


Ingeniera inversa (1 vez) Esquemas en .SQL (n veces)

Organizacin del esquema


Por tipo de objeto Por esquema

Tareas pre y post deployment Refactoring Ms de un fichero por objeto!

Comparaciones de objetos
Comparacin de esquemas
Con o sin un proyecto DB Pro abierto Diferencias en BBDD

Generacin de script de diferencias


Aplicado inmediatamente Generacin de script de diferencias

Actualizacin, creacin y borrado de objetos

Team System DBPro

Pruebas en base de datos


Pruebas de carga
con que datos?

Datos de produccin
Qu pasa con los datos sensibles

Datos inventados
Es suficiente con meter muchos millones de registros?

Qu pasa con la integridad referencial?

Pruebas en la base de datos


Pruebas unitarias
Tipos

Script Anterior Prueba Script posterior


Pre-condiciones Post-condiciones

Generacin e implementacin
Consolidacin de varios scripts Mediante MSBuild
Por tanto compatible con Team Build si se usa Team foundation

Ms buenas prcticas
Vistas y vistas indexadas Procedimientos almacenados para qu? Triggers DDL y DML Service broker en mis aplicaciones?

Optimizar para el rendimiento

You might also like