Si bien la reducción es peligrosa por las razones mencionadas aquí. Hay un medio feliz entre la respuesta de Jimbo y la respuesta de John ... Siempre debe considerar seriamente si desea o no reducir su base de datos.
En un mundo ideal: crearía su base de datos con mucho espacio libre para crecer. Yo llamo a esto "Dimensionamiento correcto" su base de datos. Permitiría que este espacio libre esté allí y no se esfuerce por devolverlo y mantener su tamaño total justo en el tamaño utilizado. ¿Por qué? Debido a que su base de datos eventualmente crecerá nuevamente ... Luego se encogerá nuevamente ... Y se verá atrapado en este horrible patrón de encogimientos inútiles seguidos de crecimientos, y todo el tiempo, como algunos han señalado, estará aumentando su fragmentación de índice.
He publicado un blog sobre esto en el que advertí a la gente: " ¡No toquen ese botón de contracción! ", Pero a veces ... A veces es necesario. Si tiene una base de datos grande, solo liberó un espacio significativo y no espera volver a crecer nunca más; bueno, entonces está bien considerar la reducción como una operación única, siempre que pueda ocuparse de su fragmentación del índice después de la reconstrucción ellos. La operación de reducción puede llevar mucho tiempo, por lo que querrá planificarla para un momento en el que pueda pagar el precio de una reducción. El enfoque de crear una base de datos vacía y copiar datos en ella funciona, pero eso puede ser muy difícil con bases de datos más grandes y muchos datos.
Si planea agregar ese espacio a la base de datos a través del uso normal y los patrones de crecimiento en el futuro, entonces es posible que desee dejar el espacio allí.
también
Dijiste que "borraste" tu registro de transacciones. Me gustaría saber cómo hiciste esto, pero a medida que leas la publicación que compartí y las demás de la serie, verás algunos consejos sobre la administración del registro de transacciones. Pero en resumen: si está en modo de Recuperación completa, debe realizar copias de seguridad de registros regulares para mantener el registro reutilizándose. De lo contrario, sin copias de seguridad de registros mientras está en modo completo, el archivo de registro sigue creciendo y creciendo y siempre guarda lo que ha hecho porque le dijo a SQL que no solo desea mantener ese registro para la recuperación de fallas, sino que desea mantener un copia de seguridad manual para reproducir transacciones / deshacer transacciones para recuperar en un punto específico en el tiempo con fines de recuperación ... Si está en una situación simple y ve que el registro crece excesivamente,BEGIN TRAN ... do work.... COMMIT TRAN
o si acaba de emitir una gran DELETE
declaración y eliminó todo un desorden de datos en una transacción implícita).
También supongo que está buscando este espacio libre en su sistema de archivos. Si lo está buscando dentro de SQL y dentro de ese archivo grande que tiene, podría ser que esté esperando que se complete la limpieza fantasma si está buscando inmediatamente después de su operación. Paul Randal bloguea sobre Ghost Cleanup .
Cuando elimina datos, SQL Server reserva su espacio para su uso posterior para insertar nuevos datos. Necesita reducir la base de datos. Puedes encontrar más información aquí .
fuente
Encontré esto porque acabo de eliminar un montón de tablas de respaldo porque mi base de datos se había "agotado". Seguí mirando la propiedad "Tamaño", pensando por qué esto no se está volviendo más pequeño. . Después de leer esto, no, no quiero reducir la base de datos. Lo que quiero hacer es "reclamar" el espacio para la basura que acabo de eliminar. Lo que necesitaba mirar era "Espacio disponible". Estoy pensando que quizás eso es lo que alguien más podría necesitar para mirar eso también.
fuente
Vale la pena señalar también que si la tabla tiene índices, puede existir fragmentación después de eliminar grandes extensiones de datos. Hoy tenía una mesa que tenía ~ 70 millones de registros, con aproximadamente 13 GB. Lo limpié a 1639 registros (el resto fue generado por un solo error) pero la tabla todavía ocupaba alrededor de 4.5 GB. Después de reconstruir todos los índices en la tabla, solo tomaba 85 páginas (680kb). Después de eso, utilicé un archivo retráctil incremental para recuperar el espacio (y arreglé el error en el sistema para evitar que se repita).
fuente