domingo, 5 de julio de 2015

Planificación de una BD

Planificación de una BD

Antes de hacer cualquier aplicación que esté relacionado a SQL Server, se deben de crear una o más base de datos. Para crear una BD es importante tener un plan definido para su implementación en el servidor, el cual puede incluir muchas características como estimación en tamaño, ruta de los archivos de data y de log, nivel de tolerancia contra falla, cantidad de tablas, etc. 

La planificación de una BD empieza conociendo el tipo de información que se desea almacenar, por ejemplo: una base de datos cuyas operaciones sean de constantes cambios de su información (OLTP), requiere más espacio disponible que una cuyo objetivo sea más frecuente su lectura (OLAP).  

Componentes Físicos :

• Archivo Primario de Datos: es por defecto el único archivo de dato, y contiene las tablas del sistema y la información de todos los objetos dentro de la base de datos. Se utiliza la extensión mdf ( Metadata Data File ). 

• Archivos Secundarios de Datos: son archivos opcionales de datos que son agregados a una BD para incrementar el rendimiento y otros beneficios administrativos. Se utiliza la extensión ndf ( Node Data File ) 

o Grupo de Archivos ( Filegroups ): son contenedores lógicos que encapsula al menos el archivo primario de dato, que permiten al administrador un mejor manejo de los distintos objetos de la base de dates.
 
• Archivo de Log Transaccional : es un archivo que registra todas las alteraciones que se le aplican a una base de datos, el cual es utilizado luego para propósito de recuperación, replicación y reflejo. Se utiliza la extensión ldf ( Log Data File ) 

• Archivos de Respaldo: es el archivo que se genera durante el proceso de backup de una base de datos. Se utiliza comúnmente con la extensión bak.  

Separar en diferentes archivos tanto la data como el log, es una buena alternativa cuando se trabaja con BD que tiende a crecer. Especialmente la temporal ( tempdb ), ya que esta es utilizada por todas las base de datos de usuario para la creación de los diferente objetos.  

Una recomendación de rendimiento para esta BD es crear un archivo físico por cada núcleo del procesador (si se tiene 2 procesadores Quad-core, se crearía 8 arcvhivos, 2x4=8). Esto es para evitar los inconvenientes de bloque entre las tareas del procesador al momento de lectura y escritura de los discos, ya que la base de datos temporal aloja distintos objetos en memoria que son requeridos por los distintos procesos del manejador. 

Para las base de datos del usuario esto dependerá de otros factores como volumen de crecimiento, cantidad de objetos, distribución de los discos, manejo de archivos multimedios, etc., y en este caso se utilizan los Filegroups para una mejora administración. 

Otra ventaja del uso de múltiple archivos es cuando la base de datos posee un tamaño sustancial que incrementa en tiempo las tareas de mantenimiento, respaldo, lectura, escritura, etc. Ej., es más óptimo trabajar con 4 discos de 25 gb para una BD cuyo tamaño sea de 100 gb. El tener esta separación también es útil para proceso de migración, respaldo y distribución a diferente discos y es recomendable que estos archivos no estén ubicado en el mismo del SO o de los archivos de programas. 

A diferencia de los archivos de datos, el archivo de log recibe escritura de manera secuencial, por lo que no es muy prudente separarlo en diferentes archivos. Si se dedica un disco exclusivo para este archivo ingresa el rendimiento la salida.  

Capacidad y Tamaño :
   
El tamaño de una BD dependerá de los tipos de datos que almacenará (data) y la cantidad de modificaciones que recibirá (log). Como buena práctica se debe de indicar tanto espacio como sea posible, para evitar costo de rendimiento con el auto crecimiento. También se debe de colocar los archivos de la BD en disco con alto rendimiento de lectura y escritura. 

SQL Server 2008 posee una opción, a nivel de la base de datos, que permite su auto crecimiento, el cual puede ser expresado en tamaño o en porcentaje. El auto crecimiento se ejecuta cuando la BD ha llegado al tamaño máximo configurado originalmente, y en este caso se genera un incremento de su tamaño deteniendo la actividad del manejador, es por esto que la mejor alternativa es evitar que una BD se mantenga creciendo frecuentemente, sino que se diseña desde el principio con un tamaño manejable. El factor de crecimiento debe de configurarse de acuerdo al crecimiento que proyecte la base de datos.

Grupo de Archivos
   
Los Filegroups se utilizan para una mejora administración y rendimiento de las tareas, con los cuales se pueden agrupar diferentes archivos los objetos de la base de datos (tablas, índices, vistas). 

- Permite proceso de entrada y salida de tablas o índices grandes, a discos específicos. 
- Permite realizar respaldo por separado de estos objetos. 
- Se pueden separar data de sólo lectura del resto de la base de datos

Cada BD posee un filegroup primario, el cual contiene todo los datos a los que no se le haya especificado un filegroup diferente (definido por el usuario). Algunas recomendaciones para trabajar con los filegroups son: 

o Las mayorías de las base de datos trabajan bien con sólo un filegroup. Se debe asegurar que la creación de otros sea razonable. 
o Definir apropiadamente el tamaño de los filegroups. 
o Crear los filegroups en diferentes discos, para generar un mejor rendimiento. 
o Separar las tablas y los índices en diferentes filegroups para optimizar mejor las consultas.

No hay comentarios:

Publicar un comentario