Eu estou querendo saber como o SQL Server pode gerar um plano de consulta com "Auto create statistics" definido como "off".
Eu tropecei no contexto abaixo no link abaixo enquanto procurava uma resposta (Desculpe, eu procurei, mas não consegui encontrar nada melhor).
https://www.simple-talk.com/sql/performance/execution-plan-basics/
As variáveis de tabela nunca têm estatísticas geradas sobre elas, então elas sempre são consideradas pelo otimizador como tendo uma única linha, independentemente de seu tamanho real
Embora o acima seja aplicável apenas para variáveis de tabela, pensei que o SQL Server usaria o mesmo princípio para derivar um plano de consulta para uma tabela e decidi fazer um pequeno teste.
Limpei o cache PROC e executei a consulta abaixo em uma tabela com 1 milhão de registros
Meu teste provou que eu estava errado e o SQL Server relatou estatísticas ausentes (como esperado), mas apresentou o número estimado de linhas como 31622 (eu esperava que fosse 1) quando não há estatísticas. Como o otimizador de consulta chegou a esse valor sem estatísticas?
Variáveis de tabela é outra história, o que o servidor usa quando não há estatísticas é estimativa para entrada desconhecida:
Portanto, no seu caso, a estimativa será selecionar power (1000000, 0,75) = 31622 ( = predicado com coluna não exclusiva anterior a 2014)
Livro relacionado: T-SQL Querying por Itzik Ben-Gan