Resumen unidad 2 arquitectura fisica de la base de datos
Memoria de una base de datos
El espacio en
disco asignado a un archivo de datos (.mdf o .ndf) de una base de datos se
divide lógicamente en páginas numeradas de forma contigua de 0 a n. Las
operaciones de E/S de disco se realizan en el nivel de página. Es decir, SQL
Server lee o escribe páginas de datos enteras.
Las
extensiones son una colección de ocho páginas físicamente c ontiguas; se
utilizan para administrar las páginas de forma eficaz. Todas las páginas se
almacenen en extensiones.
En SQL
Server, el tamaño de página es de 8 KB. Esto significa que las bases de datos
de SQL Server tienen 128 páginas por megabyte. Cada página empieza con un
encabezado de 96 bytes, que se utiliza para almacenar la información del
sistema acerca de la página. Esta información incluye el número de página, el
tipo de página, el espacio libre en la página y el Id. de unidad de asignación
del objeto propietario de la página.
En la
siguiente tabla se muestran los tipos de página utilizados en los archivos de
datos de una base de datos de SQL Server.
Tipo de página
|
Contenido
|
Datos
|
Las
filas de datos con todos los datos, excepto los datos text, ntext,
image, nvarchar(max), varchar(max), varbinary(max)
y xml, cuando text in row está establecido en ON.
|
Índice
|
Entradas
de índice.
|
Texto o
imagen
|
Tipos
de datos de objetos grandes:
Columnas
de longitud variable cuando la fila de datos sobrepasa 8 KB:
|
Mapa de
asignación global, Mapa de asignación global compartido
|
Información
acerca de si se han asignado las extensiones.
|
Espacio
disponible en páginas
|
Información
acerca de la asignación de páginas y el espacio libre disponible en las páginas.
|
Mapa de asignación de índices |
Información
acerca de las extensiones utilizadas por una tabla o un índice por unidad de
asignación.
|
Mapa
cambiado masivamente
|
Información
acerca de las extensiones modificadas por operaciones masivas desde la última
instrucción BACKUP LOG por unidad de asignación.
|
Mapa cambiado diferencial |
Información
acerca de las extensiones que han cambiado desde la última instrucción BACKUP
DATABASE por unidad de asignación.
|
Compatibilidad con filas largas
Las filas no pueden abarcar páginas; no obstante, se pueden apartar de la página de la fila ciertas partes de la fila para que ésta pueda tener un tamaño mucho mayor. La cantidad máxima de datos y de sobrecarga que está contenida en una única fila de una página es de 8.060 bytes (8 KB). Sin embargo, esto no incluye los datos almacenados en el tipo de página Texto o imagen. Esta restricción es menos estricta para tablas que contienen columnas varchar, nvarchar, varbinary o sql_variant. Cuando el tamaño de fila total de todas las columnas variables y fijas de una tabla excede el límite de 8.060 bytes, SQL Server mueve dinámicamente una o más columnas de longitud variable a páginas de la unidad de asignación ROW_OVERFLOW_DATA, empezando por la columna con el mayor ancho. Esto se realiza cuando una operación de inserción o actualización aumenta el tamaño total de la fila más allá del límite de 8060 bytes. Cuando una columna se mueve a una página de la unidad de asignación ROW_OVERFLOW_DATA, se mantiene un puntero de 24 bytes de la página original de la unidad de asignación IN_ROW_DATA. Si una operación posterior reduce el tamaño de la fila ,SQL Server vuelve a mover las columnas dinámicamente a la página de datos original.
Extenciones de una base de datos
Las extensiones son la unidad básica en la que se administra el espacio. Una extensión consta de ocho páginas contiguas físicamente, es decir 64 KB. Esto significa que las bases de datos de SQL Server tienen 16 extensiones por megabyte.SQL Server tiene dos tipos de extensiones:
- Las extensiones uniformes son propiedad de un único objeto; sólo el objeto propietario puede utilizar las ocho páginas de la extensión.
- Las extensiones mixtas, que pueden estar compartidas por hasta ocho objetos. Cada una de las 8 páginas de la extensión puede ser propiedad de un objeto diferente.
Las bases de datos de SQL Server 2005 utilizan tres tipos de archivos:
- Archivos
de datos principales
El archivo de datos principal es el punto de partida de la base de datos y apunta a los otros archivos de la base de datos. La extensión recomendada para los nombres de archivos de datos principales es .mdf. - Archivos
de datos secundarios
Los archivos de datos secundarios son todos los archivos de datos menos el archivo de datos principal. Puede que algunas bases de datos no tengan archivos de datos secundarios, mientras que otras pueden tener varios archivos de datos secundarios. La extensión de nombre de archivo recomendada para los archivos de datos secundarios es .ndf. - Archivos
de registro
Los archivos de registro almacenan toda la información de registro que se utiliza para recuperar la base de datos. Como mínimo, tiene que haber un archivo de registro por cada base de datos, aunque puede haber varios. La extensión de nombre de archivo recomendada para los archivos de registro es .ldf.
SQL Server no exige las extensiones de nombre de archivo .mdf, .ndf y .ldf, pero estas extensiones ayudan a identificar las distintas clases de archivos y su uso.
En SQL Server , las ubicaciones de todos los archivos de una base de datos se graban tanto en el archivo principal de la base de datos como en la base de datos master. SQL Server Database Engine (Motor de base de datos de SQL Server) utiliza casi siempre la información de ubicación del archivo de la base de datos master.
Nombres de archivo lógico y físico
Los archivos de SQL Server tienen dos nombres:
logical_file_name
Es el nombre que se utiliza para hacer referencia al archivo en todas las instrucciones Transact-SQL. El nombre de archivo lógico tiene que cumplir las reglas de los identificadores de SQL Server y tiene que ser único entre los nombres de archivos lógicos de la base de datos.
os_file_name
Es el nombre del archivo físico que incluye la ruta de acceso al directorio. Debe seguir las reglas para nombres de archivos del sistema operativo.
Los archivos de datos y de registro de SQL Server se pueden colocar en sistemas de archivos FAT o NTFS. Se recomienda utilizar el sistema de archivos NTFS por las características de seguridad que ofrece.Cuando se ejecutan varias instancias de SQL Server en un único equipo, cada instancia recibe un directorio predeterminado diferente para albergar los archivos de las bases de datos creadas en la instancia.
=====================================
Páginas de archivo de datos
Las páginas de un archivo de SQL Server están numeradas secuencialmente, comenzando por 0 para la primera página del archivo. Cada archivo de una base de datos tiene un número de identificador único.Para identificar de forma única una página de una base de datos, se requiere el identificador del archivo y el número de la página.
La primera página de cada archivo es una página de encabezado de archivo que contiene información acerca de los atributos del archivo. Algunas de las otras páginas del comienzo del archivo también contienen información de sistema, como mapas de asignación. Una de las páginas de sistema almacenadas en el archivo de datos principal y en el archivo de registro principal es una página de inicio de la base de datos que contiene información acerca de los atributos de la base de datos
===============================================
Tamaño de archivo
Los archivos de SQL Server pueden crecer automáticamente a partir del tamaño originalmente especificado. Cuando se define un archivo, se puede especificar un incremento de crecimiento. Cada vez que se llena el archivo, el tamaño aumenta en la cantidad especificada. Si hay varios archivos en un grupo de archivos, no crecerán automáticamente hasta que todos los archivos estén llenos.
El crecimiento tiene lugar por turnos:
Cada archivo también puede tener un tamaño máximo especificado. Si no se especifica un tamaño máximo, el archivo puede crecer hasta utilizar todo el espacio disponible en el disco. Esta característica es especialmente útil cuando SQL Server se utiliza como una base de datos incrustada en una aplicación para la que el usuario no dispone fácilmente de acceso a un administrador del sistema. El usuario puede dejar que los archivos crezcan automáticamente cuando sea necesario y evitar así las tareas administrativas de supervisar la cantidad de espacio libre en la base de datos y asignar más espacio manualmente. Archivos de instantáneas de bases de datos
La forma de archivo que utiliza una instantánea de base de datos para almacenar sus datos de copia por escritura depende de si la instantánea la ha creado un usuario o se utiliza internamente:
Una instantánea de base de datos que crea un usuario almacena sus datos en uno o más archivos dispersos. La tecnología de archivos dispersos es una característica del sistema de archivos NTFS. Al principio, un archivo disperso no incluye datos de usuario y no se le asigna espacio en disco.
Las instantáneas de bases de datos las utilizan internamente algunos comandos DBCC. Entre estos comandos se incluyen: DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKALLOC y DBCC CHECKFILEGROUP.
Una instantánea de base de datos interna utiliza secuencias de datos alternativos dispersos de los archivos de base de datos originales. Como los archivos dispersos, las secuencias de datos alternativos son una característica del sistema de archivos NTFS. El uso de las secuencias de datos alternativos dispersos permite que varias asignaciones de datos se asocien a un único archivo o carpeta sin afectar a las estadísticas de tamaño o volumen.
======================================================
Grupos de archivos de una base de datos:
Los objetos y archivos de una base de datos se pueden agrupar en grupos de archivos con fines de asignación y administración. Hay dos tipos de grupos de archivos:
Principal
El grupo de archivos principal contiene el archivo de datos principal y los demás archivos asignados específicamente a otro grupo de archivos. Todas las páginas de las tablas del sistema están asignadas al grupo de archivos principal.
Definidos por el usuario
Los grupos de archivos definidos por el usuario son los grupos de archivos especificados mediante la palabra clave FILEGROUP en la instrucción CREATE DATABASE o ALTER DATABASE.
Los archivos de registro nunca forman parte de un grupo de archivos. El espacio del registro se administra de forma independiente del espacio de datos.
Ningún archivo puede pertenecer a más de un grupo de archivos. Las tablas, los índices y los datos de objetos grandes se pueden asociar a un grupo de archivos específico. En este caso, todas sus páginas se asignarán a dicho grupo de archivos o se pueden crear particiones en las tablas e índices.
Un grupo de archivos de cada base de datos se designa como grupo de archivos predeterminado. Cuando se crea una tabla o un índice sin especificar un grupo de archivos, se supone que todas las páginas se asignarán a partir del grupo de archivos predeterminado. Sólo un grupo de archivos puede ser el predeterminado en un momento dado. Los miembros de la función fija db_owner de la base de datos pueden cambiar el grupo de archivos predeterminado de un grupo a otro. Si no se especifica ningún grupo de archivos predeterminado, se considera como tal al grupo de archivos principal.
======================================
Comentarios
Publicar un comentario