8 de abr. de 2011

SQLBURGER: Calculando o tamanho de cada tabela no SQL Server

Calculando o tamanho de cada tabela no SQL Server: Script para medir o tamanho das tabelas de uma base de dados.
Basta roda-lo e depois apenas executar como Store Procedure.
Code Snippet
  1. create proc sp_espacotabela
  2. as
  3.  
  4. /*
  5.   Fabiano Cores 02.12.2010
  6.   http://sqlburger.blogspot.com
  7. */
  8.  
  9.   declare @vname sysname
  10.   declare @tmpTamTabela table (
  11.     name       sysname     null
  12.   , rows       int         null
  13.   , reserved   varchar(25) null
  14.   , data       varchar(25) null
  15.   , index_size varchar(25) null
  16.   , unused     varchar(25) null )
  17.  
  18.   declare cp1 cursor local fast_forward read_only for
  19.     select name
  20.       from sysobjects
  21.      where type = 'U'
  22.      order by name
  23.  
  24.   open cp1
  25.  
  26.   while 1 = 1
  27.   begin
  28.     fetch next from cp1 into @vname
  29.     if @@fetch_status <> 0 break
  30.  
  31.     insert into @tmpTamTabela (name, rows, reserved
  32.                              , data, index_size, unused)
  33.       exec sp_spaceused @vname
  34.  
  35.   end
  36.   close cp1
  37.   deallocate cp1
  38.  
  39.   select name as 'Nome'
  40.        , rows as 'Linhas'
  41.        , convert(int, replace(reserved, ' KB','')) as 'Tamanho total'
  42.        , convert(int, replace(data, ' KB',''))as 'Dados'
  43.        , convert(int, replace(index_size, ' KB',''))as 'Index'
  44.        , convert(int, replace(unused, ' KB',''))as 'Não utilizado'
  45.     from @tmpTamTabela
  46.    order by convert(int, replace(reserved, ' KB','')) desc


O código acima já está preparado para ser salvo no banco de dados, através do nome sp_espacotabela. É so rodar e verificar o que esta lotando o disco do seu servidor ;)

0 comentários: