Pular para o conteúdo

Evitando erros ao indexar campos timestamp em SQL

Dica publicada em Banco de Dados / Postgres
Evaldo Barbosa evaldobarbosa
Hits: 7.353 Categoria: Banco de Dados Subcategoria: Postgres
  • Indicar
  • Impressora
  • Denunciar

Evitando erros ao indexar campos timestamp em SQL

Eu tive um grande problema com um campo "timestamp" e que consiste no seguinte: uma função que criei fazia uma busca em várias tabelas e usava como restrição algo como:

to_char(campo_tmp)::date = CURRENT_DATE

E isso me trazia um prejuízo muito grande, pois a consulta durava entre 900ms e 1.400ms.

A dica é a seguinte: ao fazer buscas, principalmente se for um "count(*)" em campos timestamp, veja se são extremamente necessárias, pois se precisar indexá-las terá problemas, já que indexação com funções "to_char" ou "date_trunc" - que necessitam de dados externos como locale - não funcionam. Essas indexações devem ser feitas com dados imutáveis.

A melhor coisa a fazer é separar data e hora em campos diferentes que indexá-los um a um. Assim você evita problemas e ganha muitíssimo em desempenho.

O resultado pra mim foi uma redução de quase 1.400ms para 0.32ms.

Solucionando erro de ArrayIterator que não recebe array

Selecionando todos os checkboxes a partir de um principal com JavaScript

Configurar Postgresql para conectar com senha criptografada

Exportando dados do PostgreSQL para HTML

Consultas sem preocupação com maiúsculas ou minúsculas no PostgreSQL

Função SQL replace: corrigindo inserções equivocadas

Instalação e configuração do Postgresql + Pgadmin3 LocalHost no Fedora

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.