Como posso acelerar as consultas contra as tabelas às quais não posso adicionar índices?

StackOverflow https://stackoverflow.com/questions/2500596

  •  21-09-2019
  •  | 
  •  

Pergunta

Eu acesso várias tabelas remotamente via link db. Eles são muito normalizados e os dados em cada um são eficazes. Dos milhões de registros em cada tabela, apenas um subconjunto de ~ 50k são registros atuais.

As tabelas são gerenciadas internamente por um produto comercial que fará um ajuste enorme se eu adicionar índices ou fazer alterações em suas tabelas de qualquer maneira.

Quais são minhas opções para acelerar o acesso a essas tabelas?

Foi útil?

Solução

Você pode tentar criar um visão materializada de algum subconjunto das tabelas sobre o link db e depois consulte essas.

Outras dicas

Eu acho que você está preso entre uma rocha e um lugar difícil aqui, mas no passado o seguinte funcionou para mim:

Você pode retirar um instantâneo dos dados atuais em intervalos especificados, a cada hora ou noturna ou o que for funcionar, e adicionar seus índices às suas próprias tabelas, conforme necessário. Se você precisar de acessar os dados em tempo real, tente puxar todos os registros atuais para uma tabela de temperatura e indexação, conforme necessário.

A sobrecarga extra de copiar de um banco de dados para o seu próprio pode diminuir o benefício real, mas vale a pena tentar.

Você precisará olhar para os planos. Você pode alterar a ordem da junção, adicionar critérios ou fornecer dicas para torná -la mais rápida, mas sem o plano de explicação, você não sabe por que é lento, então você nem sabe se pode fazê -lo mais rápido.

Você poderia dar um despejo diário dos registros necessários em seu próprio banco de dados / tabelas?

Dados de arquivo que não são mais atualizados. (Ou, se isso não for aceitável, os dados que excedem algum limite de staleness adequados para seus requisitos.)

Que tal criar uma visão materializada/indexada? Isso pode ajudar um pouco.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top