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.
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 equivalenteWHERE dt_entrada >= TRUNC(SYSDATE) AND dt_entrada < TRUNC(SYSDATE) + 1usa. - 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
| Forma | Como funciona | Peso no Tasy | Observação |
|---|---|---|---|
| BI consultando o Tasy direto | Cada abertura de painel dispara consultas no banco de produção | Alto e imprevisível | É a forma que mais gera reclamação do TI |
| Relatórios exportados | Alguém roda o relatório e salva em planilha | Baixo, mas manual | Atraso, versões diferentes e erro de digitação |
| Réplica ou standby de leitura | Uma cópia do banco recebe as consultas | Quase nenhum | Exige licença e infraestrutura; nem todo hospital tem |
| Extração incremental para um banco intermediário | Uma rotina traz só o que mudou e grava em outro banco | Baixo 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
- 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.
- 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.
- 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.
- Carga completa só para cadastros pequenos. Convênio, setor, centro de custo e material podem vir inteiros uma vez por dia, de madrugada.
- 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.
- 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.
- 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ó.
- 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.
- 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.
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.