Esta é uma pergunta de acompanhamento na questão do Stack Overflow
Como descobrir a tabela do SQL Server escrever estatísticas?
O objetivo é o mesmo da pergunta anterior
The goal here is to find out appropriate fill factor for indexes
De acordo com a resposta de Mitch Wheat, ele sugeriu que
... ordinary tables use the default 90% fill factor, high insert tables somewhere between 70 - 85% (depending on row size). Read only tables can utilise a fill factor of 100%
Mesmo depois de descobrir as estatísticas do índice, estou com problemas para entender o resultado.
Como você determina se uma tabela é alta
- insira
- ler
- inserir / ler
mesa?
Você precisa levar em consideração todas as estatísticas como leaf_insert_count
, leaf_delete_count
, user_seek/scan/lookup_count
etc?
ou eu precisaria ver apenas alguns domínios?
Eu adoraria ver quais outras formas existem para determinar como determinar o fator de preenchimento para um determinado índice.
Consulta usada para obter estatísticas de índice,
select db_name(US.database_id)
, object_name(US.object_id)
, I.name as IndexName
, OS.leaf_allocation_count
, OS.nonleaf_allocation_count
, OS.leaf_page_merge_count
, OS.leaf_insert_count
, OS.leaf_delete_count
, OS.leaf_update_count
, *
from sys.dm_db_index_usage_stats US
join sys.indexes I
on I.object_id = US.object_id
and I.index_id = US.index_id
join sys.dm_db_index_operational_stats(db_id(), null, null, null) OS
on OS.object_id = I.object_id and OS.index_id = I.Index_id
where I.type <> 0 -- not heap
and object_name(US.object_id) not like 'sys%'
order by OS.leaf_allocation_count desc,
OS.nonleaf_allocation_count desc,
OS.leaf_page_merge_count desc,
US.User_updates desc,
US.User_Seeks desc,
US.User_Scans desc,
US.User_Lookups desc
E o resultado da amostra.