A criação de perfil e o monitoramento do N1QL são uma grande parte da versão 5.0 do Couchbase Server (já disponível para download).
Observação: esta é uma repostagem atualizada de Criação de perfil e monitoramento no Couchbase Server 5.0 Preview (atualização).
Workbench de consulta
Mais uma vez, vou me concentrar em Workbench de consulta para esta postagem do blog.
Apenas para revisar, há outras opções para executar consultas N1QL:
Pessoalmente, considero o Query Workbench mais fácil de usar, pois ele apresenta a criação de perfil de forma mais visual.
Criação de perfis de consultas complexas
Vamos dar uma olhada no amostra de viagem
novamente, assim como fiz nas postagens anteriores. Estou usando o bucket travel-sample, mas removi um dos índices (DROP INDEX
).travel-sample
.def_sourceairport
;
Em seguida, executo uma consulta N1QL para encontrar rotas entre duas cidades. Desta vez, vamos usar Columbus, Ohio, e Denver, Colorado.
1 2 3 4 5 6 7 8 |
SELECIONAR r.id, a.nome, s.voo, s.utc, r.aeroporto de origem, r.aeroporto de destino, r.equipamentos DE `viagens-amostra` r INÚTIL r.cronograma s JUNTAR `viagens-amostra` a ON CHAVES r.companhia aérea ONDE r.aeroporto de origem = 'CMH' E r.aeroporto de destino = 'DEN' E s.dia = 0 ORDEM BY a.nome; |
A execução dessa consulta (em minha máquina local de nó único) levou cerca de 8 segundos dessa vez (como esperado), o que é muito lento.
Detalhamento visual da criação de perfis
Vamos dar uma olhada no plano para ver qual pode ser o problema (eu o dividi em duas linhas para que as capturas de tela caibam na postagem do blog).
Portanto, como antes, as partes mais caras do plano de consulta são o Filter e o Join. Antes, podíamos saber isso observando os números brutos e/ou as porcentagens. Mas agora temos uma maneira mais visual de saber: a cor. As partes do plano vão do cinza ao bronzeado e ao dourado com base em porcentagens e limites definidos.
No momento, os limites se baseiam na fração do tempo total de consulta gasto por uma operação:
- Cinza: menos de 1% do tempo total
- Bronzeado/algum dourado: 1% - 5%
- Bronzeado/mais dourado: 5% - 20%
- Todo em ouro: 20%
O objetivo desse perfil visual é chamar sua atenção rapidamente para as operações caras. Depois, se você quiser saber os números exatos, poderá lê-los nos detalhes (no diagrama ou até mesmo no META().plan
informações).
Não vou examinar novamente a parte de criação do índice; é a mesma coisa que na última postagem do blog (apenas recriando o índice que removi para fins de demonstração).
Obrigado por seu feedback!
Interessado em experimentar alguns desses novos recursos? Faça o download do Couchbase Server 5.0 hoje!
Seus comentários sobre as versões de visualização para desenvolvedores lançadas no início deste ano ajudaram a promover melhorias. Muito obrigado!
Se tiver dúvidas, a melhor maneira de entrar em contato comigo é Twitter @mgroves ou envie-me um e-mail matthew.groves@couchbase.com.