¿Hay alguna lista de verificación para el diseño de bases de datos (OLTP)?

La necesidad de aplicaciones móviles está creciendo con el creciente número de usuarios comerciales y consumidores que acceden a Internet a través de sus tabletas y teléfonos. Esta necesidad ha despertado el desarrollo de aplicaciones móviles interactivas e innovadoras que pueden darle el sabor del éxito.

Nosotros Online Digital Care diseñamos un diseño de interfaz de usuario móvil único e interactivo [1] para su aplicación que se verá increíble.

Un DBA de infraestructura, por otro lado, no siempre puede tener un conocimiento profundo de la aplicación. En cambio, tendrá un amplio conocimiento sobre el panorama de las aplicaciones empresariales. Necesita comprender qué aplicaciones están en producción, qué back-end de la base de datos se utilizan, cómo se aprovisionan los servidores virtuales y de almacenamiento, entre otras cosas. Si te consideras un DBA de infraestructura, aquí hay una muestra de tareas que se te podría pedir que hagas:

  • Se está implementando un nuevo sistema de administración de documentos suministrado por terceros en su organización y se basa en la plataforma de SharePoint. El vendedor está haciendo todo el trabajo duro y se le ocurrió un documento de arquitectura detallado. El trabajo comenzará la próxima semana y todas las partes han acordado que es un buen diseño. Te trajeron a bordo en el último momento y te pidieron que revises la arquitectura. Debe dar el veredicto final si el diseño se ajusta a las buenas prácticas de la base de datos.
  • Después de meses de desarrollo, pruebas y pulido, la compañía está lista para dar el siguiente gran salto ya que la versión 2.0 de una aplicación central está lista para su lanzamiento. Debe sugerir cuál será el mejor camino para una migración sin problemas. Además, ¿cuál será el método de reversión?
  • La gerencia finalmente dio luz verde a un proyecto de mejora de aplicaciones y el gerente del proyecto inició reuniones semanales con desarrolladores, arquitectos y DBA. Están ocurriendo una gran cantidad de lluvia de ideas y dibujos de pizarra y la gente quiere saber cuál sería la mejor configuración para el servidor de la base de datos.

Los DBA inteligentes deberían poder ver el diseño de un sistema y sugerir la mejor solución para el nivel de la base de datos o recomendar un enfoque mejor. El DBA también debería poder diseñar la capa de base de datos desde cero y ser capaz de soportar su diseño. La clave es entender el propósito del sistema y reunir la mayor cantidad de información posible.

Es por eso que es mejor tener una lista de preguntas y métricas disponibles. Dicho esto, no todos los proyectos tendrán un conjunto de especificaciones completo y completo. A medida que el DBA hace sus preguntas, no todas las respuestas pueden estar fácilmente disponibles. Esto puede variar desde “no sabemos, nos dices” hasta miradas directas en blanco alrededor de la mesa de reuniones. El DBA necesita tomar nota de esas áreas desconocidas, sugerir posibles soluciones o informar y educar a sus compañeros.

Como puede entender, esta no es una lista exhaustiva de ninguna manera. Cada sistema es diferente y también lo es cada arquitectura. En última instancia, se trata de cómo su organización hace negocios, lo que considera crítico y cómo administra sus propios sistemas de bases de datos. Como dije antes, a veces no tendrías una respuesta porque la gente no sabe la respuesta. Tendría que usar su propio juicio y experiencia para elaborar sus propias recomendaciones. A veces se espera que sepa qué hacer. Lo suficientemente justo. Use sus prácticas estándar de DBA en tales casos.

No todos los puntos de este artículo pueden ser necesarios en todas las situaciones. Por ejemplo, es posible que no necesite hacer ninguna pregunta en un proyecto de migración de servidor sencillo en el que todo se haya decidido antes de incorporarse. A medida que trabajas en múltiples proyectos, eventualmente te acostumbrarás a hacer las preguntas más relevantes. Para comenzar, puede usar este artículo como plantilla base. http://www.onlinedigitalcare.com

Notas al pie

[1] Diseño de interfaz de usuario móvil | Atención digital en línea

Estoy agregando este comentario para indicar los pasos que he tomado hasta ahora en mi instancia de SQL Server 2014.

Descripción de la tabla: esta tabla tiene solo 3 columnas. PK es char (25), el segundo es BIGINT y el tercero es varchar (256). Será rápidamente modificado / leído (~ 4000 veces por segundo).

Pasos a seguir: creé esta base de datos, creé un grupo de archivos secundario y luego agregué esta tabla. Luego inserté más de 6 millones de registros aleatorios en él. Luego, creé PK en clúster en la Columna1 porque las búsquedas se realizarán usando esta columna, y creé el Índice no agrupado en el resto de las 2 columnas. Encendí la Actualización automática de estadísticas y también cambié el Nivel de aislamiento a Read_Committed_Snapshot.

Pasos pendientes: pruebas de carga / estrés, copia de seguridad, HADR, planes de mantenimiento.

Pregunta: Esto es todo lo que se me ocurrió al diseñar una base de datos. Sugiera si he tomado algún paso incorrectamente hasta ahora. ¿Hay algo que me estoy perdiendo? Mis copias de seguridad estarán en nuestra nube, así que sugiera si Always On será una buena opción o ¿estará bien usar DB Mirroring y Log Shipping? ¿Se requiere Particionamiento DB? ¿Es intrínseco en mi caso crear un archivo? ¿Requiero el almacenamiento en caché del plan? Y, lo más importante, ¿cómo me aseguro de mantener mis tablas siempre en la memoria?

Si coloca ‘base de datos OLTP’ en Google, obtendrá las mejores prácticas de IBM. Eso debería responder a su pregunta, o al menos proporcionarle un camino para llegar a ella.