Esto se puede hacer mediante la eliminacin de uno o ms archivos de registro
virtuales inactivos. La unidad de reduccin del tamao es siempre el archivo de registro virtual. Por ejemplo, si tiene un archivo de registro de 600 megabytes (MB) que se ha dividido en seis registros virtuales de 100 MB, el tamao del archivo de registro se puede reducir nicamente en incrementos de 100 MB. El tamao del archivo se puede reducir a tamaos como 500 MB o 400 MB, pero no se puede reducir a tamaos como 433 MB o 525 MB. Un archivo de registro virtual que contenga entradas de registro activas, es decir, un archivo de registro virtual activo, es parte del registro lgico y no puede eliminarse. Para obtener ms informacin, vea Arquitectura fsica del registro de transacciones. NotaNota Motor de base de datos elige dinmicamente el tamao del archivo de registro virtual cuando se crean o se extienden archivos de registro. Para obtener ms informacin, vea Arquitectura fsica del registro de transacciones. En un archivo de registro, el tamao actual es el mismo que el tamao total de las pginas utilizadas por los archivos de registro virtuales. Tenga en cuenta, sin embargo, que las pginas no son utilizadas por los archivos de registro. Los archivos de registro virtuales que albergan parte del registro lgico no se pueden liberar. Si todos los archivos de registro virtuales de un archivo de registro albergan parte del registro lgico, no se podr reducir el archivo. La reduccin no ser posible hasta que el truncamiento del registro marque como inactivos uno o ms archivos de registro virtuales. Una operacin de reduccin de archivo slo puede eliminar los archivos de registro virtuales inactivos. Si no se especifica un tamao final, una operacin de reduccin de archivo slo quitar los archivos de registro virtuales inactivos que superen el ltimo archivo de registro virtual activo. Si se especifica un tamao final, una determinada operacin de reduccin de archivo slo eliminar los archivos de registro virtuales inactivos suficientes para aproximarse al tamao final, pero no superarlo. Por lo general, despus de la reduccin el archivo de registro es algo mayor que el tamao final y no podr ser nunca ms pequeo. Los archivos de registro virtuales hacen que resulte difcil predecir cunto se reducir realmente el archivo de registro. Cuando se reduce algn archivo, el espacio liberado debe proceder del final del archivo. Cuando se reduce un archivo de registro de transacciones, se liberan suficientes archivos de registro virtual del final del archivo de registro para reducir el registro al tamao solicitado por el usuario. El valor de target_size especificado por el usuario se redondea al siguiente lmite de archivo de registro virtual ms alto. Por ejemplo, si un usuario especifica un valor de target_size de 325 MB para nuestro archivo de ejemplo de 600 MB que contiene seis archivos de registro virtual de 100 MB, los dos ltimos archivos de registro virtuales se eliminan y el tamao del nuevo archivo es 400 MB.
Una operacin DBCC SHRINKDATABASE o DBCC SHRINKFILE intenta reducir
inmediatamente el archivo de registro fsico al tamao solicitado: Si ninguna parte del registro lgico de los archivos de registro virtual se extiende ms all de la marca target_size, los archivos de registro virtual que van despus de la marca target_size se liberan y la instruccin DBCC finaliza correctamente, sin mensajes. Si parte del registro lgico de los registros virtuales se extiende ms all de la marca target_size, el SQL Server Database Engine (Motor de base de datos de SQL Server) libera tanto espacio como sea posible y emite un mensaje informativo. El mensaje indica las acciones que se deben llevar a cabo para quitar el registro lgico de los registros virtuales al final del archivo. Tras llevar a cabo esta accin, puede volver a emitir la instruccin DBCC para liberar el espacio restante. Por ejemplo, suponga que un archivo de registro de 600 MB que contiene seis archivos de registro virtuales tiene un registro lgico que comienza en el registro virtual 3 y termina en el registro virtual 4 cuando se ejecuta una instruccin DBCC SHRINKFILE con un valor de target_size de 275 MB, que corresponde a las tres cuartas partes del tramo en el registro virtual 3: