La base de datos SQL Server
Cuando se crea una base de datos SQL se debe estimar el tamaño que ésta alcanzará para crear los archivos necesarios.
- Toda base de datos tiene un archivo primario de datos (.mdf) y uno o mas archivos para el log de transacciones (.ldf). También puede tener archivos secundarios de datos (.ndf).
- Cuando crea una base de datos, una copia de la base de datos model que incluye las tablas del sistema se copia a la nueva base de datos. El tamaño minimo de una base de datos debe ser de un tamaño mayor que la base de datos model.
- Los archivos de la base de datos tienen un nombre de archivo que es el utilizado por el sistema operativo, y un nombre lógico que es utilizado por SQL Server para referirse al archivo.
- La data es almacenada por páginas (pages). Cada página tiene capacidad para 8 KB.
- Una fila no puede almacenarse en dos páginas. El tamaño máximo de una fila es de 8092 bytes.
- Las tablas y los índices se almacenan por extensiones (extents). Una extensión es un conjunto de 8 páginas contiguas. Esto significa que dos objetos de la base de datos no pueden compartir una extensión, salvo el caso de las tablas muy pequeñas.
- Los archivos del log de transacciones almacenan la información necesaria para la recuperación de la base de datos ante la eventualidad de una falla del sistema. Por defecto, el tamaño del log de transacciones es del 25% del tamaño de los archivos de datos.
El Registro de Transacciones (Transaction Log)
El archivo de registro de transacciones almacena todas las transacciones llevadas a cabo con las sentencias INSERT, UPDATE y DELETE. El proceso se lleva a cabo de la siguiente manera:
- Una aplicación envía una modificación de datos al servidor SQL.
- Las páginas de datos afectadas por la modificación son localizadas en el caché, o leídas desde el disco al caché, si no se encuentran en ella.
- Cada sentencia de modificación de datos es registrada en el log de transacciones antes que el cambio se lleve a cabo en la base de datos.
- El punto de control (checkpoint) escribe las transacciones confirmadas (commited) en la base de datos.
- Si el sistema falla, el proceso de recuperación automático usa el Iog de transacciones para recuperar todas las transacciones comprometidos y anula todas las transacciones incompletas.
Los grupos de archivos
Los archivos de una base de datos se pueden agrupar en grupos de archivos para su asignación y administración. Algunos sistemas pueden aumentar su rendimiento controlando la ubicación de datos e índices en unidades de disco específicas. Los grupos de archivos pueden resultar de ayuda en este proceso.
El administrador del sistema puede crear grupos de archivos en cada unidad de disco, después asignar tablas específicas, índices o datos text, ntext o image de una tabla, a grupos de archivos específicos. Ningún archivo puede pertenecer a más de un grupo de archivos. Las tablas, los índices y los datos text, ntext e image, se pueden asociar a un grupo de archivos, en cuyo caso todas sus páginas estarán asignadas a dicho grupo de archivos.
Los archivos de registro nunca forman parte de un grupo de archivos. El espacio del registro se administra de forma separada del espacio de datos. Los archivos de un grupo de archivos no crecen automáticamente mientras haya espacio disponible en alguno de los archivos del grupo de archivos. Hay dos tipos de grupos de archivos:
Primary
Definidos por el usuario
Los grupos de archivos definidos por el usuario son los grupos de archivos especificados mediante la palabra clave FILEGROUP en las instrucciones
CREATE DATABASE o ALTER DATABASE
Creación de bases de datos
Para crear una base de datos en SQL Server 2000 utilice una de las tres herramientas siguientes:- El Asistente para la creación de base de datos
- El Administrador Corporativo de SQL Server
- La Instrucción CREATE DATABASE
- El nombre de la base de datos
- El tamaño de la base de datos
- Los archivos dónde la base de datos va a residir
La sentencia CREATE DATABASE
FILENAME = ‘ubicación_y_nombre_archivo’ ,SIZE = tamaño_en_MB ,MAXSIZE = tamaño_máximo_en_MB ,FILEGROWTH = incremento_crecimiento )
( NAME = nombre_lógico_log ,FILENAME = ‘ubicación_y_nombre_archivo’ ,SIZE = tamaño_en_MB ,MAXSIZE = tamaño_máximo_en_MB ,FILEGROWTH = incremento_crecimiento )
- nombre_lógico_data, nombre_lógico_log es el nombre a utilizar cuando en una sentencia SQL se tiene que hacer referencia al archivo de datos o al archivo de log respectivamente.
- ubicación_y_nombre_archivo es una cadena que incluye la ruta y el nombre del archivo. La ruta debe especificar una carpeta existente en el servidor en el que está instalado SQL.
- tamaño_en_MB especifica el tamaño del archivo.
- tamaño_máximo_en_MB es el máximo tamaño que puede alcanzar el archivo si se requiriera de espacio adicional.
- incremento_crecimiento es la cantidad de espacio que se añade al archivo cada vez que se necesita espacio adicional. Se puede especificar en MB o en porcentaje.
ON PRIMARY
( NAME = biblioteca_data ,
FILENAME = ‘c:\mssql7\data\practica\biblioteca.mdf’ ,
SIZE = 10 ,
MAXSIZE = 15 ,
FILEGROWTH = 25% )
FILENAME = ‘c:\mssql7\data\practica\biblioteca.ldf’ ,
SIZE = 4 ,MAXSIZE = 6 ,FILEGROWTH = 1MB )
Cuando se crea una base de datos, su nombre se registra en la tabla de sistema sysdatabases de la base de datos master.
Configuración de la base de datos
En algunas ocasiones necesitará cambiar la configuración de la base de datos para poder realizar alguna tarea especial. Si desea conocer qué opciones puede configurar para su base de datos, ejecute el procedimiento. sp_dboption.
Algunas de esas opciones pueden configurarse desde SQL Server Enterprise Manager. Todas pueden configurarse mediante el procedimiento sp_dboption.
Opciones mas frecuentemente utilizada
Administración del crecimiento de la base de datos
Incremento del tamaño de un archivo de la base de datos
MODIFY FILE ( NAME = nombre_lógico_archivo ,
SIZE = nuevo_tamaño_en_MB )
Adición de un archivo a la base de datos
ADD FILE | ADD LOG FILE
( NAME = nombre_lógico_archivo ,FILENAME = ‘ubicación_y_nombre_archivo’ ,SIZE = tamaño_en_MB ,MAXSIZE = tamaño_máximo_en_MB ,FILEGROWTH = incremento_crecimiento )
Eliminación de un archivo de base de datos
REMOVE FILE nombre_lógico_archivo
La eliminación del archivo solo puede ejecutarse si el mismo está vacío.
Reducción del tamaño de una base de datos
Reducción del tamaño de un archivo de base de datos
Revisión de la arquitectura física de la base de datos
Todas las bases de datos del servidor
Información de una base de datos específica
Archivos de la base de datos
Espacio utilizado por los datos de la base de datos
Espacio utilizado por el log de transacciones de la base de datos
Eliminación de bases de datos
Métodos de eliminación de una base de datos
- Con SQL Server Enterprise Manager, puede eliminar solo una base de datos en el momento.
- Con Transact-SQL, puede eliminar varias bases de datos en seguida.
- Después que elimine una base de datos, cada login ID que usó en esa base de datos en particular se cambia en la base de datos master.
Restricciones para eliminar una base de datos
- la base de datos está en proceso de restauración.
- la base de datos está siendo utilizada por algún usuario.
- la base de datos está publicando cualquiera de sus tablas como parte de un proceso de replicación.
- SQL Server Agent.
- Replication
- SQL Server Web Wizard
- Data Transformation Services (DTS)