mejores prácticas en el desarrollo para sql server fernando g. guerrero solid quality learning...

Post on 03-Jan-2015

13 Views

Category:

Documents

8 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mejores prácticas en el desarrollo para SQL Server

Fernando G. GuerreroFernando G. Guerrero

Solid Quality Learning IberoamericanaSolid Quality Learning IberoamericanaCEOCEO

fguerrero@solidq.comfguerrero@solidq.com

Mario RoaMario Roa

DanysoftDanysoftIngeniero de SistemasIngeniero de Sistemasm.roa@danysoft.comm.roa@danysoft.com

Miguel EgeaMiguel Egea

Solid Quality Learning IberoamericanaSolid Quality Learning IberoamericanaMVP SQL ServerMVP SQL Server

megea@solidq.commegea@solidq.com

• ¿y si no las sigo qué?¿y si no las sigo qué?– Te juro que en la oficina funcionabaTe juro que en la oficina funcionaba– ¡Claro! Es que el usuario tiene que ser sa¡Claro! Es que el usuario tiene que ser sa– Bueno, es que en España la fecha se pone Bueno, es que en España la fecha se pone

dd/mm/yyyydd/mm/yyyy– ¿Añadir una columna a la tabla clientes? ¿te has ¿Añadir una columna a la tabla clientes? ¿te has

vuelto loco?vuelto loco?• ¿Entonces esto del ciclo de vida va a ser ¿Entonces esto del ciclo de vida va a ser

verdad?verdad?

• Gestión del código fuente de BBDDGestión del código fuente de BBDD• Gestión del esquemaGestión del esquema• Comparaciones de objetosComparaciones de objetos• Pruebas en base de datosPruebas en base de datos• Generación e implementaciónGeneración e implementación• Más buenas prácticasMás buenas prácticas

• Antes de DBPro EditionAntes de DBPro Edition– Ningún control, producción siempre tiene lo Ningún control, producción siempre tiene lo

últimoúltimo– Copias del esquema en el control de versionesCopias del esquema en el control de versiones– Tratamiento especializado (DBA)Tratamiento especializado (DBA)

• Después de DBPro EditionDespués de DBPro Edition– Datos en producciónDatos en producción– Esquema en DBProEsquema en DBPro

• Control de cambios más sencillosControl de cambios más sencillos– Checkin vs ShelveCheckin vs Shelve– El papel del DBAEl papel del DBA

• Importación del esquemaImportación del esquema– Ingeniería inversa (1 vez)Ingeniería inversa (1 vez)– Esquemas en .SQL (n veces)Esquemas en .SQL (n veces)

• Organización del esquemaOrganización del esquema• Por tipo de objetoPor tipo de objeto• Por esquemaPor esquema

• Tareas pre y post deploymentTareas pre y post deployment• RefactoringRefactoring• ¡Más de un fichero por objeto!¡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

Team System DBProTeam System DBPro

Pruebas en base de datos

• Pruebas de cargaPruebas 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 unitariasPruebas 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?

Optimizar paraOptimizar parael rendimientoel rendimiento

top related