Pular para o conteúdo principal

Como posso verificar se o cache de consultas está sendo usado na minha consulta?

Veja o exemplo a seguir usando clickhouse client e o serviço ClickHouse Cloud. crie uma tabela query_cache_test

Como usar o clickhouse client

preencha a tabela com alguns dados:
habilite os logs de nível trace:
execute uma consulta para usar o cache de consultas (acrescentando SETTINGS use_query_cache=true à consulta):
execute novamente a mesma consulta:
Agora observe as diferenças nos logs TRACE relacionados ao QueryCache entre: 1ª execução:
na 2ª execução:
Na 1ª execução, claramente nenhuma entrada foi encontrada (No entry found for query SELECT...), então o ClickHouse de fato armazenou (Stored result of query SELECT...) a entrada para nós. Na 2ª execução, a consulta usou o cache de consultas, pois encontrou a entrada já armazenada (Entry found for query SELECT...).

Usando apenas SQL

Apenas emitindo comandos SQL, sem inspecionar os logs no nível trace do clickhouse client, também é possível validar se o cache de consultas está sendo usado verificando as tabelas system relevantes:
Nos últimos resultados, vemos 1 QueryCacheMisses, referente à primeira vez em que a consulta SELECT 1 SETTINGS use_query_cache=true; foi executada, e um evento QueryCacheHits relacionado à segunda execução da consulta. Lembre-se também de que o tamanho máximo padrão de uma entrada do cache é de 1048576 bytes (= 1 MiB) e que, por padrão, os resultados são armazenados no cache por apenas 60 segundos (por exemplo, você pode usar query_cache_ttl=300 em SETTINGS para armazenar o resultado de uma consulta no cache por 5 minutos). Você pode encontrar informações mais detalhadas sobre o cache de consultas do ClickHouse aqui
Última modificação em 19 de junho de 2026