DotNetcr.com
Si deseas hacer un intercambio de links con DotNetcr, escríbenos aquí
Recibe las actualizaciones vía RSS
Te invitamos a unirte en nuestras redes
   http://www.facebook.com/DotNetcr
   http://www.twitter.com/dotnetcr

Como reducir el tamaño de la base de datos y del log en SQL Server

Por royrojas | 1/8/2006 | Visitas 17,746 | Voto 5.00
El objetivo de este artículo es optimizar nuestra base de datos utilizando las herramientas SQL Enterprise Manager y SQL Query Analyzer, reduciendo el tamaño de la base de datos y del log en SQL Server
Categorías : SQL Server
Generalmente el tamaño de nuestra base de datos va aumentando conforme se utilice, y no necesariamente por que se le agreguen nuevos datos, sino por consultas, transacciones, errores, índices, etc. Por este motivo tenemos que estar regularmente brindandole mantenimiento a nuestras bases de datos.

Como primer paso vamos a consultar el tamaño actual de la base de datos, para que, posteriormente podamos comparar el resultado luego de las instrucciones que vamos a realizar. Entonces ejecutaremor desde el SQL Query Analyzer el siguiente comando DBCC UPDATEUSAGE(0).

El DBCC UPDATEUSAGE(0) restablece la generación de informes de uso, de manera que sp_spaceused pueda informar correctamente acerca del tamaño de la base de datos, el espacio sin asignar, el tamaño de los datos, el tamaño del índice y el espacio sin usar. Normalmente, debe realizar esta operación sólo después de reconstruir los índices. (Tenga en cuenta que si no ejecuta DBCC UPDATEUSAGE(0) después de reconstruir los índices, sp_spaceused informará acerca de los números que existían antes de reconstruir los índices.)

Código que se debe de ejecutar en el SQL Query Analyzer:
DBCC UPDATEUSAGE(0)

Luego desde el Query vamos a ejecutar sp_spaceused que nos mostrará el tamaño actual de la base de datos, el espacio sin asignar, el tamaño de los datos, el tamaño del índice y el espacio sin usar.

Código que se debe de ejecutar en el SQL Query Analyzer:
sp_spaceused




Guarda esta información para que luego de las operaciones de mantenimiento puedas comparar y comprobar que realmente el tamaño de la base de datos ha sido reducido.

Para reducir el tamaño del fichero físico debemos utilizar una opción del menú del SQL Enterprise Manager, seleccionamos con el boton derecho del mouse la base de datos y optamos por "all tasks" (todas las tareas) luego "Shrink Database"



En esa acción se nos abre un cuadro de diálogo donde seleccionamos la opción "Move pages to beginning of file befote shrinking" pulsamos OK y esto reducirá el tamaño del fichero fisico.



Una vez realizado este proceso es recomendable utilizar las siguientes instrucciones en el Query Analyzer para borrar el log y reducir su tamaño.

BACKUP LOG base_de_datos WITH TRUNCATE_ONLY

DBCC SHRINKDATABASE ( base_de_datos , TRUNCATEONLY )

Luego de haber realizado estas acciones podemos volver a ejecutar los comandos mostrados arriba DBCC UPDATEUSAGE(0) y sp_spaceused en el Query para comparar el tamaño actual de la base de datos con el tamaño que tenía antes de las acciones de mantenimiento.

Importante es tener siempre respaldos de nuestra base de datos por cualquier inconveniente que se nos pueda prensentar, mas aún tener un respaldo actualizado antes de realizar cualquier operación de mantenimiento.

Ahora el siguiente paso luego de realizar la reducción del log de nuestra base de datos, se recomienda reconstruir los índices para mejorar el rendimiento de la base de datos. Aquí les dejo el link del artículo donde se explica como hacerlo. Como reconstruir los índices en nuestra base de datos SQL Server
Area de Comentarios
Por r3428 - Fecha: 2006/01/08 03:23 PM
muy bueno
Por alexzaga - Fecha: 2006/02/24 02:17 PM
Muy buen articulo
Por Anónimo - Fecha: 2006/03/08 08:10 PM
excelente, me redujo el log de la bd de 254 megas a 3 megas. excelente...
muchas gracias
Por Anónimo - Fecha: 2006/03/29 12:42 PM
EXELENTE EL PROCEDIMINETO, ME SALVO LA VIDA
Por Anónimo - Fecha: 2006/06/27 07:38 PM
Roy muchas gracias
Por Anónimo - Fecha: 2006/07/21 01:17 PM
EXCELENTE, GRACIAS HERMANO
Por Anónimo - Fecha: 2006/07/26 06:55 PM
Excelente Hermano me salvaste de comprar otro disco duro para el server
Por kener - Fecha: 2006/07/27 11:56 AM
Muy Bueno Roy Gracias
Por royrojas - Fecha: 2006/07/31 03:02 AM
excelente, que bueno que les ha servido el articulo.
me alegro

saludos
Por Anónimo - Fecha: 2006/09/26 03:35 PM
muy buen articulo, me funco con una bd, pero pos algo debe poder hacerse con otra bd,
mira mis datos

DBCC UPDATEUSAGE(0)

db size unallocated space
1449.05 MB 0.23 MB

exec sp_spaceused
reserved data index unused
1483088 KB 816032 KB 378784 KB 288272 KB

el único que vario fu el unused, con 4 kb de diferencia (ahora es menor)

pero no fue para nada significativo, a ver si me hechas la mano, vale :D?
contacto a ja.mota (- at gmail.com-)
Saludos
Por Anónimo - Fecha: 2006/12/08 11:48 AM
Excelente articulo muchas gracias!!!!!
Por Anónimo - Fecha: 2007/01/13 11:40 PM
Exelente articulo es el primero que me funciona sin dejar la bd en sospechosa jejej

Muchisimas Gracias!!!
Por Anónimo - Fecha: 2007/03/21 01:04 PM
Excelente articulo me alludado a liberar espacio ademas que despues que borre algunas tablas que no ocupaba siguiendo estos paso logre mayor espacio
Por Anónimo - Fecha: 2007/07/24 11:40 AM
ayudame tengo una bdd casi sin datos vacia solo es de transicion de datos de una bdd a otra pero pesa 4 gigas y la del erp que utilizo si acaso llega a 1.4 gigas y es la que realmnete tiene todos los datos que sucede no se que hacer y me aparecen unas tablas cono conflict al inicio del nombre no se que pasa ayudenmeeeee........ please
Por Anónimo - Fecha: 2007/09/08 11:32 AM
excelente articulo me ayudo en gran manera
Por Anónimo - Fecha: 2008/03/04 10:30 AM
muchas gracias!!! perfecto!!!
Por Anónimo - Fecha: 2008/08/22 11:08 AM
Excelente, muy buen aporte
Por Anónimo - Fecha: 2008/11/03 08:31 PM
como puedo estimar el tamaño de una base de datos¿
Por Anónimo - Fecha: 2011/03/02 10:19 AM
Muchas gracias perfecto documental buen aporte te agradesco mucho
Por Anónimo - Fecha: 2011/08/31 06:09 AM
ejecuté los comando tal cual colocas pero miralo que me arroja
RESERVADO DATOS INDICES SIN USAR
33046504 KB 12855720 KB 19745720 KB 445064 KB.
como hago para disminuir el tamaño de los indices
gracias.
Por Anónimo - Fecha: 2012/09/27 05:11 AM
Your post has moved the debate forward. Thanks for sahrnig!
Por Anónimo - Fecha: 2012/09/28 06:29 PM
M5ka8A , [url=http://mfdqunwevxxy.com/]mfdqunwevxxy[/url], [link=http://mozscpcsjqgy.com/]mozscpcsjqgy[/link], http://rvhohzbehmhp.com/
Por Anónimo - Fecha: 2012/09/29 03:21 PM
pPoqFl , [url=http://oroqkvvxxuxo.com/]oroqkvvxxuxo[/url], [link=http://ysmbkawksvsj.com/]ysmbkawksvsj[/link], http://odtzrqwzgyqo.com/
Ingrese su Comentario
Comentario
Para poder votar debe estar registrado en DotNetcr.com
Solo queda registrado el primer voto enviado
Voto


Últimos Recursos
ricardo leppe t
pedrojavier
CALIN
willipinru
richard
ragomez
PER 238
MEX 236
CRI 188
COL 118
ESP 105
ARG 88