Por medio de este script podemos obtener el espacio en disco que ocupa una tabla y el detalle del espacio ocupado por cada uno de los indices de dicha tabla:
RESULTADO:
name rows reserved data index_size unused
------- ----------- ------------------ ------------------ ---------------- ------------------
Client 10580220 2809928 KB 1408328 KB 1384496 KB 17104 KB
IndexName IndexSizeKB
------------------------------- --------------------
IX_ForDataView 933944
IX_tuning_id_include_username 445144
PK_Client 1413736
SCRIPT: (en la variable @strNombreTabla se indica la tabla a analizar)
DECLARE @strNombreTabla VARCHAR(50)
SET @strNombreTabla = 'Client'
EXEC sp_spaceused @strNombreTabla
SELECT i.name AS IndexName, SUM(s.used_page_count) * 8 AS IndexSizeKB
FROM sys.dm_db_partition_stats AS s
JOIN sys.indexes AS i
ON s.[object_id] = i.[object_id]
AND s.index_id = i.index_id
WHERE s.[object_id] = object_id(@strNombreTabla )
GROUP BY i.name ORDER BY i.name
martes, 19 de abril de 2011
jueves, 14 de abril de 2011
Función Recursiva SPLIT , transformar una cadena de texto separada por un caracter (ej coma) en una tabla
Por medio de la sig. función (del tipo recursiva) podemos transformar una cadena de texto en tabla, ej:
Declare @stringtest as varchar(8000)
set @stringtest ='1,2,3,4,5,6,7,8,9'
Select * from [dbo].[Split_returns_Table](@stringtest,',')
RESULTADO:
Id
--
1
2
3
4
5
6
7
8
9
(9 row(s) affected)
Declare @stringtest as varchar(8000)
set @stringtest ='1,2,3,4,5,6,7,8,9'
Select * from [dbo].[Split_returns_Table](@stringtest,',')
RESULTADO:
Id
--
1
2
3
4
5
6
7
8
9
(9 row(s) affected)
FUNCION:
CREATE FUNCTION [dbo].[Split_returns_Table]
(
@Id varchar(8000),
@Separador varchar(8) --= ','
)
RETURNS TABLE
AS
RETURN
(
WITH SplitETC (Inicio, Fin)
AS
(
SELECT 1,
CHARINDEX(@Separador, @Id)
UNION ALL
SELECT Fin + LEN(@Separador),
CHARINDEX(@Separador, @Id, Fin + LEN(@Separador))
FROM SplitETC
WHERE Fin > 0
)
SELECT RTRIM(LTRIM(SUBSTRING(@Id, Inicio, Largo))) Id
FROM (SELECT Inicio,
CASE WHEN Fin IS NULL OR Fin = 0 THEN
LEN(@Id) + 1
ELSE
Fin
END - Inicio AS Largo
FROM SplitETC /*OPTION (MAXRECURSION 0) */) AS Split
)
Suscribirse a:
Entradas (Atom)