none
Manutenção índices e fillfactor com ganho de espaço em disco RRS feed

  • Pergunta

  • Pessoal, estou com uma pequena dúvida e gostaria da opinião de vocês. Estou fazendo manutenção nos índices da empresa usando as seguintes consultas:

    select i.indid,DB_NAME(), o.name, o.xtype, i.reserved,i.used, 
    i.rows, i.name, i.OrigFillFactor
    from sys.sysindexes i 
    left join sys.sysobjects o on i.id = o.id
    where o.xtype = 'U' 
    order by i.OrigFillFactor desc

    Informa o nível de preenchimento dos índices das tabelas.

    select d.name, o.name, idx.name, idx.type_desc, i.user_seeks, i.user_scans,
    i.user_lookups, i.user_updates,i.last_user_scan,
    i.last_user_lookup, i.last_user_update, i.system_seeks, i.system_scans,
    i.system_lookups,i.system_updates, i.last_system_seek, i.last_system_scan, i.last_system_lookup,
    i.last_system_update, o.xtype
    from sys.dm_db_index_usage_stats i 
    left join sys.sysobjects o on i.object_id = o.id
    left join sys.databases d on i.database_id = d.database_id
    left join sys.indexes idx on idx.object_id = o.id and idx.index_id = i.index_id
    where d.name = 'base'

    Informa como e a quantidade de operações estão sendo executadas nos índices como inserts e deletes (user_seeks), select (user_scans) e update (user_updates).

    Baseados nesses informações percebir que o resultado da primeira querie mostrou muitos índces com fillfactor com percentual 20%, no qual achei bastante ruim levando em consideração os resultados da 2ª consulta. Me corrijam que estiver errado. Exemplo:

    id base Tabela Tipo Reservado usado linhas index fillfactor
    1 MinhaBase tb1 U  1198215 1198184 7990163 tb1_pk 20
    2 MinhaBase tb1 U  189997 189980 7990163 tb1_col3_idx 20
    3 MinhaBase tb1 U  116927 116923 7990163 tb1_col1_idx 20
    4 MinhaBase tb1 U  169128 169126 7990163 tb1_col2_idx 20

    Qual a melh
    Name_object Base  Name_index Tipo_index user_seeks user_scans user_lookups user_updates last_user_seek last_user_scan last_user_lookup last_user_update system_seeks system_scans system_lookups system_updates last_system_seek last_system_scan last_system_lookup last_system_updat Type
    tb1 MinhaBase  tb1_col1_idx NONCLUSTERED 72152 0 0 431261 2013-08-22 16:38:43.503 NULL NULL 2013-08-22 16:38:23.403 0 28 0 0 NULL 2013-08-18 12:18:47.560 NULL NULL
    tb1 MinhaBase  tb1_col2_idx NONCLUSTERED 43 0 0 431261 2013-08-15 14:06:42.833 NULL NULL 2013-08-22 16:38:23.403 0 7 0 0 NULL 2013-08-18 12:17:40.633 NULL NULL
    tb1 MinhaBase  tb1_pk CLUSTERED 542697 64 65074 435089 2013-08-22 16:38:47.203 2013-08-21 15:46:42.007 2013-08-22 16:38:43.503 2013-08-22 16:38:23.403 0 36 0 0 NULL 2013-08-18 12:19:29.863 NULL NULL
    tb1 MinhaBase  tb1_col_idx NONCLUSTERED 2282 0 0 431618 2013-08-21 11:32:32.287 NULL NULL 2013-08-22 16:38:23.403 0 6 0 0 NULL 2013-08-18 12:17:19.827 NULL NULL
    Qual a melhor forma de analisar essa situação, levando em consideração que quero ganhar espaço em disco e com isso melhor a performance também da base no geral.
    quinta-feira, 22 de agosto de 2013 23:51

Todas as Respostas

  • Jerferson,

    Ambos são complexos e de grande dificuldade de se conseguir, pois dependendo do valor do fillfactor você terá um aumento na performance para gravar e ler os seus dados, mas em contra-partida estaremos gerando algum tipo de fragmentação e possível perda de dados.

    O que você esta querendo analisar na verdade?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Sugerido como Resposta fernando silva 1 sexta-feira, 23 de agosto de 2013 14:05
    sexta-feira, 23 de agosto de 2013 13:30
    Moderador
  • Na verdade Galvão o que mais me incomodar é ter uma configuração mais próximo do ideal das fiilfactor dos índices, gerando essas consultas e relacionando os resultados. O que busco de fato a principio é performance, pois executei na madrugada um shrinkdatabse nos arquivos de dados e log da base e conseguir uma redução considerável. Gostaria de uma ajuda na análise das informações acima.
    sexta-feira, 23 de agosto de 2013 15:01