Para visualizar el espacio utilizado por la tabla clientes.
EXEC sp_spaceused 'clientes' |
Si se omite el parámetro, el procedimiento almacenado muestra el espacio utilizado por la base de datos actual.
EXEC sp_spaceused |
Para optimizar el proceso dejo el procedimiento almacenado que lista todas las tablas y vistas.
CREATE PROCEDURE USP_OBTENER_ESTADISTICA_TABLAS AS BEGIN /*===============================*/ /* Estadistica Tablas */ /*===============================*/ DECLARE @SQL AS VARCHAR(255) DECLARE @TOTAL DECIMAL(18,0) --Cursor que contiene todos los objetos que ocupan espacio DECLARE objects_cursor CURSOR LOCAL FAST_FORWARD READ_ONLY FOR SELECT NAME FROM sysobjects o WHERE o.xtype = 'U' or o.xtype = 'V' --Tabla temporal para albergar los resultados CREATE TABLE #results ( Nombre SYSNAME, Filas CHAR(11), Reservado VARCHAR(18), Datos VARCHAR(18), Tamano_Indice VARCHAR(18), Libre VARCHAR(18) ) --Recorremos el cursor obteniendo la información de espacio ocupado DECLARE @object_name AS SYSNAME OPEN objects_cursor FETCH NEXT FROM objects_cursor INTO @object_name; WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO #results (Nombre,Filas,Reservado,Datos,Tamano_Indice,Libre) EXEC sp_spaceused @object_name FETCH NEXT FROM objects_cursor INTO @object_name; END CLOSE objects_cursor; DEALLOCATE objects_cursor; -- Quitamos "KB" para poder ordenar UPDATE #results SET Reservado = LEFT(Reservado,LEN(Reservado)-3), Datos = LEFT(Datos,LEN(Datos)-3), Tamano_Indice = LEFT(Tamano_Indice,LEN(Tamano_Indice)-3), Libre = LEFT(Libre,LEN(Libre)-3) --Ordenamos la información por el tamaño ocupado SELECT Nombre, Reservado AS [Tamaño en Disco (KB)], Datos AS [Datos (KB)], Tamano_Indice AS [Indices (KB)], Filas AS Filas_Total FROM #results ORDER BY CONVERT(bigint, Reservado) DESC --Eliminar la tabla temporal DROP TABLE #results END |