-
En el proceso de uso de SQL Server, a menudo nos encontramos con situaciones en las que el registro de la base de datos es muy grande. Cuando encontramos este problema, presentamos dos métodos para resolverlo.
Método uno
En circunstancias normales, reducir una base de datos SQL no puede reducir en gran medida el tamaño de la base de datos. Su función principal es reducir el tamaño del registro. Esta operación debe realizarse con regularidad para evitar que el registro de la base de datos crezca demasiado.
1. Configure el modo de base de datos en modo simple: abra SQL Enterprise Manager, haga clic en Microsoft SQL Server en el directorio raíz de la consola-->grupo SQL Server-->haga doble clic para abrir su servidor-->haga doble clic para abrir la base de datos directorio-->Seleccione el nombre de su base de datos (como Foro de base de datos del Foro)-->luego haga clic derecho y seleccione Propiedades-->Seleccione Opciones-->Seleccione "Simple" en el modo de conmutación por error y luego presione Aceptar para guardar
2. Haga clic derecho en la base de datos actual y vea la base de datos reducida en todas las tareas. Generalmente, no es necesario ajustar la configuración predeterminada. Simplemente haga clic en Aceptar.
3. Después de reducir la base de datos, se recomienda restablecer las propiedades de la base de datos al modo estándar. El método de operación es el mismo que el del primer punto, porque el registro suele ser una base importante para restaurar la base de datos en algunas circunstancias anormales.
ESTABLECER SIN CUENTA EN
DECLARAR @LogicalFileName nombre del sistema,
@MaxMinutes INT,
@NuevoTamañoINT
USE nombre de tabla: el nombre de la base de datos en la que se operará
SELECT @LogicalFileName = 'tablename_log', -- nombre del archivo de registro
@MaxMinutes = 10, - Límite de tiempo permitido para ajustar el registro.
@NewSize = 1: el tamaño del archivo de registro que desea configurar (M)
--Configurar/inicializar
DECLARAR @OriginalSize int
SELECCIONAR @TamañoOriginal = tamaño
DE archivos del sistema
DONDE nombre = @NombreDeArchivoLógico
SELECCIONE 'Tamaño original de' + db_name() + ' LOG es ' +
CONVERTIR(VARCHAR(30),@OriginalSize) + ' 8K páginas o ' +
CONVERTIR(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
DE archivos del sistema
DONDE nombre = @NombreDeArchivoLógico
CREAR TABLA DummyTrans
(DummyColumn char (8000) no es nulo)
DECLARAR @Contador INT,
@StartTime FECHA HORA,
@TruncLogVARCHAR(255)
SELECCIONE @HoraInicio = OBTENER FECHA(),
@TruncLog = 'REGISTRO DE COPIA DE SEGURIDAD ' + db_name() + ' CON TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EJECUTIVO (@TruncLog)
-- Envuelva el tronco si es necesario.
MIENTRAS @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- el tiempo no ha expirado
Y @OriginalSize = (SELECCIONE el tamaño DE sysfiles DONDE nombre = @LogicalFileName)
Y (@OriginalSize * 8/1024) > @NewSize
COMENZAR - Bucle exterior.
SELECCIONAR @Contador = 0
MIENTRAS ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
COMENZAR - actualizar
INSERTAR VALORES DE DummyTrans ('Registro de llenado')
ELIMINAR DummyTrans
SELECCIONAR @Contador = @Contador + 1
FIN
EJECUTIVO (@TruncLog)
FIN
SELECCIONE 'Tamaño final de ' + db_name() + ' LOG es ' +
CONVERTIR(VARCHAR(30),tamaño) + ' 8K páginas o ' +
CONVERTIR(VARCHAR(30),(tamaño*8/1024)) + 'MB'
DE archivos del sistema
DONDE nombre = @NombreDeArchivoLógico
MESA DE GOTA DummyTrans
DESACTIVAR SIN CUENTA