Jul 27 2011

#QuickTip 5 - [SQL Server] Como consultar o tamanho da tabela no banco de dados

Category: QuickTip | SQL ServerSuzuki @ 06:27

Olá pessoal.
Novamente com mais uma dica pra você que usa o SQL Server.
Aqui nesta postagem estou utilizando o SQL Server 2005 Express com o Management Studio.
Para esta postagem utilizaremos a procedure SP_SPACEUSED.

O que esta procedure faz?
Resposta: Exibe o número de linhas, o espaço em disco reservado e o espaço em disco usado por uma tabela, exibição indexada ou fila Service Broker no banco de dados atual ou exibe o espaço em disco reservado e usado pelo banco de dados inteiro.

Então ao executar a procedure passando como parâmetro o nome de uma tabela teremos os seguintes dados:

Nome da coluna Tipo de dados Descrição
name nvarchar(128)

Nome do objeto para o qual foram solicitadas informações de uso do espaço.O nome de esquema do objeto não é retornado. Se o nome de esquema for obrigatório, use as exibições de gerenciamento dinâmico sys.dm_db_partition_stats ou sys.dm_db_index_physical_stats para obter informações de tamanho equivalentes.

rows

char(11)

Número de linhas existentes na tabela. Se o objeto especificado for uma fila Service Broker, essa coluna indicará o número de mensagens na fila.
reserved varchar(18) Total de espaço reservado para objname.
data varchar(18) Total de espaço usado por dados em objname.
index_size varchar(18) Total de espaço usado por índices em objname.
unused varchar(18) Total de espaço reservado para objname, mas ainda não usado.

Você pode encontrar mais detalhes a respeito da SP_SPACEUSED no site da MSDN -> http://msdn.microsoft.com/pt-br/library/ms188776.aspx

Ok. Mas como fazer isso para todas as tabelas da nossa base de dados?
Executar um a um? Não.
Um maneria de fazer isso é usando a dica da postagem anterior, ou seja, utilizando a procedure SP_MSFOREACHTABLE.

Veja a postagem anterior: #QuickTip 4 - [SQL Server] Como executar um select count em todas as tabelas de uma base de dados

Então podemos executar de duas maneiras (que fazem a mesma tarefa), percorrem todas as tabelas da base de dados e executam o comando passado como parâmetro.
Você pode verificar como, a seguir:

  1. /* SCRIPT 1*/   
  2. EXEC SP_MSFOREACHTABLE 'SP_SPACEUSED ''?'''  
  3.   
  4. /* OR SCRIPT 2*/   
  5. EXEC SP_MSFOREACHTABLE @COMMAND1="SP_SPACEUSED '?'"  

No meu caso tenho apenas 2 tabelas de exemplos então o resultado foi este:

quickTip5_1

Por hoje foi isso.
Até a próxima.

Não julgueis, e não sereis julgados; não condeneis, e não sereis condenados; soltai, e soltar-vos-ão. (Lucas 6:37)

Tags: , , , ,

Comments

1.
pingback thiagosatoshisuzuki.wordpress.com says:

Pingback from thiagosatoshisuzuki.wordpress.com

#QuickTip 5 – [SQL Server] Como consultar o tamanho da tabela no banco de dados « Thiago Satoshi Suzuki

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading