none
Tabelas x Datafiles RRS feed

Respostas

  • Ricardo,

     

    Se voce possui um FileGroup com apenas 1 DataFile, te garanto que todos os objetos deste filegroups estão contidos nesse datafile, porem se um filegroup possui N datafiles, é impossivel saber em qual datafile tal objeto se encontra, e isso é bom (menos para seu caso especifico rs..), pois voce pode simplismente criar uma tabela diferente em um filegroup X com N datafiles em N discos pequenos por exemplo, alem do objeto não ficar em apenas um dtafile, o mesmo pode se dividir entre os arquivos dentro de um filegroup.


    ------------------------------------------------------------- Oracle OCA11g
    quinta-feira, 28 de abril de 2011 12:04
    Moderador

Todas as Respostas

  • Olá Ricardo,

    Na verdade as tabelas estão nos filegroups que mapeiam para arquivos então a relação tabela vs data file pode não ser tão direta. Não sei qual SQL Server você está utilizando, mas o caminho é o mesmo. Mapear as tabelas para o índice clustered (ou a heap table) e posteriormente para o Filegroup.

    -- SQL Server 2000
    SELECT OBJECT_NAME(ID) As TabelaOuViewIdx, GroupName As FG FROM SYSINDEXES As I
    INNER JOIN SYSFILEGROUPS As S ON I.GroupID = S.GroupID
    WHERE IndID IN (0,1)
    -- SQL Server 2005 e superiores
    SELECT OBJECT_NAME(OBJECT_ID) As TabelaOuViewIDX, Name As FG
    FROM sys.partitions As S
    INNER JOIN sys.allocation_units As A ON S.hobt_id = A.allocation_unit_id
    INNER JOIN sys.filegroups As F ON A.data_space_id = F.data_space_id
    WHERE Index_ID IN (0,1) AND partition_number = 1
    

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    quarta-feira, 27 de abril de 2011 19:26
  • Gustavo, obrigado.

    Na verdade eu preciso mesmo saber é em qual datafile está determinado objeto.

    Eu preciso excluir um datafile, contudo, não estou conseguindo fazer um shirink empty, daí pensei em mover estes objetos para um segundo FILEGROUP que tenho aqui.

    Eu vi que tem um fileID em umas das dmv's que testei aqui mas não achei como linka com sys.objects.

     

    Att,


    View Ricardo Muramatsu's profile on LinkedIn
    quarta-feira, 27 de abril de 2011 20:00
  • Ricardo,

     

    Se voce possui um FileGroup com apenas 1 DataFile, te garanto que todos os objetos deste filegroups estão contidos nesse datafile, porem se um filegroup possui N datafiles, é impossivel saber em qual datafile tal objeto se encontra, e isso é bom (menos para seu caso especifico rs..), pois voce pode simplismente criar uma tabela diferente em um filegroup X com N datafiles em N discos pequenos por exemplo, alem do objeto não ficar em apenas um dtafile, o mesmo pode se dividir entre os arquivos dentro de um filegroup.


    ------------------------------------------------------------- Oracle OCA11g
    quinta-feira, 28 de abril de 2011 12:04
    Moderador
  • Entendi, tendo em vista que não é possível saber em qual datafile esta um objeto, optarei por movê-lo para outro filegroup.

    Obrigado.


    View Ricardo Muramatsu's profile on LinkedIn
    quinta-feira, 28 de abril de 2011 13:13