150 likes | 364 Views
Mejores prácticas en el desarrollo para SQL Server. Miguel Egea. Fernando G. Guerrero. Mario Roa. Solid Quality Learning Iberoamericana MVP SQL Server megea@solidq.com. Solid Quality Learning Iberoamericana CEO fguerrero@solidq.com. Danysoft Ingeniero de Sistemas
E N D
Mejores prácticas en el desarrollo para SQL Server Miguel Egea Fernando G. Guerrero Mario Roa Solid Quality Learning Iberoamericana MVP SQL Server megea@solidq.com Solid Quality Learning Iberoamericana CEO fguerrero@solidq.com Danysoft Ingeniero de Sistemas m.roa@danysoft.com
¿Buenas prácticas? • ¿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 España la fecha se pone dd/mm/yyyy • ¿Añadir una columna a la tabla clientes? ¿te has vuelto loco? • ¿Entonces esto del ciclo de vida va a ser verdad?
Agenda • Gestión del código fuente de BBDD • Gestión del esquema • Comparaciones de objetos • Pruebas en base de datos • Generación e implementación • Más buenas prácticas
Gestión del código fuente de BBDD • Antes de DBProEdition • Ningún control, producción siempre tiene lo último • Copias del esquema en el control de versiones • Tratamiento especializado (DBA)
Gestión del código fuente de BBDD • Después de DBProEdition • Datos en producción • Esquema en DBPro • Control de cambios más sencillos • Checkin vs Shelve • El papel del DBA
Gestión del Esquema • Importación del esquema • Ingeniería inversa (1 vez) • Esquemas en .SQL (n veces) • Organización del esquema • Por tipo de objeto • Por esquema • Tareas pre y post deployment • Refactoring • ¡Más de un fichero por objeto!
Comparaciones de objetos • Comparación de esquemas • Con o sin un proyecto DB Pro abierto • Diferencias en BBDD • Generación de script de diferencias • Aplicado inmediatamente • Generación de script de diferencias • Actualización, creación y borrado de objetos
Pruebas en base de datos • Pruebas de carga • ¿con que datos? • Datos de producción • ¿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
Generación e implementación • Consolidación de varios scripts • Mediante MSBuild • Por tanto compatible con Team Build si se usa Team foundation
Más buenas prácticas • Vistas y vistas indexadas • Procedimientos almacenados ¿para qué? • Triggers DDL y DML • ¿Service broker en mis aplicaciones?