Pular para o conteúdo

Como extrair dados do Tasy sem pesar o banco de produção

A consulta que roda em dois segundos no teste pode deixar o faturamento lento às dez da manhã. O que muda quando a extração é feita direito, e o checklist para combinar com o DBA.

Equipe Clic HealthAtualizado em 7 min de leitura

O banco do Tasy é o mesmo que atende a recepção, o pronto-socorro, a farmácia e o faturamento. Quando alguém pede para extrair dados do Tasy para um BI, a primeira preocupação do TI é justa: uma consulta mal escrita, no horário errado, deixa o sistema lento para quem está atendendo. Dá para tirar tudo o que a gestão precisa sem esse efeito, desde que a extração siga algumas regras.

Onde a extração pesa

Uma consulta SELECT no Oracle não bloqueia as linhas que lê, então o risco não é travar o atendimento. O risco é consumo: CPU, leitura de disco, memória e espaço temporário disputados com o uso normal do sistema. Os casos que mais vemos:

  • Leitura da tabela inteira a cada execução. CONTA_PACIENTE_RESUMO e PROCEDIMENTO_PACIENTE acumulam dezenas de milhões de linhas em poucos anos. Ler tudo de hora em hora para atualizar um painel é a forma mais rápida de deixar o banco pesado.
  • Função na coluna do filtro. WHERE TRUNC(dt_entrada) = TRUNC(SYSDATE) impede o uso do índice da data. O equivalente WHERE dt_entrada >= TRUNC(SYSDATE) AND dt_entrada < TRUNC(SYSDATE) + 1 usa.
  • Joins grandes dentro do Tasy. Juntar conta, resumo, procedimento, convênio e setor numa consulta só, com agregação, obriga o Oracle a montar o resultado inteiro antes de devolver a primeira linha. Trazer as tabelas e juntar no destino costuma ser mais leve para o hospital.
  • Consulta longa no meio do expediente. Uma consulta de 40 minutos às dez da manhã disputa recurso com o faturamento fechando contas. A mesma consulta às cinco da manhã não incomoda ninguém.
  • Erro ORA-01555 (snapshot too old). Consultas muito longas podem falhar quando o Oracle não consegue mais reconstruir a visão dos dados do início da consulta. Quebrar a carga em fatias menores resolve.

As opções mais comuns

FormaComo funcionaPeso no TasyObservação
BI consultando o Tasy diretoCada abertura de painel dispara consultas no banco de produçãoAlto e imprevisívelÉ a forma que mais gera reclamação do TI
Relatórios exportadosAlguém roda o relatório e salva em planilhaBaixo, mas manualAtraso, versões diferentes e erro de digitação
Réplica ou standby de leituraUma cópia do banco recebe as consultasQuase nenhumExige licença e infraestrutura; nem todo hospital tem
Extração incremental para um banco intermediárioUma rotina traz só o que mudou e grava em outro bancoBaixo e previsívelÉ o modelo que recomendamos e que o Clic Health usa

Quando o hospital já tem uma réplica de leitura, ela é a melhor origem para a extração. Quando não tem, a extração incremental bem configurada chega perto do mesmo resultado.

As regras de uma extração leve

  1. Usuário de banco somente leitura, com SELECT apenas nas tabelas e visões necessárias. Nada de usuário do próprio Tasy, de administrador ou com permissão de escrita.
  2. Sessão em modo leitura. Além do usuário, a própria sessão deve ser aberta somente leitura. Se alguém, por engano, colocar um comando de alteração na consulta, o banco recusa.
  3. Incremental nas tabelas de movimento. Atendimento, conta, procedimento e cirurgia têm DT_ATUALIZACAO. A carga traz só as linhas alteradas desde a última execução, com uma folga de alguns minutos para não perder transações que terminaram tarde. O porquê está em carga incremental do Tasy.
  4. Carga completa só para cadastros pequenos. Convênio, setor, centro de custo e material podem vir inteiros uma vez por dia, de madrugada.
  5. Frequência pelo uso da informação. Atendimento e conta a cada 5 minutos fazem sentido para o pronto-socorro e para a gestão de leitos. Contabilidade e custeio não mudam de hora em hora; uma ou duas vezes por dia basta.
  6. Limite por rodada. Um teto de linhas por execução e um tempo máximo por consulta impedem que um erro de filtro vire uma leitura de anos de histórico no meio do dia.
  7. Carga inicial em fatias. O histórico de cinco anos entra mês a mês, à noite e no fim de semana, e não numa consulta só.
  8. Releitura periódica de uma janela recente. Linhas excluídas no Tasy não aparecem numa carga incremental. Reler, por exemplo, os últimos 7 dias toda madrugada e os últimos 3 meses uma vez por semana mantém o destino igual à origem.
  9. Registro de cada execução. Quanto tempo levou, quantas linhas trouxe e se deu erro. Sem esse registro, a primeira notícia de um problema é um painel desatualizado.

O que combinar com o DBA

O DBA do hospital (ou o responsável pelo banco no fornecedor de infraestrutura) precisa aprovar e acompanhar a extração. Leve para a conversa:

  • a lista das tabelas e visões que serão lidas e o motivo de cada uma;
  • o usuário que será criado, com as permissões, e a confirmação de que é somente leitura;
  • as frequências e os horários das cargas, e o horário da carga inicial do histórico;
  • o volume esperado por execução, depois da carga inicial;
  • os índices existentes nas colunas de data usadas como filtro. Não crie índice em tabela do Tasy por conta própria; se faltar algum, a decisão é do DBA, ouvindo o fornecedor;
  • o caminho da rede: de onde a extração sai, para onde vai e por qual porta;
  • como desligar a extração em uma emergência.

Com isso documentado, o TI sabe exatamente o que está rodando no banco e pode medir o efeito.

Como o DataClic faz

O DataClic é o programa que lê o Tasy para o Clic Health e para as outras soluções Clic. Ele roda num servidor do hospital e segue as regras acima por padrão:

  • abre a sessão do Oracle em modo somente leitura e recusa usuário com privilégio de administrador;
  • traz o movimento de forma incremental, com folga padrão de 15 minutos sobre a última marca;
  • relê 7 dias toda madrugada e 3 meses todo domingo, para refletir exclusões e correções;
  • limita cada rodada a 5 milhões de linhas e cada consulta a 60 minutos;
  • roda os cadastros uma vez por dia, às 5 da manhã;
  • não deixa sair do Tasy nome, CPF, cartão SUS, endereço, telefone, e-mail nem data de nascimento do paciente; o paciente vai em código;
  • não abre nenhuma porta de entrada no hospital: só faz conexões de saída, por HTTPS.

As regras de leitura são assinadas digitalmente e conferidas pelo DataClic antes de rodar. Um pacote de outro hospital ou alterado no caminho é recusado. Os detalhes estão em segurança e em integração e atualização com o Tasy.

Sinais de que a extração atual está pesando

  • Reclamação de lentidão no Tasy sempre no mesmo horário.
  • Consultas do BI no topo da lista de sessões mais pesadas do banco.
  • Painel que demora minutos para abrir, porque consulta o Tasy na hora.
  • Cargas que falham com ORA-01555 ou estouram o espaço temporário.
  • Ninguém sabe dizer quantas consultas o BI faz por dia no banco.

Se dois ou mais aparecem, vale revisar a extração antes de acrescentar painéis.

Quem escreve

A Domínio trabalha há mais de 20 anos com hospitais que usam o Tasy e escreveu as regras de leitura do Padrão Clic Health a partir dessa experiência. Se o seu TI quer revisar uma extração que já existe, fale com a gente pelo WhatsApp ou pelo e-mail comercial@dominiocontabil.com.br. Na Comunidade Tasy, hospitais e empresas que trabalham com o sistema trocam experiências como essa.

Perguntas relacionadas

Um SELECT pode travar o Tasy?

No Oracle, uma leitura não bloqueia as linhas para quem está gravando. O efeito de uma consulta pesada é consumir recurso do servidor e deixar todo mundo mais lento, não travar telas.

Precisa de uma réplica do banco?

Não é obrigatório. Ela é a melhor opção quando existe. Sem réplica, uma extração incremental, com horários e limites bem definidos, tem peso baixo e previsível.

Qual a frequência ideal de atualização?

Depende do uso. Painéis de pronto-socorro e leitos pedem minutos; faturamento, algumas vezes por hora; contabilidade e custos, uma ou duas vezes por dia.

O BI pode gravar no Tasy?

Não deve. A extração para BI é somente leitura, no usuário e na sessão.

Equipe Clic Health

Escrito pela equipe da Domínio, que faz o Clic Health: contadores, controllers e desenvolvedores que trabalham há mais de 20 anos com hospitais que usam o Tasy. Tem uma dúvida sobre o Tasy? Participe da Comunidade Tasy ou fale com a gente pelo WhatsApp.

Continue lendo

Mais em Tasy e dados

Fale com a gente

Agendar demonstração

Conte um pouco sobre o hospital. A nossa equipe responde em horário comercial, normalmente no mesmo dia.

Sua área
Sistema de gestão do hospital

Prefere conversar agora? WhatsApp +55 48 99928-8811