Eu sou novo no SQL Server e quero ajustar minha primeira consulta.
No SQL Server 20xx, qual é a diferença entre "exibir plano de execução estimado" e "incluir plano de execução real"?
Eu sou novo no SQL Server e quero ajustar minha primeira consulta.
No SQL Server 20xx, qual é a diferença entre "exibir plano de execução estimado" e "incluir plano de execução real"?
O plano de execução estimado é gerado com base apenas nas estatísticas que o SQL Server possui - sem realmente executar a consulta. O otimizador de consulta é apenas perguntado o que provavelmente faria com essa consulta, com base em todas as informações que ele tem na consulta e nas distribuições de dados etc.
Isso funciona bem, a consulta não precisa ser executada (o que pode levar muito tempo), mas se as estatísticas estiverem desatualizadas, o plano poderá estar bastante inclinado.
O plano de execução real é exatamente isso - o plano de execução real que foi usado ao executar a consulta. Isso mostrará coisas que podem sugerir estatísticas "desatualizadas", etc. Mas, para obter isso, você deve executar a consulta - o que pode levar muito tempo.
O plano estimado fornecerá como sua consulta será executada no servidor sem realmente executá-la. Isso lhe dará uma idéia se você precisa ajustar para criar um plano melhor ou se o plano estimado parece bom.
O plano real mostra o que realmente aconteceu quando o servidor executou a consulta. Ele inclui detalhes como o número real de linhas de uma tabela, quanta memória é usada se houver uma classificação. Que grau de paralelismo usado durante a execução.
Mas o melhor seria analisar a diferença entre "número estimado de linhas" e "número real de linhas" que você pode ver no plano de execução real. Quanto mais próximos desses dois valores, significa que as estatísticas estão atualizadas e, para determinadas estatísticas, esse é o melhor plano. Nesse caso, a atualização das estatísticas ajudará a gerar um melhor plano estimado e, portanto, um plano real.
fonte