Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
vanessa_loschi
New Contributor

Como usar uma Resident Table em um script de carga?

Boa Tarde!

Preciso usar uma Resident table (Beneficiarios) como seleção em um script de carga do banco.

Gostaria de saber se existe uma maneira melhor de fazer isso, pois o script que eu fiz está demorando muito.

FOR a = 0 to NoOfRows('Beneficiarios')

     LET vBenef = chr(39)&Peek('NR_MATRICULA_BENEF', $(a), 'Beneficiarios')&chr(39);

ExameLaboratorio:

SQL

SELECT

  distinct

       x.CD_USUARIO as "NR_MATRICULA_BENEF",

       e.CD_PROCEDIMENTO,

       a.DT_RESULTADO,

       b.QT_RESULTADO,

       b.DS_RESULTADO,

FROM

      USUARIO x,

      RESULTADO a,

      RESULT_ITEM b,

      EXAME e

WHERE

      x.CD_USUARIO      = ($(vBenef))

  and a.NR_ATENDIMENTO  = x.NR_ATENDIMENTO

  and a.NR_RESULTADO    = b.NR_RESULTADO

  and e.NR_EXAME        = b.NR_EXAME

  and e.CD_PROCEDIMENTO = 40301605;

next;

Obrigada.

1 Solution

Accepted Solutions
MCampestrini
Valued Contributor

Re: Como usar uma Resident Table em um script de carga?

Vanessa

Você pode fazer um Exists na segunda tabela:

1o. Passo: carregar a tabela com os beneficiários.

2o. Passo: carregar os exames sem filtro.

3o. Passo: carregar os exames utilizando o Exists:

     Exames: Load * Resident ExameLaboratorio where Exists (NR_MATRICULA_BENEF, CD_USUARIO);

Márcio Rodrigo Campestrini
5 Replies
MCampestrini
Valued Contributor

Re: Como usar uma Resident Table em um script de carga?

Vanessa

Você pode fazer um Exists na segunda tabela:

1o. Passo: carregar a tabela com os beneficiários.

2o. Passo: carregar os exames sem filtro.

3o. Passo: carregar os exames utilizando o Exists:

     Exames: Load * Resident ExameLaboratorio where Exists (NR_MATRICULA_BENEF, CD_USUARIO);

Márcio Rodrigo Campestrini
vanessa_loschi
New Contributor

Re: Como usar uma Resident Table em um script de carga?

Obrigada Márcio,

Mas acho que carregar a tabela de exames sem filtro vai demorar mais, eu tenho 64 milhões de registros só na tabela RESULT_ITEM dos exames. Sem contar o tempo para ele buscar os campos em outras tabelas.

E, na seleção que eu preciso, são somente 56.000 registros.

MCampestrini
Valued Contributor

Re: Como usar uma Resident Table em um script de carga?

Nesse caso você precisa pesar o que vai demorar mais. Eu optaria pela solução que te passei pois vai utilizar de recursos melhores do Qlikview.

Outra solução é fazer uma carga prévia dos dados em arquivos QVD e depois ler esses arquivos diretamente na aplicação, o que tornaria a carga mais rápida.

Márcio Rodrigo Campestrini
vanessa_loschi
New Contributor

Re: Como usar uma Resident Table em um script de carga?

Boa Tarde Márcio,

Só consegui testar a carga hoje e realmente ficou muito mais rápido mesmo com a grande quantidade de registros. Só mudei a ordem de leitura das tabelas para selecionar apenas os exames que eu precisava.

Muito Obrigada!

thiago_justen
Valued Contributor III

Re: Como usar uma Resident Table em um script de carga?

Vanessa,

Se a resposta do marcio.campestrini‌ te ajudou a resolver a questão, por favor, feche a thread marcando aquela resposta que você considera Correta.

Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago