Skip to content

Commit ffad812

Browse files
committed
Pequenas melhorias nas descrições
1 parent 3f39f04 commit ffad812

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

Tables/TableSize2.sql

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
Lista o espaço ocupado por tabelas, incluindo consumo de index, LOB e compressão.
88
Útil para descobrir quais tabelas estão consumindo maior espaço.
99
O script considera todas as partições de uma tabela.
10+
11+
Também, são incluídos os dados de Row Overflow e LOB.
12+
LOB são tipos para armazenar grande quantidades de dados. Eles são armazenados em estruturas separadas da linha na tabela.
13+
Row overflow é quando algumas colunas com varchar ultrapassam o limite da linha. Mais info aqui: https://learn.microsoft.com/en-us/sql/relational-databases/pages-and-extents-architecture-guide?view=sql-server-ver17#large-row-support
1014
*/
1115

1216
SELECT
@@ -18,16 +22,32 @@ FROM
1822
CROSS APPLY
1923
(
2024
SELECT
21-
p.object_id
22-
,TotalRows = SUM(CASE WHEN p.index_id <= 1 AND au.type_desc = 'IN_ROW_DATA' THEN p.rows ELSE 0 END)
23-
,TotalMB = SUM(au.total_pages)/128.0
25+
p.object_id
26+
-- total de linhas estimado. Como faço join com a alloc units, preciso filtrar para não duplicar o total.
27+
,TotalRows = SUM(CASE WHEN p.index_id <= 1 AND au.type_desc = 'IN_ROW_DATA' THEN p.rows ELSE 0 END)
28+
29+
-- tamanho total, somando toda a estrutura envolvida (indices, lobs, compressão etc.). Isso é tudo que sua tabela ocupa nos arquivos.
30+
-- as próximas colunas representam uma parte desse total
31+
,TotalMB = SUM(au.total_pages)/128.0
32+
33+
-- tamanho somente de lobs (todos os indices)
2434
,LobMB = ISNULL(SUM(CASE WHEN au.type_desc = 'LOB_DATA' THEN au.total_pages ELSE 0 END)/128.0,0)
25-
,RowOverMB = ISNULL(SUM(CASE WHEN au.type_desc = 'ROW_OVERFLOW_DATA' THEN au.total_pages ELSE 0 END)/128.0,0)
26-
,IndexSize = ISNULL(SUM(CASE WHEN p.index_id > 1 THEN au.total_pages ELSE 0 END)/128.0,0)
27-
,PageCompressionMB = SUM(CASE WHEN p.data_compression_desc = 'PAGE' THEN au.total_pages ELSE 0 END)/128.0
28-
,RowCompressionMB = SUM(CASE WHEN p.data_compression_desc = 'ROW' THEN au.total_pages ELSE 0 END)/128.0
29-
,TableCompressionMB = SUM(CASE WHEN p.data_compression_desc != 'NONE' AND p.index_id <= 1 THEN au.total_pages ELSE 0 END)/128.0
30-
,TableSize = SUM(CASE WHEN p.data_compression_desc != 'NONE' AND p.index_id <= 1 THEN au.total_pages ELSE 0 END)/128.0
35+
36+
-- tamanho somente de row overflow (todos os indices).
37+
,RowOverMB = ISNULL(SUM(CASE WHEN au.type_desc = 'ROW_OVERFLOW_DATA' THEN au.total_pages ELSE 0 END)/128.0,0)
38+
39+
-- Tamanho de todos os índice (incluindo lobs e rowoverflow nesses índices)!
40+
,IndexSize = ISNULL(SUM(CASE WHEN p.index_id > 1 THEN au.total_pages ELSE 0 END)/128.0,0)
41+
42+
-- Tamanho total da estruturas comprimidas.
43+
,PageCompressionMB = SUM(CASE WHEN p.data_compression_desc = 'PAGE' THEN au.total_pages ELSE 0 END)/128.0
44+
,RowCompressionMB = SUM(CASE WHEN p.data_compression_desc = 'ROW' THEN au.total_pages ELSE 0 END)/128.0
45+
46+
-- total da tabela apenas (Sem os indices) comprimido
47+
,TableCompressionMB = SUM(CASE WHEN p.data_compression_desc != 'NONE' AND p.index_id <= 1 THEN au.total_pages ELSE 0 END)/128.0
48+
49+
-- Tamanho total da tabela (sem índices), indepentende está comrpimido ou não. Se estiver comprimido, será igual a coluna TableCompressionMB
50+
,TableSize = SUM(CASE WHEN p.index_id <= 1 THEN au.total_pages ELSE 0 END)/128.0
3151
FROM
3252
sys.allocation_units au
3353
JOIN

0 commit comments

Comments
 (0)