• Lunes 6 de Mayo de 2024, 11:51

Autor Tema:  Crecimiento desmedido base datos sql 2000  (Leído 1204 veces)

oec2509

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Crecimiento desmedido base datos sql 2000
« en: Jueves 4 de Junio de 2009, 23:30 »
0
Buenos días, un cordial saludo para todos, espero me puedan ayudar con la siguiente situación

Mi panorama es más o menos el siguiente, tengo dos servidores con Windows server 2003 un dominio principal donde manejo los usuarios y el Exchange y tengo un dominio secundario donde tengo instalado SQL 2000, todo anda bastante bien.
Hace más o menos 9 meses note que la base de datos empezó a crecer sin razón aparente, hasta que llego a pesar más o menos 2.8 GB cuando el tamaño normal no llega a 1 GB.

En aquella oportunidad lo que tuve que hacer fue utilizando el utilitario de importar y exportar pase la información de todas las tablas a otra base de datos local,  al hacer el este proceso copio la información con el tamaño real que es más o menos 800 MB  de información, posteriormente elimine la base de datos con información desmedida, cree una base de datos nueva y luego pase la información de la base de datos local que realice inicialmente.

Después de realizar este proceso todo había trabajado normalmente hasta hace algunos días que empezó a suceder la misma situación nuevamente.

Mi consulta es si alguno sabe que es lo que puede estar sucediendo, tengo algo mal configurado o  algún parámetro de crecimiento mal asignado. desde ya les agradezco toda la colaboración que me puedan brindar

Muchas gracias

Orlando Estrada
San José,  Costa Rica

Shiquilla

  • Miembro MUY activo
  • ***
  • Mensajes: 188
  • Nacionalidad: es
    • Ver Perfil
    • http://www.songesoft.com
Re: Crecimiento desmedido base datos sql 2000
« Respuesta #1 en: Sábado 6 de Junio de 2009, 12:40 »
0
Podrías mirar el LOG de la base de datos.

Este Script regenera los índices de la base de datos y después de regenerarlos reduce el tamaño de los ficheros.
Código: SQL
  1.  
  2. BEGIN
  3.     SET NOCOUNT ON
  4.  
  5.     DECLARE @sLogicoMDF VARCHAR(250)
  6.     DECLARE @sLogicoLDF VARCHAR(250)
  7.  
  8.     DECLARE @rs CURSOR
  9.     DECLARE @sTabla VARCHAR(200)
  10.     DECLARE @sSQL VARCHAR(2000)
  11.    
  12.     SET @rs = CURSOR FOR SELECT NAME FROM BASEDATOS..SysObjects WHERE xType = 'U' AND NAME <> 'dtproperties' ORDER BY Name
  13.     OPEN @rs
  14.     FETCH NEXT FROM @rs INTO @sTabla
  15.     WHILE @@FETCH_STATUS = 0
  16.     BEGIN
  17.         SET @sSQL = 'DBCC DBREINDEX (''BASEDATOS.dbo.' + LTRIM(@sTabla) + ''') WITH NO_INFOMSGS'
  18.         EXEC (@sSQL)
  19.         FETCH NEXT FROM @rs INTO @sTabla        
  20.     END
  21.     CLOSE @rs
  22.     DEALLOCATE @rs
  23.  
  24.     -- Una vez regenerados los índices, compactamos ficheros
  25.     SELECT @sLogicoMDF = RTRIM(LTRIM(ISNULL(NAME, ''))) FROM BASEDATOS..SYSFILES WHERE CAST(GroupID AS BIT) = 1
  26.     SELECT @sLogicoLDF = RTRIM(LTRIM(ISNULL(NAME, ''))) FROM BASEDATOS..SYSFILES WHERE CAST(GroupID AS BIT) = 0
  27.  
  28.     USE BASEDATOS
  29.     IF LEN(@sLogicoMDF) > 0
  30.     BEGIN
  31.         CHECKPOINT
  32.         DBCC SHRINKFILE (@sLogicoMDF, 7)
  33.         CHECKPOINT
  34.     END
  35.  
  36.     IF LEN(@sLogicoLDF) > 0
  37.     BEGIN
  38.         CHECKPOINT
  39.         DBCC SHRINKFILE (@sLogicoLDF, 7)
  40.         CHECKPOINT
  41.     END
  42.  
  43.     SET NOCOUNT OFF
  44. END
  45.  
  46.  

Espero que te sirva.

Saludos,
« §hÿqµïllæ »