Não consigo entender o conceito de funções de janela. Como exatamente eles funcionam e quais são os prós e contras dessa técnica?
Eu li que usar limite e deslocamento é lento, mas ainda é usado. Portanto, a decisão entre funções de limite/deslocamento e janela depende do tamanho dos dados a serem obtidos do banco de dados ou das funções de janela sempre devem ser usadas?
Qual é o tamanho ideal da janela para obter o máximo desempenho disso? Pode ser o caso em que, se o número de linhas a serem obtidas for menor, basta usar limite/deslocamento?
Meu caso de uso requer basicamente classificar os dados na data e, em seguida, trazer os dados mais recentes primeiro. Como as funções da janela se encaixam nesse cenário.
A diferença elementar é que as funções de janela são aplicadas a todas as linhas em um conjunto de resultados para calcular colunas adicionais após o restante do conjunto de resultados ter sido determinado. Nenhuma linha é descartada. Eles estão disponíveis desde o PostgreSQL 8.4.
As cláusulas
LIMIT
eOFFSET
doSELECT
comando, por outro lado, não computam colunas adicionais. Eles apenas escolhem uma certa "janela" de linhas do conjunto de resultados (em cooperação com aORDER BY
cláusula) e descartam o resto. Estive lá como para sempre.Embora certas tarefas possam ser executadas com qualquer uma dessas ferramentas, elas são de natureza muito diferente .
Para sua tarefa simples
você não precisa de nenhum deles. Basta adicionar:
De acordo com seu comentário, você precisaria de:
Recupere mais:
Certifique-se de ter um índice em date_col em ambos os casos!