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

Delphi

05/02/2020

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

Curtidas 0

Respostas

Alec Candia

Alec Candia

05/02/2020

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
GOSTEI 0
Itamar Monteiro

Itamar Monteiro

05/02/2020

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 !
GOSTEI 0
POSTAR