E ai galerinha, tudo bem com vocês?
Para começarmos bem o ano de 2012 quero propor um desafio para vocês, o que acham?
Quero saber de vocês como o Database Engine do SQL Server decide quando é necessário realizar a atualização das estatísticas de uma tabela.
Quem quiser participar é só colocar a resposta nos comentários.
Grande abraço.
Vitor Fava
Tem a ver com a seletividade de uma tabela. Quanto mais seletiva mais se torna vialvel a atualização de estatistica de uso desta, correto?
De maneira bem resumida:
Quando 20% dos dados de uma tabela é atualizado e quando a opção Auto Uptade Statistics está habilitado.
Grande Wellington, tudo bem?
Show de bola sua resposta.
Mas na verdade ainda falta um pequeno detalhe nesse cálculo.
Sabe me dizer qual é?
Grande abraço.
Vitor,
Vou dar um chute. O Auto Stats Update toma como base no seguinte cálculo: 20% + 500 linhas modificadas (update/insert/delete).
Estou no caminho correto ?
Abraços e até mais tarde no curso 6231
Fala grande Arthur, tudo bem contigo?
Ótimo chute hein.
Realmente essa é a métrica que o otimizador de consulta utiliza para a atualização das estatísticas, mas agora me responda uma coisa, como ele consegue saber que 20% das linhas foram alteradas?
🙂
Ah faltou um detalhe, se o tamanho da tabela cresceu de 0 para >0 rows é realizado a atualização também.
O chute vai ter que ser maior.
Deve usar a tabela (colmodctrs) para efetuar o cálculo. Agora se tiver algum filtro, exemplo seleção de 50% das linhas, neste caso o colmodctrs é multiplicado por 0.5
Mas pra ser sincero não entendi totalmente o funcionamento do Auto Uptade.
fala tio, beleza?
cara, só entrei aqui agradecer as ultimas semanas de curso, e aproveitar para dizer que obtive êxito na obtenção da minha primeira certificação. (70-433)
abraço!
Acredito que o Database Engine faz um calculo matemático através do valor obtido na columa ROW from DBCC SHOW_STATISTICS statement.