Se estou comparando 2 consultas verificando seu "custo de consulta" relativo como um indicador de desempenho de alto nível, o status do buffer tem algum efeito sobre os valores mostrados no plano de execução?
relate perguntas
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Quanto "Padding" coloco em meus índices?
-
Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?
-
Como determinar se um Índice é necessário ou necessário
-
Downgrade do SQL Server 2008 para 2005
Sim e não, dependendo do que você quer dizer com 'status do buffer'.
O estado (conteúdo) do buffer pool não afeta diretamente o custo estimado de um plano de execução (o modelo de custo assume que cada consulta começa com um cache de dados frio .
O tamanho (não o conteúdo) do buffer pool pode ter um impacto na seleção do plano por vários motivos.
A primeira ocorre quando operações que consomem memória, como hash e classificação, estão presentes. A quantidade de memória estimada para estar disponível para a concessão de memória depende do tamanho do buffer pool (observe um bug interessante nesta área).
A consulta baseada no AdventureWorks a seguir mostra um exemplo dessa diferença de custo com base no tamanho do buffer pool. Nesse caso, o formato do plano é o mesmo, mas essas diferenças de custo podem, e mudam, a seleção do plano com tabelas maiores ou consultas mais complexas:
Em segundo lugar, o otimizador contém lógica para avaliar (por exemplo) a chance de que uma página lida do disco (sob a suposição de cache frio) durante a execução seja necessária novamente e, em caso afirmativo, se ela ainda estará disponível no cache.
Mais especificamente, porém, as estimativas de custo do otimizador são úteis apenas para fins de servidor interno. Eles não se destinam a ser usados para avaliar o desempenho potencial, mesmo em um 'alto nível'. O modelo é uma abstração que funciona razoavelmente bem para os propósitos internos para os quais foi projetado. As chances de que os custos estimados tenham qualquer semelhança sensível com os custos reais de execução em seu hardware e configuração são realmente muito pequenas.
Escolha outras métricas para comparar o desempenho, com base em quaisquer problemas reais que sejam importantes para você.