Jump to content

[Resolvido] Best pratice - join de duas bases de dados (?)


t0ze

Recommended Posts

Boa tarde pessoal,

Tenho o seguinte cenário

1-Base de dados Resultados

Tabela Resultado_Analises

Data

Resultado 1

Resultado 2

Num

2 Base de dados de Clientes

Tabela Resultado_Utente

Data

Resultado 1

Resultado 2

Num

O procedimento é, ao cliente é atribuído um Numero, e com esse número, vai à base de dados Resultados e à tabela Resultados_Analises e lê os resultados.

Neste momento não estou a usar os campos da tabela Resultado_Utente da base de dados Clientes, na query de resultados_Utente, quando o cliente mete o numero, faço logo um join à outra base de dados. Mas isto está a revelar-se extramamente lento.

A solução para melhorar a performance disto no vosso entender seria qual?

INSERT SELECT ?

Obrigado

Link to comment
Share on other sites

Olá,

Tenho duas bases de dados,

Base dados 1

Nome: Laboratorio

Tabela: Resultados

....

...

... ResultadoID

Que funciona para quem trabalha no laboratorio para inserir resultados. E envia um email a quem submeteu a analise com o ResultadoID

Base dados 2

Nome: Clientes

Tabela Resultado_Laboratorio

...

...

...

ResultadoID

Aqui, é onde serão disponibilizados os resultados da tabela do laboratorio. O Cliente insere o ResultadoID > grava e cmo naquele registo da tabela Resultado_Laboratorio já ficou registado o ResultadoID passa a ser possivel ao cliente ler os resultados.

Estou a fazer um join de tabelas,

Indice: tenho q ir estudar essa hipotese

Link to comment
Share on other sites

Sim.


SELECT registry.id_registry,
        registry.registry_num,
        registry.name,
        registry.sent_date,
        registry.nin,
        reports.lgm.d_ctrl_fil,
        (CASE  WHEN (reports.lgm.resultado1+reports.lgm.resultado2 > 0)  THEN 1 ELSE 0 END) AS resolved,
        registry.ln_number,
        registry.la_number,
        registry.resolved_abpsl
    FROM registry
            LEFT JOIN reports.lgm ON reports.lgm.nsc_f = registry.nin
    WHERE (('' = '{$filter}') OR (CAST(registry.nin as char) = '{$filter}'))
            OR (('' = '{$filter}') OR (registry.name LIKE '%{$filter}%'))
    ORDER BY registry.sent_date DESC
    LIMIT $per_page
    OFFSET $offset";
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.