De acordo com os documentos do MS, a descrição para AVG_RANGE_ROWS
é:
Número médio de linhas com valores de coluna duplicados em uma etapa do histograma, excluindo o limite superior. Quando DISTINCT_RANGE_ROWS é maior que 0, AVG_RANGE_ROWS é calculado dividindo RANGE_ROWS por DISTINCT_RANGE_ROWS. Quando DISTINCT_RANGE_ROWS é 0, AVG_RANGE_ROWS retorna 1 para a etapa do histograma.
Estou olhando para a última linha e se realmente for esse o caso, estou curioso para saber porque estou vendo um valor para AVG_RANGE_ROWS
que não é igual 1
quando DISTINCT_RANGE_ROWS
está 0
nas etapas do histograma.
A estatística em questão é uma estatística de coluna criada pelo SQL Server quando a opção de criação automática de estatísticas está ativada. Estou em uma versão mais antiga do banco de dados, mas no patch mais recente - SQL Server 2014 SP3, CU4+GDR (12.0.6372.1).
É um pouco lamentável que quase tivemos um colapso na semana passada por causa de um plano de consulta abaixo do ideal. O resultado final foi grandes varreduras e concessões de memória inchadas. A reamostragem da estatística com um valor percentual mais alto resolveu o problema para nós por enquanto, mas estou mais curioso para saber se há exceções em torno da declaração inicial ou um problema conhecido (talvez resolvido usando um sinalizador de rastreamento?) evito que isso aconteça novamente para estatísticas criadas automaticamente, onde não temos controle sobre o tamanho da amostragem?