Otimo post Leandro, eu uso bastante CTEs principalmente para gerar dados direito do banco transacional.
Uma outra alternativa, ou complemento, que talvez até melhore os 300ms, é usar views materializadas, quando os dados não precisam ser realtime, as views materializadas são uma mão na roda, precisa só tomar o cuidado de agendar corretamente a refresh dela.
Eu combino bastante CTEs com views materializadas, a grande vantagem dela é que a aplicação entendem ela como uma tabela, isso faz com que você consiga usar ela com qualquer ORM disponivel sem dor de cabeça.
Otimo post Leandro, eu uso bastante CTEs principalmente para gerar dados direito do banco transacional.
Uma outra alternativa, ou complemento, que talvez até melhore os 300ms, é usar views materializadas, quando os dados não precisam ser realtime, as views materializadas são uma mão na roda, precisa só tomar o cuidado de agendar corretamente a refresh dela.
Eu combino bastante CTEs com views materializadas, a grande vantagem dela é que a aplicação entendem ela como uma tabela, isso faz com que você consiga usar ela com qualquer ORM disponivel sem dor de cabeça.
valeu Duke! parece uma ótima combinação mesmo, views materializadas com CTE's!