Si queremos saber cuales tablas tienen espacio desperdiciado o cual es la tabla más grande, se puede utilizar el siguiente procedimiento almacenado.
-- Create the temporary table...
CREATE TABLE #tblResults
(
[name] nvarchar(20),
[rows] int,
[reserved] varchar(18),
[reserved_int] int default(0),
[data] varchar(18),
[data_int] int default(0),
[index_size] varchar(18),
[index_size_int] int default(0),
[unused] varchar(18),
[unused_int] int default(0)
)
-- Populate the temp table...
EXEC sp_MSforeachtable @command1=
"INSERT INTO #tblResults
([name],[rows],[reserved],[data],[index_size],[unused])
EXEC sp_spaceused '?'"
-- Strip out the " KB" portion from the fields
UPDATE #tblResults SET
[reserved_int] = CAST(SUBSTRING([reserved], 1,
CHARINDEX(' ', [reserved])) AS int),
[data_int] = CAST(SUBSTRING([data], 1,
CHARINDEX(' ', [data])) AS int),
[index_size_int] = CAST(SUBSTRING([index_size], 1,
CHARINDEX(' ', [index_size])) AS int),
[unused_int] = CAST(SUBSTRING([unused], 1,
CHARINDEX(' ', [unused])) AS int)
-- Return the results...
SELECT * FROM #tblResults
Se puede obtener tablas que tienen espacio desperdiciado....
Ejemplo: SELECT * FROM #tblResults where unused_int > 20000
Si queremos saber el espacio total utilizado de la base y el espacio libre, ejecutamos el siguiente procedimiento.
EXEC sp_spaceused
En muchas ocasiones cuando miramos desde el Administrador Corporativo, y nos informa que existe un espacio no utilizado muy grande y si ejecutamos la consulta anterior y totalizamos el espacion no utilizado nos da un valor diferente. A fin de actualizar esta información podemos ejecutar el procedimiento sp_spaceused con la opción de actualizar estadísticas.
EXEC sp_spaceused @updateusage = 'TRUE'
fuente: http://oberdata.com.ar/pred/blogs/ob/archive/2007/05/06/31157.aspx
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario