Como listar o tamanho das tabelas no SQL Server e no MySQL

Como listar o tamanho das tabelas no SQL Server e no MySQL

Para quem trabalha com muitos dados, pode ser interessante fazer backup de tabelas muito grandes, de modo a melhorar o desempenho.

Se você por exemplo tem uma tabela que recebe uma grande quantidade de dados por dia, como uma tabela de log, pode considerar fazer periodicamente uma cópia para esvaziar a tabela, deixando apenas os registros mais recentes.

Outra necessidade que você pode ter é saber quais as tabelas com a maior quantidade de registros.

Vamos ver scripts que permitem obter estas informações no SQL Server e no MySQL

O primeiro script que vamos ver é para o SQL Server.

O script abaixo ajuda nestas duas situações, ele mostra o tamanho das tabelas e a quantidade de registros.

 

SELECT 

    t.NAME AS TableName,

    s.Name AS SchemaName,

    p.rows AS RowCounts,

    SUM(a.total_pages) * 8 AS TotalSpaceKB, 

    SUM(a.used_pages) * 8 AS UsedSpaceKB, 

    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB

FROM 

    sys.tables t

INNER JOIN      

    sys.indexes i ON t.OBJECT_ID = i.object_id

INNER JOIN 

    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id

INNER JOIN 

    sys.allocation_units a ON p.partition_id = a.container_id

LEFT OUTER JOIN 

    sys.schemas s ON t.schema_id = s.schema_id

WHERE 

    t.NAME NOT LIKE dt%  

    AND t.is_ms_shipped = 0

    AND i.OBJECT_ID > 255 

GROUP BY 

    t.Name, s.Name, p.Rows

ORDER BY 

    t.Name

 

Agora vamos ver como fazer o mesmo utilizando o MySQL

SELECT

  TABLE_NAME AS `Tabela`,

  TABLE_ROWS as Registros,

  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Tamanho (MB)`

FROM

  information_schema.TABLES

WHERE

    TABLE_SCHEMA = "NOME_DO_BANCO_DE_DADOS"

ORDER BY

  (DATA_LENGTH + INDEX_LENGTH)

DESC;

 

Outros conteudos que podem ser de seu interesse

Validar CPF com SQL Server
27/01/2020SQL

Validar CPF com SQL Server

Aprenda a criar uma função para validar o CPF

Saiba mais...
Localizando tabela por data de criação com SQL Server ou MySQL
08/08/2016SQL

Localizando tabela por data de criação com SQL Server ou MySQL

Uma dica rápida para quem trabalha com SQL Server ou MySQL e deseja localizar tabelas por data de criação

Saiba mais...

Conteúdo sobre banco de dados sem complicação!