Qual o Filegroup de uma tabela?

Galerinha,

Hoje quero repassar para vocês uma pequena consulta que precisei escrever recentemente para um projeto de movimentação de arquivos de banco de dados para um novo storage.

Pensando em realizar uma separação adequada e não movimentar tabelas com um alto I/O para a mesma estrutura de discos, necessitei descobrir em quais discos estavam determinadas tabelas dos bancos de dados.

Para encontrar essa informação escrevi a seguinte consulta:

SELECT DISTINCT
DS.NAME AS NOMEFILEGROUP,
SO.NAME AS NOMETABELA,
DB.PHYSICAL_NAME AS ARQUIVOFISICO
FROM
SYS.OBJECTS SO
INNER JOIN
SYS.PARTITIONS SP ON SO.OBJECT_ID = SP.OBJECT_ID
INNER JOIN
SYS.ALLOCATION_UNITS SA ON SA.CONTAINER_ID = SP.HOBT_ID
INNER JOIN
SYS.TABLES TB ON SO.OBJECT_ID=TB.OBJECT_ID
INNER JOIN
SYS.DATA_SPACES DS ON DS.DATA_SPACE_ID=SA.DATA_SPACE_ID
INNER JOIN
SYS.DATABASE_FILES DB ON DB.DATA_SPACE_ID=DS.DATA_SPACE_ID
WHERE index_id = 1 AND SO.NAME IN(<NOMETABELA>)

Como podem visualizar, é uma consulta bem simples que utiliza apenas algumas views de sistema do SQL Server e que retorna o nome do FILEGROUP, o nome da TABELA e o nome do ARQUIVO DE DADOS em que esta tabela está localizada.

Espero que tenham gostado e não deixem de fazer sua inscrição no blog para receber os próximos posts.

Grande abraço.

Anúncios
  1. 04/12/2013 às 17:26

    Boa Vitão!!! Sinistro…

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: