Informações de meta do Optimizer linhas no plano de execução de consulta adicionada no SQL Server de 2014, 2016 e 2017

Aplica-se a: SQL Server 2016 StandardSQL Server 2016 DeveloperSQL Server 2016 Enterprise

Resumo


Adicione o novo atributo de plano de execução de consulta EstimateRowsWithoutRowGoal SQL Server 2017 cumulativa atualização 3 (CU3) e o Microsoft SQL Server 2016 Service Pack 2 (SP2).

Quando o otimizador de consulta estima que o custo de um plano de execução de consulta, ele geralmente assume que todas as linhas de qualificação de todas as fontes a serem processadas. No entanto, algumas consultas fazer com que o otimizador de consulta procurar um plano que retornará um número menor de linhas mais rápido. Isso pode ocorrer se a consulta usa uma cláusula TOP , a dica de consulta rápida number_rows , uma cláusula IN ou EXISTS ou um SET ROWCOUNT {número | @number_var} instrução. Nesse caso, o otimizador está usando uma meta de linha quando ele calcula o plano de consulta. Se o plano de meta de linha for aplicado, o número de linhas no plano de execução de consulta é reduzido. Isso ocorre porque o plano pressupõe que um número menor de linhas terão que ser processadas para alcançar a meta de linha.

Observação A estimativa é feita com o objetivo de linha é aproximada. Se a distribuição de dados real é não-uniforme, pode ser menor do que o número real de linhas que devem ser processadas. Portanto, ele pode criar um plano de consulta ineficiente. Como solução alternativa para esse problema, você pode usar a opção de consulta Usa a dica ('DISABLE_OPTIMIZER_ROWGOAL') ou o 4138 do sinalizador de rastreamento.

Para obter mais informações, consulte atualização introduz dica USE o argumento de dica de consulta no SQL Server 2016. No entanto, pode ser difícil identificar no complexo consulta se uma meta de linha for aplicada e quanto ele afeta a escolha do plano.

Usando o atributo EstimateRowsWithoutRowGoal , você pode comparar os resultados do atributo EstimateRows para ver quanto o objetivo da linha afeta as estimativas do otimizador de consultas.

Observação Se a meta de linha não é aplicada a um operador do plano de consulta específica, esse atributo não está incluído.

Informações adicionais


Essa atualização está incluída na seguinte atualização cumulativa para SQL Server:

Atualização cumulativa 3 para o SQL Server 2017

Informações do service pack para SQL Server

Essa atualização é apresentada nos seguintes service packs para o SQL Server:

       Service Pack 2 para SQL Server 2016

       Service Pack 3 para o SQL Server de 2014

Referências


Saiba mais sobre a terminologia usada pela Microsoft para descrever as atualizações de software.