Obtener el tamaño de una tabla en SQL Server
Hoy en el trabajo tratando de ver el crecimiento de la Base de Datos me encontre con la pregunta de ¿que tamaño tendra cada tabla? y encontre un Procedimiento Almacenado en SQL Server que te lo dice, pero no lo iba a hacer tabla por tabla asi que decidi crear una consulta
Espero les sirva
Espero les sirva
SET NOCOUNT ON;
DECLARE
@fiMaxFilas INT,
@fiRenglonActual INT,
@fcComando VARCHAR(120)
SET @fiRenglonActual = 1
DECLARE @AllTables TABLE
(
fiIndice INT NOT NULL PRIMARY KEY,
fcNombreTabla VARCHAR(100) NOT NULL
)
INSERT INTO @AllTables
SELECT ROW_NUMBER() OVER(ORDER BY name) AS fiIndice,
name
FROM sysobjects
WHERE type = 'U'
SELECT @fiMaxFilas = MAX(fiIndice) FROM @AllTables
WHILE (@fiRenglonActual <= @fiMaxFilas )
BEGIN
SELECT @fcComando = 'sp_spaceused '+ fcNombreTabla FROM @AllTables WHERE fiIndice = @fiRenglonActual
EXECUTE (@fcComando)
SET @fiRenglonActual = @fiRenglonActual+1
END
Comentarios
Saludos!
Este código es más breve y da todo en una sola tabla.
Create PROCEDURE dbo.TableSpaceUsed
AS
-- Create the temporary table...
CREATE TABLE #tblResults
(
[name] nvarchar(50),
[rows] int,
[reserved] varchar(58),
[reserved_int] int default(0),
[data] varchar(50),
[data_int] int default(0),
[index_size] varchar(50),
[index_size_int] int default(0),
[unused] varchar(50),
[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
Deja el SQL a los expertos y sigue con tu .net
Abrir el árbol de la Instancia de SQL -> Base de datos que te interesa analizar.
Clic derecho con el mouse sobre la BD y aparecerá un menu, poner el mouse encima de informes-> informes estandar -> Uso de disco por tabla
Mas rápido y sin tirar ninguna linea de código obtienes el tamaño de cada tabla.
Espero te sea de ayuda.
Y sigue con tu SQL vas por buen camino
que malll
qyueee malllll
La gente q presume de más es la que carece de tanto