Resumen:
En este apartado se dan a conocer las partes de la arquitectura de una base de datos, las dimensiones de los archivos, así como los archivos principales que utiliza un gestor de base de datos para reconocer y administrar la información en una base de datos. Los archivos principales del sistema y su comportamiento también son explicados a continuación.La aplicación de las instancias en una base de datos, el manejo de tablas y de información en cada etapa, paginación y crecimiento de indices y archivos de sistema también es cubierta en esta recopilación de información.
También se incluyó un ejemplo de creación de archivos del sistema en una base de datos con el resultado, documentado para el usuario.
-----------------------------------------------------------------------------------------------------------------------
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.
|
Los
archivos de registro no contienen páginas, contienen series de registros.
|
Las filas
de datos se colocan en las páginas una a continuación de otra, empezando
inmediatamente después del encabezado. Al final de la página, comienza una
tabla de desplazamiento de fila y cada una de esas tablas contiene una entrada
para cada fila de la página. Cada entrada registra la distancia del primer byte
de la fila desde el inicio de la página. Las entradas de la tabla de
desplazamiento de fila están en orden inverso a la secuencia de las filas de la
página.
Compatibilidad con filas largas
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.
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.
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
- 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.
Ejemplo de archivos y grupos de archivos
USE master; GO -- Create the database with the default data -- filegroup and a log file. Specify the -- growth increment and the max size for the -- primary data file. CREATE DATABASE MyDB ON PRIMARY ( NAME='MyDB_Primary', FILENAME= 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_Prm.mdf', SIZE=4MB, MAXSIZE=10MB, FILEGROWTH=1MB), FILEGROUP MyDB_FG1 ( NAME = 'MyDB_FG1_Dat1', FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_FG1_1.ndf', SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB), ( NAME = 'MyDB_FG1_Dat2', FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_FG1_2.ndf', SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB) LOG ON ( NAME='MyDB_log', FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB.ldf', SIZE=1MB, MAXSIZE=10MB, FILEGROWTH=1MB); GO ALTER DATABASE MyDB MODIFY FILEGROUP MyDB_FG1 DEFAULT; GO -- Create a table in the user-defined filegroup. USE MyDB; CREATE TABLE MyTable ( cola int PRIMARY KEY, colb char(8) ) ON MyDB_FG1; GO
Esto da como resultado:
Más Información - https://technet.microsoft.com/es-es/library/ms190969(v=sql.105).aspx
Más Información - https://technet.microsoft.com/es-es/library/ms179316(v=sql.105).aspx
No hay comentarios:
Publicar un comentario