1 milhão de registros deixar o select rápido

05/02/2020

0

Olá amigos do fórum!
Tenho uma dúvida e gostaria que se alguém pudesse me dar uma ideia ficaria muito grato. Tenho uma tabela de lançamentos do caixa que tem 1.000.000 de registros preciso filtrar por uma data inicial e data final num intervalo grande entre as datas exemplo: 01/01/2010 à 01/01/2020. Alguém tem alguma ideia de um select para deixar esta consulta rápida ? Estou usando banco de dados PostgreSQL. Obrigado !
Itamar Monteiro

Itamar Monteiro

Responder

Posts

05/02/2020

Alec Candia

Olá amigos do fórum!
Tenho uma dúvida e gostaria que se alguém pudesse me dar uma ideia ficaria muito grato. Tenho uma tabela de lançamentos do caixa que tem 1.000.000 de registros preciso filtrar por uma data inicial e data final num intervalo grande entre as datas exemplo: 01/01/2010 à 01/01/2020. Alguém tem alguma ideia de um select para deixar esta consulta rápida ? Estou usando banco de dados PostgreSQL. Obrigado !


Sem dúvida o segredo da performance estará nos índices utilizados nessa tabela. Como referência vou citar o Microsoft SQL Server que oferece um recurso chamado "Plano de Execução Real" que aponta onde estaria o gargalo de uma consulta que demanda tempo maior que o necessário, seja por excesso de registros ou campos retornados, seja por excesso de JOINS em outras tabelas. Quase sempre a indexação de algum campo que será chave de análise acaba resolvendo o problema e acelerando bastante o tempo de espera do resultado.
Como citei, é um recurso que uso bastante no MS-SQL, mas acredito que tenha algo similar no PostgreSQL.

Abraço
Responder

05/02/2020

Itamar Monteiro

Olá amigos do fórum!
Tenho uma dúvida e gostaria que se alguém pudesse me dar uma ideia ficaria muito grato. Tenho uma tabela de lançamentos do caixa que tem 1.000.000 de registros preciso filtrar por uma data inicial e data final num intervalo grande entre as datas exemplo: 01/01/2010 à 01/01/2020. Alguém tem alguma ideia de um select para deixar esta consulta rápida ? Estou usando banco de dados PostgreSQL. Obrigado !


Sem dúvida o segredo da performance estará nos índices utilizados nessa tabela. Como referência vou citar o Microsoft SQL Server que oferece um recurso chamado "Plano de Execução Real" que aponta onde estaria o gargalo de uma consulta que demanda tempo maior que o necessário, seja por excesso de registros ou campos retornados, seja por excesso de JOINS em outras tabelas. Quase sempre a indexação de algum campo que será chave de análise acaba resolvendo o problema e acelerando bastante o tempo de espera do resultado.
Como citei, é um recurso que uso bastante no MS-SQL, mas acredito que tenha algo similar no PostgreSQL.

Abraço


Ok amigo!
vou dar uma pesquisada, obrigado !
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar