As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar o Spark otimizador baseado em custos
Spark a versão 2.09 e posterior pode usar um otimizador baseado em custos (CBO). O CBO seleciona o plano de execução mais barato para uma consulta com base em várias estatísticas da tabela. O CBO tenta otimizar a execução da consulta com relação à utilização da CPU e à E/S, retornando assim o mais rápido possível. No entanto, na maioria dos casos, as estatísticas de dados geralmente estão ausentes, especialmente quando a coleta de estatísticas é ainda mais cara do que o processamento de dados. Mesmo que as estatísticas estejam disponíveis, elas provavelmente estão desatualizadas. A seguir estão as melhores práticas para usar o CBO:
-
Colete estatísticas sobre todas as colunas usadas em operações como junções, filtros e grupos por. Isso ajuda o otimizador a tomar melhores decisões. Use
ANALYZE TABLE
para coletar estatísticas. -
Aumente a frequência da coleta de estatísticas se os dados mudarem rapidamente. Estatísticas desatualizadas podem resultar em planos não otimizados.
-
Comece com os parâmetros CBO padrão e ajuste-os somente se necessário. Otimizações agressivas podem aumentar os tempos de execução.
-
Verifique se o CBO está escolhendo os planos ideais forçando o plano otimizado e comparando o desempenho. Ative o registro do otimizador para comparar os planos.
-
Para melhores otimizações, use o CBO em combinação com dicas de particionamento, armazenamento em intervalos e distorção de dados. O particionamento pode ajudar o CBO a escalar.
-
Para detectar precocemente as regressões do plano, monitore continuamente o desempenho da consulta após ativar o CBO.