Oct 30, 2007

Sql Server: Tamaños de bases de datos y objetos nuevos





Este script entrega el tamaño en detalle de las bases de datos y además entrega los objetos nuevos de cada una de ellas, este script lo utilizo mucho en mis monitoreos.




print 'Tamaño de las bases de Datos y objetos nuevos dentro estas'
declare @dbname varchar(100)
Declare @SQL VarChar(1000)
declare curdb cursor for
SELECT DB_NAME(dbid) AS DB_NAME
FROM sysdatabases
--WHERE DB_NAME(dbid) IN ('BINARIA','CARGA_SOTEK','SOTEK','SOTEK_GESTION')
ORDER BY dbid
open curdb
FETCH NEXT FROM curdb INTO @dbname
while @@FETCH_STATUS = 0
BEGIN
PRINT 'BASE DE DATOS: '+@dbname+' PROCEDIMIENTO SP_HELPDB'
exec sp_helpdb @dbname
Select @SQL = 'use '+@dbname+' exec sp_spaceused '
PRINT 'BASE DE DATOS: '+@dbname+' PROCEDIMIENTO SP_SPACEUSED'
Exec ( @SQL)
SELECT @SQL = '
SELECT
SYSUSERS.NAME Propietario,
SYSOBJECTS.NAME Nombre,
CASE SYSOBJECTS.XTYPE
WHEN ''C'' THEN ''Restricción CHECK''
WHEN ''F'' THEN ''Foreign Key''
WHEN ''K'' THEN ''Primary Key''
WHEN ''P'' THEN ''Procedimiento''
WHEN ''S'' THEN ''Tabla de Sistema''
WHEN ''TR'' THEN ''Trigger''
WHEN ''U'' THEN ''Tabla''
WHEN ''V'' THEN ''Vista''
END ''Tipo de objeto'',
LEFT(CONVERT(VARCHAR, SYSOBJECTS.CRDATE, 120), 10) AS ''Fecha Creación''
FROM
SYSOBJECTS,
SYSUSERS
WHERE
SYSOBJECTS.CRDATE > GETDATE() - 10
--AND SYSOBJECTS.UID = SYSUSERS.UID
ORDER BY
SYSOBJECTS.XTYPE,
SYSUSERS.NAME
'
PRINT ''
PRINT 'OBJETOS NUEVOS EN LA BASE DE DATOS '+@dbname
Exec ( @SQL)
FETCH NEXT FROM curdb INTO @dbname
END
CLOSE curdb
DEALLOCATE curdb
GO

No comments:

Post a Comment