Documente Academic
Documente Profesional
Documente Cultură
Planificacin de una BD
Antes de hacer cualquier aplicacin que est relacionado a SQL Server, se deben de crear una o
ms base de datos. Para crear una BD es importante tener un plan definido para su
implementacin en el servidor, el cual puede incluir muchas caractersticas como estimacin en
tamao, ruta de los archivos de data y de log, nivel de tolerancia contra falla, cantidad de
tablas, etc.
La planificacin de una BD empieza conociendo el tipo de informacin que se desea almacenar,
por ejemplo: una base de datos cuyas operaciones sean de constantes cambios de su
informacin (OLTP), requiere ms espacio disponible que una cuyo objetivo sea ms frecuente
su lectura (OLAP).
Componentes
Componentes Fsicos
Archivo Primario de Datos: es por defecto el nico archivo de dato, y contiene las tablas del
sistema y la informacin de todos los objetos dentro de la base de datos. Se utiliza la
extensin 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
extensin ndf (Node Data File)
o
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 propsito de recuperacin,
replicacin y reflejo. Se utiliza la extensin 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 comnmente con la extensin bak.
Pgina 1
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 creacin de los diferente objetos.
Una recomendacin de rendimiento para esta BD es crear un archivo fsico por cada ncleo del
procesador (si se tiene 2 procesadores Quad-core, se creara 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, distribucin de los discos, manejo de archivos multimedios,
etc., y en este caso se utilizan los Filegroups para una mejora administracin.
Otra ventaja del uso de mltiple archivos es cuando la base de datos posee un tamao
sustancial que incrementa en tiempo las tareas de mantenimiento, respaldo, lectura, escritura,
etc. Ej., es ms ptimo trabajar con 4 discos de 25 gb para una BD cuyo tamao sea de 100 gb.
El tener esta separacin tambin es til para proceso de migracin, respaldo y distribucin a
diferente discos y es recomendable que estos archivos no estn 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 Tamao
El tamao de una BD depender de los tipos de datos que almacenar (data) y la cantidad de
modificaciones que recibir (log). Como buena prctica se debe de indicar tanto espacio como
sea posible, para evitar costo de rendimiento con el auto crecimiento. Tambin se debe de
colocar los archivos de la BD en disco con alto rendimiento de lectura y escritura.
SQL Server 2008 posee una opcin, a nivel de la base de datos, que permite su auto
crecimiento, el cual puede ser expresado en tamao o en porcentaje. El auto crecimiento se
ejecuta cuando la BD ha llegado al tamao mximo configurado originalmente, y en este caso
se genera un incremento de su tamao deteniendo la actividad del manejador, es por esto que
la mejor alternativa es evitar que una BD se mantenga creciendo frecuentemente, sino que se
disea desde el principio con un tamao manejable. El factor de crecimiento debe de
configurarse de acuerdo al crecimiento que proyecte la base de datos.
Pgina 2
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 mayoras de las base de datos trabajan bien con slo un filegroup. Se debe
asegurar que la creacin de otros sea razonable.
Separar las tablas y los ndices en diferentes filegroups para optimizar mejor las
consultas.
Pgina 3
Creacin de una BD
Owner (Dueo):
(Dueo) usuario dueo que tendr el control total de su estructura. Por defecto
tomar el login de quien est conectado en ese momento, y se recomienda siempre colocar el
superadministrador (sa).
Logial Name (Nombre Lgico): indica el nombre lgico del archivo a crear.
Filegroup
Filegroup (Grupo de Archivos): indica en que grupo virtual estar ubicado el archivo.
Initial Size MB (Tamao Inicial): indica el valor del tamao de la BD. Se trata de estimar
su tamao dentro de varios meses de operacin.
Autogrowth (Auto crecimiento): indica el tipo y la frecuencia en que puede crecer una BD, y
si tiene restricciones de crecimiento.
Path (Ruta): Indica la ruta fsica donde se almacenarn los archivos de las BD.
Pgina 4
En esta ventana se asigna el nombre del filegroup que se pudiera a utilizar con algunos
archivos. Se puede indicar si ser de slo lectura, y si ser el utilizado como Default.
Colocando por defecto el grupo de archive POS, evita que se almacenen los nuevos objetos en el
archivo de grupo primario, al menos que se indique explcitamente lo contrario.
ALTER DATABASE [SALES] MODIFY FILEGROUP [POS] DEFAULT
GO
Pgina 5
Configuracin de una BD
Collation (Juego de Caracteres)
El concepto Collation hace referencia al patrn de bits utilizado para representar/almacenar
cada carcter, y en consecuencia tambin se refiere a las reglas utilizadas para ordenar y
comparar caracteres. Evidentemente, se trata de un concepto que afecta slo a los campos de
texto.
Aunque el Collation de todas las bases de datos del sistema debe ser la misma, en cada base de
datos de usuario puede ser diferente, es decir, podemos tener una base de datos utilizando un
Collection diferente por requisitos de la aplicacin que la utiliza, y otra base de datos de la
misma Instancia de SQL Server, utilizando otra
Los estilos de comparacin permiten definir el comportamiento frente a
maysculas/minsculas, acentos, y otras opciones. Por ejemplo:
_CS CaseCase-Sensitive indica que se distingue entre maysculas y minsculas.
_CI CaseCase-Insensitive no se diferencian las maysculas de las minsculas.
_AS AccentAccent-Sensitive sensible a los acentos.
_AI AccentAccent-Sensitive no se diferencian las letras acentuadas de las no acentuadas.
Modern_Spanish y Latin1_General utilizan los dos la pgina de cdigos 1252 (para caracteres
latinos), pero en Modern_Spanish la y la n son letras diferentes mientras que en
Latin1_General la es una n acentuada.
Modo de Recuperacin
Cada BD tiene un modelo de recuperacin, el cual determina si el log transaccional acumular
todos los cambios realizados a la base de datos, o slo una cantidad especfica, con el propsito
de recuperacin ante cualquier evento de fallo. Algunas preguntas a considerar son:
Existen 3 modelos de recuperacin:
1) Full Recovery: Acumula todos los cambios que se realizan en las base de datos. Se
recomienda hacer respaldo del log transaccional para conservar estos cambios, o de lo
contrario este puede incrementar su tamao hasta que ocupe el lmite de espacio
disponible.
2) Simple Recovery: Acumula cierta cantidad de cambios, suficiente para recuperar una base
de datos en caso de fallo. Peridicamente se trunca su contenido para liberar espacio en
disco, y no es necesario realizar respaldo del log transaccional. Es apropiado para BD que
pueden ser recuperada de otra fuente.
3) Bulk-Logged Recovery: Similar al Full Recovery, pero aqu cierta informacin sobre
operaciones masiva se escriben en el Log Operacional.
Ej: BCP, BULK INSERT, SELECT..INTO, CREATE INDEX, ALTER INDEX.
Pgina 6
Modificacin a una BD
A una base de datos ya creada se le puede modificar algunos de sus atributos mediante la
misma herramienta de interfaz grfica (accediendo por Propiedades) o a travs de sentencias
en Transact-SQL.
Entre las opciones ms comunes a modificar estn:
-
Colocar una BD ONLINE (En Lnea) o OFFLINE (Fuera de Lnea): se puede lograr a
travs del men de propiedades:
Propiedades\Task\Take Offline [Online].
O mediante la sentencia SQL:
ALTER DATABASE nombreBD SET [OFFLINE | ONLINE]
Asociar o Desligar una BD: es para mover o copiar base de datos entre instancias y
servidores, sin tener que borrar los archivos de datas y el log asociado. A travs de:
para desligar (en la rama de la BD en cuestin)
Propiedades\Task\Detach
O mediante las siguientes sentencias SQL:
Sp_detach_db nombreBD
para Asociar (en la rama principal de Database)
Attach
O mediante las siguientes sentencias SQL:
CREATE DATABASE nombreBD
ON (FILENAME = 'X:\Path\File.name') FOR ATTACH
O
Sp_attach_db nombreBD, 'X:\Path\File.name'
Pgina 7
Modificar Tipo de recuperacin una BD: se puede lograr a travs del men de propiedades:
O mediante la sentencia SQL:
ALTER DATABASE databasename
SET RECOVERY { SIMPLE | FULL | BULK_LOGGED }
Pgina 8