-
Global information
- Generated on Tue Jun 30 15:11:59 2026
- Log file: postgresql-2026-06-10-06h-13h.log
- Parsed 3,024,042 log entries in 1m38s
- Log start from 2026-06-10 06:00:18 to 2026-06-10 12:59:58
-
Overview
Global Stats
- 45 Number of unique normalized queries
- 41 Number of queries
- 12h29m3s Total query duration
- 2026-06-10 06:53:07 First query
- 2026-06-10 12:04:16 Last query
- 1 queries/s at 2026-06-10 09:54:21 Query peak
- 12h29m3s Total query duration
- 0ms Prepare/parse total duration
- 0ms Bind total duration
- 12h29m3s Execute total duration
- 906 Number of events
- 9 Number of unique normalized events
- 840 Max number of times the same event was reported
- 0 Number of cancellation
- 0 Total number of automatic vacuums
- 0 Total number of automatic analyzes
- 71,282 Number temporary file
- 1.00 GiB Max size of temporary file
- 3.23 MiB Average size of temporary file
- 0 Total number of sessions
- 0 sessions at Session peak
- 0ms Total duration of sessions
- 0ms Average duration of sessions
- 41 Average queries per session
- 12h29m3s Average queries duration per session
- n/a Average idle time per session
- 0 Total number of connections
- 1 Total number of databases
SQL Traffic
Key values
- 1 queries/s Query Peak
- 2026-06-10 09:54:21 Date
SELECT Traffic
Key values
- 1 queries/s Query Peak
- 2026-06-10 09:54:21 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 1 queries/s Query Peak
- 2026-06-10 09:11:01 Date
Queries duration
Key values
- 12h29m3s Total query duration
Prepared queries ratio
Key values
- 0.00 Ratio of bind vs prepare
- 0.00 % Ratio between prepared and "usual" statements
General Activity
↑ Back to the top of the General Activity tableDay Hour Count Min duration Max duration Avg duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Jun 10 06 3 0ms 6h24m8s 2h8m11s 0ms 11s26ms 6h24m8s 07 1 0ms 17s676ms 17s676ms 0ms 0ms 17s676ms 08 9 0ms 1m59s 56s85ms 30s847ms 1m11s 3m21s 09 17 0ms 5h18m8s 20m30s 1m30s 3m52s 5h18m8s 10 5 0ms 1m18s 32s184ms 0ms 22s95ms 1m18s 11 3 0ms 12s133ms 11s407ms 0ms 0ms 22s89ms 12 3 0ms 2m10s 1m17s 0ms 22s885ms 2m10s Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Jun 10 06 1 0 11s26ms 0ms 0ms 0ms 07 1 0 17s676ms 0ms 0ms 0ms 08 8 0 1m 0ms 30s847ms 1m18s 09 8 0 36s485ms 0ms 17s177ms 42s658ms 10 5 0 32s184ms 0ms 0ms 31s932ms 11 3 0 11s407ms 0ms 0ms 12s133ms 12 0 0 0ms 0ms 0ms 0ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Jun 10 06 0 0 0 0 0ms 0ms 0ms 0ms 07 0 0 0 0 0ms 0ms 0ms 0ms 08 0 0 0 0 0ms 0ms 0ms 0ms 09 5 0 0 0 1h8m29s 0ms 0ms 3m52s 10 0 0 0 0 0ms 0ms 0ms 0ms 11 0 0 0 0 0ms 0ms 0ms 0ms 12 3 0 0 0 1m17s 0ms 0ms 22s885ms Day Hour Prepare Bind Bind/Prepare Percentage of prepare Jun 10 06 0 1 1.00 0.00% 07 0 1 1.00 0.00% 08 0 9 9.00 0.00% 09 0 10 10.00 0.00% 10 0 5 5.00 0.00% 11 0 3 3.00 0.00% 12 0 3 3.00 0.00% Day Hour Count Average / Second Jun 10 06 0 0.00/s 07 0 0.00/s 08 0 0.00/s 09 0 0.00/s 10 0 0.00/s 11 0 0.00/s 12 0 0.00/s Day Hour Count Average Duration Average idle time Jun 10 06 0 0ms 0ms 07 0 0ms 0ms 08 0 0ms 0ms 09 0 0ms 0ms 10 0 0ms 0ms 11 0 0ms 0ms 12 0 0ms 0ms -
Connections
Established Connections
Key values
- 0 connections Connection Peak
- Date
Connections per database
Key values
- unknown Main Database
- 0 connections Total
Connections per user
Key values
- unknown Main User
- 0 connections Total
-
Sessions
Simultaneous sessions
Key values
- 0 sessions Session Peak
- Date
Histogram of session times
Key values
- duration
Sessions per database
Key values
- unknown Main Database
- 0 sessions Total
Sessions per user
Key values
- unknown Main User
- 0 sessions Total
Sessions per host
Key values
- unknown Main Host
- 0 sessions Total
-
Checkpoints / Restartpoints
Checkpoints Buffers
Key values
- 253,386 buffers Checkpoint Peak
- 2026-06-10 07:55:20 Date
- 270.025 seconds Highest write time
- 2.890 seconds Sync time
Checkpoints Wal files
Key values
- 131 files Wal files usage Peak
- 2026-06-10 09:18:51 Date
Checkpoints distance
Key values
- 4,389.62 Mo Distance Peak
- 2026-06-10 09:17:28 Date
Checkpoints Activity
↑ Back to the top of the Checkpoint Activity tableDay Hour Written buffers Write time Sync time Total time Jun 10 06 25,793 2,151.835s 0.328s 2,152.71s 07 715,909 3,238.312s 0.255s 3,238.988s 08 812,060 3,238.836s 0.227s 3,239.574s 09 1,729,495 3,403.034s 12.944s 3,417.892s 10 288,695 3,238.546s 0.706s 3,239.613s 11 276,915 3,239.225s 0.192s 3,239.734s 12 177,050 3,239.306s 0.095s 3,239.675s Day Hour Added Removed Recycled Synced files Longest sync Average sync Jun 10 06 0 177 139 1,945 0.135s 0.011s 07 0 75 176 4,651 0.024s 0.012s 08 0 0 271 6,569 0.005s 0.012s 09 0 175 913 8,567 1.715s 0.054s 10 0 78 47 6,136 0.091s 0.012s 11 0 0 116 6,189 0.003s 0.012s 12 0 37 63 5,062 0.003s 0.012s Day Hour Count Avg time (sec) Jun 10 06 0 0s 07 0 0s 08 0 0s 09 0 0s 10 0 0s 11 0 0s 12 0 0s Day Hour Mean distance Mean estimate Jun 10 06 290,960.82 kB 347,427.09 kB 07 432,190.58 kB 1,446,542.33 kB 08 427,884.67 kB 1,098,410.08 kB 09 991,552.17 kB 1,566,375.56 kB 10 172,370.58 kB 775,407.50 kB 11 160,114.25 kB 339,795.50 kB 12 144,719.08 kB 469,097.58 kB -
Temporary Files
Size of temporary files
Key values
- 15.00 GiB Temp Files size Peak
- 2026-06-10 09:18:27 Date
Number of temporary files
Key values
- 181 per second Temp Files Peak
- 2026-06-10 08:22:58 Date
Temporary Files Activity
↑ Back to the top of the Temporary Files Activity tableDay Hour Count Total size Average size Jun 10 06 634 6.50 GiB 10.49 MiB 07 5,706 13.53 GiB 2.43 MiB 08 16,009 39.06 GiB 2.50 MiB 09 13,732 76.68 GiB 5.72 MiB 10 14,215 35.78 GiB 2.58 MiB 11 16,857 40.42 GiB 2.46 MiB 12 4,129 12.68 GiB 3.15 MiB Queries generating the most temporary files (N)
Rank Count Total size Min size Max size Avg size Query 1 67,047 167.43 GiB 340 B 70.20 MiB 2.56 MiB select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in (...) and exists ( select null from turma_professor tp where tp.id_cidadao = ? and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = ?) and rd.data_referencia = sda.data and rd.data_atualizacao > ? and t.id_periodicidade_conteudo in (...) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = ?) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > ? and t.id_periodicidade_conteudo = ?);-
select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) and exists ( select null from turma_professor tp where tp.id_cidadao = $11 and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = 0) and rd.data_referencia = sda.data and rd.data_atualizacao > $12 and t.id_periodicidade_conteudo in (1, 2, 4) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = 0) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > $13 and t.id_periodicidade_conteudo = 3);
Date: 2026-06-10 06:00:58 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - principal
2 3,272 2.77 GiB 36 B 11.66 MiB 886.14 KiB select ugu.id_usuario, ugu.id_grupo_usuario, ugu.id_unidade_funcional, ugu.id_assunto_hierarquia_unidade from usuario_grupo_unidade ugu inner join grupo_usuario gu on ugu.id_grupo_usuario = gu.id_grupo_usuario inner join tipo_instituicao_instituicao tii on tii.id_instituicao = gu.id_instituicao where gu.id_ator = ? and ugu.id_usuario in ( select cu.id_usuario from cidadao_usuario cu where cu.id_cidadao = ?) and not exists ( select null from ( select scb.id_cidadao, scbue.id_unidade_funcional from servidor_cargo_base scb inner join srv_cargo_base_unid_exerc scbue on scb.id_servidor_cargo_base = scbue.id_servidor_cargo_base union all select scs.id_cidadao, scsue.id_unidade_funcional from servidor_cargo_sobr_alt scs inner join srv_cargo_sobreposto_unid_ex scsue on scs.id_servidor_cargo_sobr_alt = scsue.id_servidor_cargo_sobr_alt union all select tch.id_cidadao, tc.id_unidade_funcional from turma_componente_historico tch inner join turma_componente tc on tc.id_turma_componente = tch.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tch.id_servidor_cargo_base inner join ano_semestre ano on ano.id_ano_semestre = tc.id_ano_semestre where tch.id_atrib_motivo_disp = ? and scb.flg_aberto is true and ano.ano >= ? union all select trah.id_cidadao, tra.id_unidade_funcional from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = trah.id_servidor_cargo_base inner join ano_semestre ano on ano.id_ano_semestre = tra.id_ano_semestre where trah.id_atrib_motivo_disp = ? and scb.flg_aberto is true and ano.ano >= ?) tabela where tabela.id_cidadao in ( select cu.id_cidadao from cidadao_usuario cu where cu.id_usuario = ugu.id_usuario) and ugu.id_unidade_funcional = tabela.id_unidade_funcional) and tii.id_tipo_instituicao = ? and gu.id_instituicao in ( select id_instituicao from instituicao_recurso_implement where id_recurso = ? and id_implementacao = ?);-
select ugu.id_usuario, ugu.id_grupo_usuario, ugu.id_unidade_funcional, ugu.id_assunto_hierarquia_unidade from usuario_grupo_unidade ugu inner join grupo_usuario gu on ugu.id_grupo_usuario = gu.id_grupo_usuario inner join tipo_instituicao_instituicao tii on tii.id_instituicao = gu.id_instituicao where gu.id_ator = 3 and ugu.id_usuario in ( select cu.id_usuario from cidadao_usuario cu where cu.id_cidadao = $1) and not exists ( select null from ( select scb.id_cidadao, scbue.id_unidade_funcional from servidor_cargo_base scb inner join srv_cargo_base_unid_exerc scbue on scb.id_servidor_cargo_base = scbue.id_servidor_cargo_base union all select scs.id_cidadao, scsue.id_unidade_funcional from servidor_cargo_sobr_alt scs inner join srv_cargo_sobreposto_unid_ex scsue on scs.id_servidor_cargo_sobr_alt = scsue.id_servidor_cargo_sobr_alt union all select tch.id_cidadao, tc.id_unidade_funcional from turma_componente_historico tch inner join turma_componente tc on tc.id_turma_componente = tch.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tch.id_servidor_cargo_base inner join ano_semestre ano on ano.id_ano_semestre = tc.id_ano_semestre where tch.id_atrib_motivo_disp = 4 and scb.flg_aberto is true and ano.ano >= 2020 union all select trah.id_cidadao, tra.id_unidade_funcional from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = trah.id_servidor_cargo_base inner join ano_semestre ano on ano.id_ano_semestre = tra.id_ano_semestre where trah.id_atrib_motivo_disp = 4 and scb.flg_aberto is true and ano.ano >= 2020) tabela where tabela.id_cidadao in ( select cu.id_cidadao from cidadao_usuario cu where cu.id_usuario = ugu.id_usuario) and ugu.id_unidade_funcional = tabela.id_unidade_funcional) and tii.id_tipo_instituicao = 2 and gu.id_instituicao in ( select id_instituicao from instituicao_recurso_implement where id_recurso = 1000 and id_implementacao = 8);
Date: 2026-06-10 07:51:26 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - principal
3 318 814.21 MiB 160.00 KiB 17.12 MiB 2.56 MiB select gu.id_grupo_usuario, gu.nome, usuarios.numero, ahu.descricao, ahu.id_assunto_hierarquia_unidade from grupo_usuario gu inner join grupo_assunto ga using (id_grupo_usuario) inner join assunto_hierarquia_unidade ahu using (id_assunto_hierarquia_unidade) left join ( select count(distinct ugu.id_usuario) as numero, ugu.id_grupo_usuario, ugu.id_assunto_hierarquia_unidade, ui.id_instituicao from usuario_grupo_unidade ugu inner join usuario_instituicao ui on ui.id_usuario = ugu.id_usuario inner join usuario u on u.id_usuario = ugu.id_usuario where u.flg_excluido is false group by ugu.id_grupo_usuario, ugu.id_assunto_hierarquia_unidade, ui.id_instituicao) usuarios on usuarios.id_grupo_usuario = gu.id_grupo_usuario and usuarios.id_assunto_hierarquia_unidade = ga.id_assunto_hierarquia_unidade and usuarios.id_instituicao = gu.id_instituicao where ? = ? and (gu.id_instituicao = ?) order by gu.nome;-
SELECT gu.id_grupo_usuario, gu.nome, usuarios.numero, ahu.descricao, ahu.id_assunto_hierarquia_unidade FROM grupo_usuario gu INNER JOIN grupo_assunto ga USING (id_grupo_usuario) INNER JOIN assunto_hierarquia_unidade ahu USING (id_assunto_hierarquia_unidade) LEFT JOIN ( SELECT COUNT(distinct ugu.id_usuario) AS numero, ugu.id_grupo_usuario, ugu.id_assunto_hierarquia_unidade, ui.id_instituicao FROM usuario_grupo_unidade ugu inner join usuario_instituicao ui on ui.id_usuario = ugu.id_usuario inner join usuario u on u.id_usuario = ugu.id_usuario where u.flg_excluido is false GROUP BY ugu.id_grupo_usuario, ugu.id_assunto_hierarquia_unidade, ui.id_instituicao) usuarios ON usuarios.id_grupo_usuario = gu.id_grupo_usuario AND usuarios.id_assunto_hierarquia_unidade = ga.id_assunto_hierarquia_unidade AND usuarios.id_instituicao = gu.id_instituicao WHERE 1 = 1 AND (GU.ID_INSTITUICAO = 60) order by gu.nome;
Date: 2026-06-10 10:40:59 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - principal
4 165 2.44 GiB 5.56 MiB 631.05 MiB 15.13 MiB insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then ? else ? end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then ? else ? end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then ? else ? end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then ? else ? end) as rematriculados_reprovados, ? as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = ? or am2.id_aluno_matr_status = ?) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (...) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, ? as ingressantes, ? as rematriculados, ? as rematriculados_aprovados, ? as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, ? as inscritos_enem, amt.id_serie_enturmacao, ? as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + ? and ano_seg.semestre is null) or (ano.semestre = ? and ano_seg.ano = ano.ano and ano_seg.semestre = ?) or (ano.semestre = ? and ano_seg.ano = ano.ano + ? and ano_seg.semestre = ?) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = ? and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;-
insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;
Date: 2026-06-10 12:04:16 Duration: 2m10s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
-
insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;
Date: 2026-06-10 12:02:11 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
5 36 31.09 GiB 7.28 MiB 1.00 GiB 884.24 MiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (partition by am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), ?)::integer as aulas, coalesce(count(falta.id_aluno_matricula), ?)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = ? inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (...) and am.id_aluno_matr_status = ? and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;-
insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;
Date: 2026-06-10 09:18:28 Duration: 5h18m8s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;
Date: 2026-06-10 06:35:07 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
6 34 4.34 GiB 8.00 KiB 1.00 GiB 130.79 MiB refresh materialized view aplicacoes_see.vw_aluno;-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;
Date: 2026-06-10 06:55:52 Duration: 6h24m8s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;
Date: 2026-06-10 06:55:31 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
7 30 153.51 MiB 4.28 MiB 8.16 MiB 5.12 MiB select count(*) as contagem from ( select uf.nome as unidade, ano.ano, curso.sigla as curso, aluno.codigo as matricula, c.nome, count(turma.id_turma) as turmas from cidadao c inner join aluno on aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am on am.id_cidadao = aluno.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma on turma.id_turma = amt.id_turma inner join tipo_turma tt on tt.id_tipo_turma = turma.id_tipo_turma inner join turno on turno.id_turno = turma.id_turno inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional rede on rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio on municipio.id_municipio = uf.id_municipio inner join escola es on uf.id_unidade_funcional = es.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) where c.id_instituicao = ? and turma.flg_organizada and ano.ano = ? and uf.id_unidade_funcional in ( select ? union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and curso.id_curso = ? and ams.flg_status_ativo and uf.id_municipio = ? group by uf.nome, ano.ano, curso.sigla, aluno.codigo, c.nome order by "nome" asc) tabela;-
select count(*) as contagem from ( select uf.nome as unidade, ano.ano, curso.sigla as curso, aluno.codigo as matricula, c.nome, count(turma.id_turma) as turmas from cidadao c inner join aluno ON aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am ON am.id_cidadao = aluno.id_cidadao inner join aluno_matr_turma amt ON amt.id_aluno_matricula = am.id_aluno_matricula inner join aluno_matr_status ams ON ams.id_aluno_matr_status = am.id_aluno_matr_status inner join ano_semestre ano ON ano.id_ano_semestre = am.id_ano_semestre inner join turma ON turma.id_turma = amt.id_turma inner join tipo_turma tt ON tt.id_tipo_turma = turma.id_tipo_turma inner join turno ON turno.id_turno = turma.id_turno inner join serie ON serie.id_serie = am.id_serie inner join curso ON curso.id_curso = serie.id_curso inner join unidade_funcional uf ON uf.id_unidade_funcional = turma.id_unidade_funcional inner join hierarquia_unidade_funcional huf ON huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = $1 inner join unidade_funcional rede ON rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio ON municipio.id_municipio = uf.id_municipio inner join escola es on uf.id_unidade_funcional = es.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in ($2, $3) where c.id_instituicao = $4 and turma.flg_organizada and ano.ano = $5 and uf.id_unidade_funcional in ( select $6 union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = $7 and id_assunto_hierarquia_unidade = $8) and curso.id_curso = $9 and ams.flg_status_ativo and uf.id_municipio = $10 group by uf.nome, ano.ano, curso.sigla, aluno.codigo, c.nome order by "nome" asc) tabela;
Date: 2026-06-10 08:59:53 Duration: 0ms
8 30 153.51 MiB 4.07 MiB 8.16 MiB 5.12 MiB select uf.nome as unidade, ano.ano, curso.sigla as curso, aluno.codigo as matricula, c.nome, count(turma.id_turma) as turmas from cidadao c inner join aluno on aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am on am.id_cidadao = aluno.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma on turma.id_turma = amt.id_turma inner join tipo_turma tt on tt.id_tipo_turma = turma.id_tipo_turma inner join turno on turno.id_turno = turma.id_turno inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional rede on rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio on municipio.id_municipio = uf.id_municipio inner join escola es on uf.id_unidade_funcional = es.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) where c.id_instituicao = ? and turma.flg_organizada and ano.ano = ? and uf.id_unidade_funcional in ( select ? union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and curso.id_curso = ? and ams.flg_status_ativo and uf.id_municipio = ? group by uf.nome, ano.ano, curso.sigla, aluno.codigo, c.nome order by "nome" asc limit ?;-
select uf.nome as unidade, ano.ano, curso.sigla as curso, aluno.codigo as matricula, c.nome, count(turma.id_turma) as turmas from cidadao c inner join aluno ON aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am ON am.id_cidadao = aluno.id_cidadao inner join aluno_matr_turma amt ON amt.id_aluno_matricula = am.id_aluno_matricula inner join aluno_matr_status ams ON ams.id_aluno_matr_status = am.id_aluno_matr_status inner join ano_semestre ano ON ano.id_ano_semestre = am.id_ano_semestre inner join turma ON turma.id_turma = amt.id_turma inner join tipo_turma tt ON tt.id_tipo_turma = turma.id_tipo_turma inner join turno ON turno.id_turno = turma.id_turno inner join serie ON serie.id_serie = am.id_serie inner join curso ON curso.id_curso = serie.id_curso inner join unidade_funcional uf ON uf.id_unidade_funcional = turma.id_unidade_funcional inner join hierarquia_unidade_funcional huf ON huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = $1 inner join unidade_funcional rede ON rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio ON municipio.id_municipio = uf.id_municipio inner join escola es on uf.id_unidade_funcional = es.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in ($2, $3) where c.id_instituicao = $4 and turma.flg_organizada and ano.ano = $5 and uf.id_unidade_funcional in ( select $6 union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = $7 and id_assunto_hierarquia_unidade = $8) and curso.id_curso = $9 and ams.flg_status_ativo and uf.id_municipio = $10 group by uf.nome, ano.ano, curso.sigla, aluno.codigo, c.nome order by "nome" asc limit 10;
Date: 2026-06-10 08:59:56 Duration: 0ms
9 16 313.90 MiB 18.91 MiB 23.12 MiB 19.62 MiB select u.id_usuario as id, u.nome || ? || u.login || ? as nome from usuario u where u.login is not null and u.id_usuario in ( select ui.id_usuario from usuario_instituicao ui where ui.id_instituicao = ?) and upper(u.nome) like ? order by u.nome limit ?;-
select u.id_usuario as id, u.nome || ' (' || u.login || ')' as nome from usuario u where u.login is not null and u.id_usuario in ( select ui.id_usuario from usuario_instituicao ui where ui.id_instituicao = $1) and upper(u.nome) like $2 order by u.nome limit 25;
Date: 2026-06-10 09:41:42 Duration: 0ms
10 15 255.00 MiB 1.20 MiB 190.78 MiB 17.00 MiB insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas as vagas, turma_serie.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, ?) as enturmados, turma.id_turma_status from turma inner join turma_serie on turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? where am.id_aluno_matr_status in (...) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (...) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, ?) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? where am.id_aluno_matr_status in (...) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (...);-
insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);
Date: 2026-06-10 12:01:43 Duration: 1m20s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
-
insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);
Date: 2026-06-10 12:01:30 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
11 14 34.03 MiB 87.01 KiB 4.81 MiB 2.43 MiB insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part(?, aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part(?, aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:49 Duration: 26s291ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:49 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
12 14 40.14 MiB 358.00 KiB 5.40 MiB 2.87 MiB insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, coalesce(faltas.falta_nao_justificada, ?) as faltas, case when aulas.aulas = ? then ?.? when coalesce(faltas.falta_nao_justificada, ?) > aulas.aulas then ?.? else round(? * (aulas.aulas - coalesce(faltas.falta_nao_justificada, ?)) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome where case when aulas.aulas = ? then ?.? when coalesce(faltas.falta_nao_justificada, ?) > aulas.aulas then ?.? else round(? * (aulas.aulas - coalesce(faltas.falta_nao_justificada, ?)) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, coalesce(faltas.falta_nao_justificada, 0) as faltas, case when aulas.aulas = 0 then 100.0 when coalesce(faltas.falta_nao_justificada, 0) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - coalesce(faltas.falta_nao_justificada, 0)) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where case when aulas.aulas = 0 then 100.0 when coalesce(faltas.falta_nao_justificada, 0) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - coalesce(faltas.falta_nao_justificada, 0)) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:21:16 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
13 9 6.42 GiB 60.02 MiB 1.00 GiB 730.22 MiB insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:23 Duration: 18m6s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:23 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
14 8 422.23 MiB 8.32 MiB 138.20 MiB 52.78 MiB refresh materialized view aplicacoes_see.vw_matriz_curricular;-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_matriz_curricular;
Date: 2026-06-10 06:55:59 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
15 7 498.92 MiB 5.42 MiB 456.47 MiB 71.27 MiB insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, ? as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, ?)) as faltas, case when sum(aulas) = ? then ?.? when sum(coalesce(faltas.faltas, ?)) > sum(aulas) then ?.? else round(? * (sum(aulas) - sum(coalesce(faltas.faltas, ?))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> array[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where am.id_aluno_matr_status = ? and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = ? then ?.? when sum(coalesce(faltas.faltas, ?)) > sum(aulas) then ?.? else round(? * (sum(aulas) - sum(coalesce(faltas.faltas, ?))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;
Date: 2026-06-10 09:43:42 Duration: 3m52s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;
Date: 2026-06-10 09:40:06 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
16 7 710.10 MiB 4.87 MiB 375.02 MiB 101.44 MiB insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, ? as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (...) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, ? as matriculados, ? as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> ?) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, ? as matriculados, ? as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;-
insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, 0 as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt ON am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> 5) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;
Date: 2026-06-10 12:02:06 Duration: 22s885ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
-
insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, 0 as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt ON am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> 5) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;
Date: 2026-06-10 12:01:59 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
17 6 392.02 MiB 65.34 MiB 65.34 MiB 65.34 MiB select unidade_mae.nome as rede_escolas, ( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = ? and medoa.id_unidade_funcional = uf.id_unidade_funcional) as localizacao_zona, uf.codigo, uf.nome as escola, case when turma.flg_multietapa then ? when turma.flg_multiseriada then ? else ? end as tipo, turma_status.descricao as situacao, curso.sigla as curso, series.serie, turma.codigo, turma.nome, ano.ano || coalesce(? || ano.semestre, ?) as ano_semestre, turno.descricao as turno, case when turma.flg_multietapa then ? else ? end as multietapa, case when turma.flg_correcao_fluxo then ? else ? end as correcao_fluxo, case when turma.flg_frequencia_diaria then ? else ? end as frequencia_diaria, case when turma.flg_atividade_avaliativa then ? else ? end as atividade_avaliativa, case when periodicidade_conteudo.flg_periodicidade_apontamento then periodicidade_apontamento.descricao else periodicidade_conteudo.descricao end as conteudo_curricular_diario, case when turma.flg_situacao_didatica then ? else ? end as situacao_didatica, case when exists ( select null from turma_quadro_homologado tqh where tqh.id_turma = turma.id_turma) then ? else ? end as quadro_homologado, ambiente.num_sala, to_char(turma.hora_inicio_real, ?) as hora_inicio, to_char(turma.hora_final_real, ?) as hora_fim, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, mec_programa.descricao as mec_programa, series.serie, series.matriz, series.tipo_matriz, series.vagas_oferecidas, series.vagas_remanescentes, series.vagas_oferecidas - series.vagas_remanescentes as total_alunos, series.modelo_avaliacao_desc, series.modelo_observacao_estudante, series.modelo_acompanhamento_atitudinal, series.ficha_acompanhamento, mec_turma_local_func_diferenciado.descricao from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_status on turma_status.id_turma_status = turma.id_turma_status inner join curso on curso.id_curso = turma.id_curso inner join turno on turno.id_turno = turma.id_turno inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join periodicidade_conteudo on periodicidade_conteudo.id_periodicidade_conteudo = turma.id_periodicidade_conteudo inner join periodicidade_apontamento on periodicidade_apontamento.id_periodicidade_apontamento = curso.id_periodicidade_apontamento left join mec_turma_local_func_diferenciado on mec_turma_local_func_diferenciado.id_mec_turma_local_func_diferenciado = turma.id_mec_turma_local_func_diferenciado left join mec_estrutura_curricular_turma on mec_estrutura_curricular_turma.id_mec_estrutura_curricular_turma = turma.id_mec_estrutura_curricular_turma left join mec_tipo_atendimento_turma on mec_tipo_atendimento_turma.id_mec_tipo_atendimento_turma = turma.id_mec_tipo_atendimento_turma left join mec_programa on mec_programa.id_mec_programa = turma.id_mec_programa left join ( select ts.id_turma, string_agg(serie.sigla, ? order by serie.sigla, serie.id_serie) as serie, string_agg(grade.descricao, ? order by serie.sigla, serie.id_serie) as matriz, string_agg( case when grade.flg_padrao then ? else ? end, ? order by serie.sigla, serie.id_serie) as tipo_matriz, sum(ts.num_vagas_oferecidas) as vagas_oferecidas, sum(ts.num_vagas_remanescentes) as vagas_remanescentes, string_agg(modelo_avaliacao_desc.descricao, ? order by serie.sigla, serie.id_serie) as modelo_avaliacao_desc, string_agg(modelo_observacao_estudante.descricao, ? order by serie.sigla, serie.id_serie) as modelo_observacao_estudante, string_agg(modelo_acompanhamento_atitudinal.descricao, ? order by serie.sigla, serie.id_serie) as modelo_acompanhamento_atitudinal, ficha.ficha_acompanhamento from turma_serie ts inner join serie on serie.id_serie = ts.id_serie inner join grade_curricular grade on grade.id_grade_curricular = ts.id_grade_curricular left join modelo_avaliacao_desc on modelo_avaliacao_desc.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc left join modelo_avaliacao_desc modelo_observacao_estudante on modelo_observacao_estudante.id_modelo_avaliacao_desc = ts.id_modelo_observacao_estudante left join modelo_avaliacao_desc modelo_acompanhamento_atitudinal on modelo_acompanhamento_atitudinal.id_modelo_avaliacao_desc = ts.id_modelo_acompanhamento_atitudinal left join ( select string_agg(ficha_acompanhamento.descricao, ? order by ficha_acompanhamento.descricao) as ficha_acompanhamento, tsmad.id_turma from turma_serie_modelo_avaliacao_desc tsmad left join modelo_avaliacao_desc ficha_acompanhamento on tsmad.id_modelo_avaliacao_desc = ficha_acompanhamento.id_modelo_avaliacao_desc and ficha_acompanhamento.id_tipo_modelo_avaliacao_desc = ? group by tsmad.id_turma) as ficha on ts.id_turma = ficha.id_turma group by ts.id_turma, ficha.ficha_acompanhamento) as series on series.id_turma = turma.id_turma inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional unidade_mae on unidade_mae.id_unidade_funcional = huf.id_unidade_funcional_mae where uf.id_instituicao = ? and ano.ano = ? and uf.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) order by escola, serie, curso;-
select unidade_mae.nome as rede_escolas, ( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = $1 and medoa.id_unidade_funcional = uf.id_unidade_funcional) as localizacao_zona, uf.codigo, uf.nome as escola, case when turma.flg_multietapa then 'Multietapa' when turma.flg_multiseriada then 'Multisseriada' else '' end as tipo, turma_status.descricao as situacao, curso.sigla as curso, series.serie, turma.codigo, turma.nome, ano.ano || coalesce('/' || ano.semestre, '') as ano_semestre, turno.descricao as turno, case when turma.flg_multietapa then 'Sim' else 'Não' end as multietapa, case when turma.flg_correcao_fluxo then 'Sim' else 'Não' end as correcao_fluxo, case when turma.flg_frequencia_diaria then 'Sim' else 'Não' end as frequencia_diaria, case when turma.flg_atividade_avaliativa then 'Sim' else 'Não' end as atividade_avaliativa, case when periodicidade_conteudo.flg_periodicidade_apontamento then periodicidade_apontamento.descricao else periodicidade_conteudo.descricao end as conteudo_curricular_diario, case when turma.flg_situacao_didatica then 'Sim' else 'Não' end as situacao_didatica, case when exists ( select null from turma_quadro_homologado tqh where tqh.id_turma = turma.id_turma) then 'Sim' else 'Não' end as quadro_homologado, ambiente.num_sala, to_char(turma.hora_inicio_real, 'HH24:MI') as hora_inicio, to_char(turma.hora_final_real, 'HH24:MI') as hora_fim, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, mec_programa.descricao as mec_programa, series.serie, series.matriz, series.tipo_matriz, series.vagas_oferecidas, series.vagas_remanescentes, series.vagas_oferecidas - series.vagas_remanescentes as total_alunos, series.modelo_avaliacao_desc, series.modelo_observacao_estudante, series.modelo_acompanhamento_atitudinal, series.ficha_acompanhamento, mec_turma_local_func_diferenciado.descricao from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_status on turma_status.id_turma_status = turma.id_turma_status inner join curso on curso.id_curso = turma.id_curso inner join turno on turno.id_turno = turma.id_turno inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join periodicidade_conteudo ON periodicidade_conteudo.id_periodicidade_conteudo = turma.id_periodicidade_conteudo inner join periodicidade_apontamento on periodicidade_apontamento.id_periodicidade_apontamento = curso.id_periodicidade_apontamento left join mec_turma_local_func_diferenciado ON mec_turma_local_func_diferenciado.id_mec_turma_local_func_diferenciado = turma.id_mec_turma_local_func_diferenciado left join mec_estrutura_curricular_turma ON mec_estrutura_curricular_turma.id_mec_estrutura_curricular_turma = turma.id_mec_estrutura_curricular_turma left join mec_tipo_atendimento_turma on mec_tipo_atendimento_turma.id_mec_tipo_atendimento_turma = turma.id_mec_tipo_atendimento_turma left join mec_programa on mec_programa.id_mec_programa = turma.id_mec_programa left join ( select ts.id_turma, string_agg(serie.sigla, '; ' order by serie.sigla, serie.id_serie) as serie, string_agg(grade.descricao, '; ' order by serie.sigla, serie.id_serie) as matriz, string_agg( case when grade.flg_padrao then 'Padrão' else 'Específica' end, '; ' order by serie.sigla, serie.id_serie) as tipo_matriz, sum(ts.num_vagas_oferecidas) as vagas_oferecidas, sum(ts.num_vagas_remanescentes) as vagas_remanescentes, string_agg(modelo_avaliacao_desc.descricao, '; ' order by serie.sigla, serie.id_serie) as modelo_avaliacao_desc, string_agg(modelo_observacao_estudante.descricao, '; ' order by serie.sigla, serie.id_serie) as modelo_observacao_estudante, string_agg(modelo_acompanhamento_atitudinal.descricao, '; ' order by serie.sigla, serie.id_serie) as modelo_acompanhamento_atitudinal, ficha.ficha_acompanhamento from turma_serie ts inner join serie on serie.id_serie = ts.id_serie inner join grade_curricular grade on grade.id_grade_curricular = ts.id_grade_curricular left join modelo_avaliacao_desc on modelo_avaliacao_desc.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc left join modelo_avaliacao_desc modelo_observacao_estudante on modelo_observacao_estudante.id_modelo_avaliacao_desc = ts.id_modelo_observacao_estudante left join modelo_avaliacao_desc modelo_acompanhamento_atitudinal on modelo_acompanhamento_atitudinal.id_modelo_avaliacao_desc = ts.id_modelo_acompanhamento_atitudinal left join ( select string_agg(ficha_acompanhamento.descricao, '; ' order by ficha_acompanhamento.descricao) as ficha_acompanhamento, tsmad.id_turma from turma_serie_modelo_avaliacao_desc tsmad left join modelo_avaliacao_desc ficha_acompanhamento on tsmad.id_modelo_avaliacao_desc = ficha_acompanhamento.id_modelo_avaliacao_desc and ficha_acompanhamento.id_tipo_modelo_avaliacao_desc = $2 group by tsmad.id_turma) as ficha on ts.id_turma = ficha.id_turma group by ts.id_turma, ficha.ficha_acompanhamento) as series on series.id_turma = turma.id_turma inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = $3 inner join unidade_funcional unidade_mae on unidade_mae.id_unidade_funcional = huf.id_unidade_funcional_mae where uf.id_instituicao = $4 and ano.ano = $5 and uf.id_unidade_funcional in ( select $6 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $7 and id_assunto_hierarquia_unidade = $8) order by escola, serie, curso;
Date: 2026-06-10 09:36:03 Duration: 0ms
18 5 2.41 GiB 474.25 MiB 525.23 MiB 493.80 MiB create index if not exists ix_falta_aluno_mes on call_center.falta_aluno_mes using btree (id_aluno_matricula, id_turma, data);-
CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);
Date: 2026-06-10 09:19:03 Duration: 35s874ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);
Date: 2026-06-10 09:19:03 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
19 5 211.48 MiB 32.71 MiB 49.77 MiB 42.30 MiB with dias_consecutivos as ( select id_instituicao, id_aluno_matricula, id_turma, row_number() over (partition by id_aluno_matricula, id_turma order by data) as rn, num_aula - row_number() over (partition by id_aluno_matricula, id_turma order by data) as grupo, num_aula, data, bimestre, faltas from call_center.falta_aluno_mes where faltas > ? and aulas = faltas) insert into call_center.falta_aluno_dias_consecutivos (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, data_inicio, data_fim, bimestre_inicio, bimestre_fim, dias, faltas) select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas union all select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas union all select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas;-
with dias_consecutivos as ( select id_instituicao, id_aluno_matricula, id_turma, row_number() over (partition by id_aluno_matricula, id_turma order by data) as rn, num_aula - row_number() over (partition by id_aluno_matricula, id_turma order by data) as grupo, num_aula, data, bimestre, faltas from call_center.falta_aluno_mes where faltas > 0 and aulas = faltas) insert into call_center.falta_aluno_dias_consecutivos (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, data_inicio, data_fim, bimestre_inicio, bimestre_fim, dias, faltas) select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas union all select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas union all select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:19:15 Duration: 11s942ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
with dias_consecutivos as ( select id_instituicao, id_aluno_matricula, id_turma, row_number() over (partition by id_aluno_matricula, id_turma order by data) as rn, num_aula - row_number() over (partition by id_aluno_matricula, id_turma order by data) as grupo, num_aula, data, bimestre, faltas from call_center.falta_aluno_mes where faltas > 0 and aulas = faltas) insert into call_center.falta_aluno_dias_consecutivos (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, data_inicio, data_fim, bimestre_inicio, bimestre_fim, dias, faltas) select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas union all select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas union all select dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, parametro_frequencia.id_monitoramento_frequencia, min(dias_consecutivos.data) as data_inicio, max(dias_consecutivos.data) as data_fim, min(dias_consecutivos.bimestre) as bimestre_inicio, max(dias_consecutivos.bimestre) as bimestre_fim, count(distinct dias_consecutivos.data)::integer dias, sum(dias_consecutivos.faltas)::integer faltas from dias_consecutivos inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on dias_consecutivos.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 group by dias_consecutivos.id_instituicao, dias_consecutivos.id_aluno_matricula, dias_consecutivos.id_turma, dias_consecutivos.grupo, parametro_frequencia.id_monitoramento_frequencia, parametro_frequencia.faltas_consecutivas having count(distinct dias_consecutivos.data) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:19:15 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
20 4 3.62 GiB 634.03 MiB 1.00 GiB 926.51 MiB insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, ? as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = ? then ?.? when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then ?.? else round(ceil(? * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part(?, dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part(?, dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? inner join lateral ( select date_part(?, falta_aluno_mes.data) as ano, date_part(?, falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * ? + parametros.mes) <= (date_part(?, current_date) * ? + date_part(?, current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = ? then ?.? when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then ?.? else round(ceil(? * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part(?, dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part(?, dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:21:08 Duration: 1m52s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:21:07 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
21 2 37.77 MiB 18.42 MiB 19.35 MiB 18.89 MiB select unidade_mae.nome as rede_escolas, ( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = ? and medoa.id_unidade_funcional = uf.id_unidade_funcional) as localizacao_zona, uf.codigo, uf.nome as escola, case when turma.flg_multietapa then ? when turma.flg_multiseriada then ? else ? end as tipo, turma_status.descricao as situacao, curso.sigla as curso, series.serie, turma.codigo, turma.nome, ano.ano || coalesce(? || ano.semestre, ?) as ano_semestre, turno.descricao as turno, case when turma.flg_multietapa then ? else ? end as multietapa, case when turma.flg_correcao_fluxo then ? else ? end as correcao_fluxo, case when turma.flg_frequencia_diaria then ? else ? end as frequencia_diaria, case when turma.flg_atividade_avaliativa then ? else ? end as atividade_avaliativa, case when periodicidade_conteudo.flg_periodicidade_apontamento then periodicidade_apontamento.descricao else periodicidade_conteudo.descricao end as conteudo_curricular_diario, case when turma.flg_situacao_didatica then ? else ? end as situacao_didatica, case when exists ( select null from turma_quadro_homologado tqh where tqh.id_turma = turma.id_turma) then ? else ? end as quadro_homologado, ambiente.num_sala, to_char(turma.hora_inicio_real, ?) as hora_inicio, to_char(turma.hora_final_real, ?) as hora_fim, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, mec_programa.descricao as mec_programa, series.serie, series.matriz, series.tipo_matriz, series.vagas_oferecidas, series.vagas_remanescentes, series.vagas_oferecidas - series.vagas_remanescentes as total_alunos, series.modelo_avaliacao_desc, series.modelo_observacao_estudante, series.modelo_acompanhamento_atitudinal, series.ficha_acompanhamento, mec_turma_local_func_diferenciado.descricao from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_status on turma_status.id_turma_status = turma.id_turma_status inner join curso on curso.id_curso = turma.id_curso inner join turno on turno.id_turno = turma.id_turno inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join periodicidade_conteudo on periodicidade_conteudo.id_periodicidade_conteudo = turma.id_periodicidade_conteudo inner join periodicidade_apontamento on periodicidade_apontamento.id_periodicidade_apontamento = curso.id_periodicidade_apontamento left join mec_turma_local_func_diferenciado on mec_turma_local_func_diferenciado.id_mec_turma_local_func_diferenciado = turma.id_mec_turma_local_func_diferenciado left join mec_estrutura_curricular_turma on mec_estrutura_curricular_turma.id_mec_estrutura_curricular_turma = turma.id_mec_estrutura_curricular_turma left join mec_tipo_atendimento_turma on mec_tipo_atendimento_turma.id_mec_tipo_atendimento_turma = turma.id_mec_tipo_atendimento_turma left join mec_programa on mec_programa.id_mec_programa = turma.id_mec_programa left join ( select ts.id_turma, string_agg(serie.sigla, ? order by serie.sigla, serie.id_serie) as serie, string_agg(grade.descricao, ? order by serie.sigla, serie.id_serie) as matriz, string_agg( case when grade.flg_padrao then ? else ? end, ? order by serie.sigla, serie.id_serie) as tipo_matriz, sum(ts.num_vagas_oferecidas) as vagas_oferecidas, sum(ts.num_vagas_remanescentes) as vagas_remanescentes, string_agg(modelo_avaliacao_desc.descricao, ? order by serie.sigla, serie.id_serie) as modelo_avaliacao_desc, string_agg(modelo_observacao_estudante.descricao, ? order by serie.sigla, serie.id_serie) as modelo_observacao_estudante, string_agg(modelo_acompanhamento_atitudinal.descricao, ? order by serie.sigla, serie.id_serie) as modelo_acompanhamento_atitudinal, ficha.ficha_acompanhamento from turma_serie ts inner join serie on serie.id_serie = ts.id_serie inner join grade_curricular grade on grade.id_grade_curricular = ts.id_grade_curricular left join modelo_avaliacao_desc on modelo_avaliacao_desc.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc left join modelo_avaliacao_desc modelo_observacao_estudante on modelo_observacao_estudante.id_modelo_avaliacao_desc = ts.id_modelo_observacao_estudante left join modelo_avaliacao_desc modelo_acompanhamento_atitudinal on modelo_acompanhamento_atitudinal.id_modelo_avaliacao_desc = ts.id_modelo_acompanhamento_atitudinal left join ( select string_agg(ficha_acompanhamento.descricao, ? order by ficha_acompanhamento.descricao) as ficha_acompanhamento, tsmad.id_turma from turma_serie_modelo_avaliacao_desc tsmad left join modelo_avaliacao_desc ficha_acompanhamento on tsmad.id_modelo_avaliacao_desc = ficha_acompanhamento.id_modelo_avaliacao_desc and ficha_acompanhamento.id_tipo_modelo_avaliacao_desc = ? group by tsmad.id_turma) as ficha on ts.id_turma = ficha.id_turma group by ts.id_turma, ficha.ficha_acompanhamento) as series on series.id_turma = turma.id_turma inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional unidade_mae on unidade_mae.id_unidade_funcional = huf.id_unidade_funcional_mae where uf.id_instituicao = ? and ano.ano = ? and uf.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and uf.id_municipio = ? order by escola, serie, curso;-
select unidade_mae.nome as rede_escolas, ( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = $1 and medoa.id_unidade_funcional = uf.id_unidade_funcional) as localizacao_zona, uf.codigo, uf.nome as escola, case when turma.flg_multietapa then 'Multietapa' when turma.flg_multiseriada then 'Multisseriada' else '' end as tipo, turma_status.descricao as situacao, curso.sigla as curso, series.serie, turma.codigo, turma.nome, ano.ano || coalesce('/' || ano.semestre, '') as ano_semestre, turno.descricao as turno, case when turma.flg_multietapa then 'Sim' else 'Não' end as multietapa, case when turma.flg_correcao_fluxo then 'Sim' else 'Não' end as correcao_fluxo, case when turma.flg_frequencia_diaria then 'Sim' else 'Não' end as frequencia_diaria, case when turma.flg_atividade_avaliativa then 'Sim' else 'Não' end as atividade_avaliativa, case when periodicidade_conteudo.flg_periodicidade_apontamento then periodicidade_apontamento.descricao else periodicidade_conteudo.descricao end as conteudo_curricular_diario, case when turma.flg_situacao_didatica then 'Sim' else 'Não' end as situacao_didatica, case when exists ( select null from turma_quadro_homologado tqh where tqh.id_turma = turma.id_turma) then 'Sim' else 'Não' end as quadro_homologado, ambiente.num_sala, to_char(turma.hora_inicio_real, 'HH24:MI') as hora_inicio, to_char(turma.hora_final_real, 'HH24:MI') as hora_fim, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, mec_programa.descricao as mec_programa, series.serie, series.matriz, series.tipo_matriz, series.vagas_oferecidas, series.vagas_remanescentes, series.vagas_oferecidas - series.vagas_remanescentes as total_alunos, series.modelo_avaliacao_desc, series.modelo_observacao_estudante, series.modelo_acompanhamento_atitudinal, series.ficha_acompanhamento, mec_turma_local_func_diferenciado.descricao from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_status on turma_status.id_turma_status = turma.id_turma_status inner join curso on curso.id_curso = turma.id_curso inner join turno on turno.id_turno = turma.id_turno inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join periodicidade_conteudo ON periodicidade_conteudo.id_periodicidade_conteudo = turma.id_periodicidade_conteudo inner join periodicidade_apontamento on periodicidade_apontamento.id_periodicidade_apontamento = curso.id_periodicidade_apontamento left join mec_turma_local_func_diferenciado ON mec_turma_local_func_diferenciado.id_mec_turma_local_func_diferenciado = turma.id_mec_turma_local_func_diferenciado left join mec_estrutura_curricular_turma ON mec_estrutura_curricular_turma.id_mec_estrutura_curricular_turma = turma.id_mec_estrutura_curricular_turma left join mec_tipo_atendimento_turma on mec_tipo_atendimento_turma.id_mec_tipo_atendimento_turma = turma.id_mec_tipo_atendimento_turma left join mec_programa on mec_programa.id_mec_programa = turma.id_mec_programa left join ( select ts.id_turma, string_agg(serie.sigla, '; ' order by serie.sigla, serie.id_serie) as serie, string_agg(grade.descricao, '; ' order by serie.sigla, serie.id_serie) as matriz, string_agg( case when grade.flg_padrao then 'Padrão' else 'Específica' end, '; ' order by serie.sigla, serie.id_serie) as tipo_matriz, sum(ts.num_vagas_oferecidas) as vagas_oferecidas, sum(ts.num_vagas_remanescentes) as vagas_remanescentes, string_agg(modelo_avaliacao_desc.descricao, '; ' order by serie.sigla, serie.id_serie) as modelo_avaliacao_desc, string_agg(modelo_observacao_estudante.descricao, '; ' order by serie.sigla, serie.id_serie) as modelo_observacao_estudante, string_agg(modelo_acompanhamento_atitudinal.descricao, '; ' order by serie.sigla, serie.id_serie) as modelo_acompanhamento_atitudinal, ficha.ficha_acompanhamento from turma_serie ts inner join serie on serie.id_serie = ts.id_serie inner join grade_curricular grade on grade.id_grade_curricular = ts.id_grade_curricular left join modelo_avaliacao_desc on modelo_avaliacao_desc.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc left join modelo_avaliacao_desc modelo_observacao_estudante on modelo_observacao_estudante.id_modelo_avaliacao_desc = ts.id_modelo_observacao_estudante left join modelo_avaliacao_desc modelo_acompanhamento_atitudinal on modelo_acompanhamento_atitudinal.id_modelo_avaliacao_desc = ts.id_modelo_acompanhamento_atitudinal left join ( select string_agg(ficha_acompanhamento.descricao, '; ' order by ficha_acompanhamento.descricao) as ficha_acompanhamento, tsmad.id_turma from turma_serie_modelo_avaliacao_desc tsmad left join modelo_avaliacao_desc ficha_acompanhamento on tsmad.id_modelo_avaliacao_desc = ficha_acompanhamento.id_modelo_avaliacao_desc and ficha_acompanhamento.id_tipo_modelo_avaliacao_desc = $2 group by tsmad.id_turma) as ficha on ts.id_turma = ficha.id_turma group by ts.id_turma, ficha.ficha_acompanhamento) as series on series.id_turma = turma.id_turma inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = $3 inner join unidade_funcional unidade_mae on unidade_mae.id_unidade_funcional = huf.id_unidade_funcional_mae where uf.id_instituicao = $4 and ano.ano = $5 and uf.id_unidade_funcional in ( select $6 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $7 and id_assunto_hierarquia_unidade = $8) and uf.id_municipio = $9 order by escola, serie, curso;
Date: 2026-06-10 11:35:52 Duration: 0ms
22 2 94.83 KiB 2.72 KiB 92.11 KiB 47.41 KiB select count(*) as contagem from ( select ? || d.id_destaque as id, i.nome as imagem, i.identificador as id_imagem_pequena, i.tipo as tipo_peq, i2.identificador as id_imagem_media, i2.tipo as tipo_med, i3.identificador as id_imagem_grande, i3.tipo as tipo_grd, d.id_destaque as id_d, null as unidades, headline (d.titulo, q) as nome, ? || headline (d.descricao, q) as chamada, null as informacoes, rank(d.fts, q) as rank, d.url as src from destaque d left join destaque_imagem di on d.id_destaque = di.id_destaque and di.id_tamanho_aplicativo = ? left join imagem i on di.id_imagem = i.id_imagem left join destaque_imagem di2 on d.id_destaque = di2.id_destaque and di2.id_tamanho_aplicativo = ? left join imagem i2 on di2.id_imagem = i2.id_imagem left join destaque_imagem di3 on d.id_destaque = di3.id_destaque and di3.id_tamanho_aplicativo = ? left join imagem i3 on di3.id_imagem = i3.id_imagem, to_tsquery(?) as q where d.fts @@ q and d.id_instituicao = ? and (d.id_destaque in ( select id_destaque from destaque_unidade_funcional where id_status_portal = ?)) order by rank desc) tabela;-
select count(*) as contagem from ( select 'd' || d.id_destaque as id, i.nome as imagem, i.identificador as id_imagem_pequena, i.tipo as tipo_peq, i2.identificador as id_imagem_media, i2.tipo as tipo_med, i3.identificador as id_imagem_grande, i3.tipo as tipo_grd, d.id_destaque as id_d, null as unidades, headline (d.titulo, q) as nome, '[Destaque] ' || headline (d.descricao, q) as chamada, null as informacoes, rank(d.fts, q) as rank, d.url as src from destaque d left join destaque_imagem di on d.id_destaque = di.id_destaque and di.id_tamanho_aplicativo = 2 left join imagem i on di.id_imagem = i.id_imagem left join destaque_imagem di2 on d.id_destaque = di2.id_destaque and di2.id_tamanho_aplicativo = 3 left join imagem i2 on di2.id_imagem = i2.id_imagem left join destaque_imagem di3 on d.id_destaque = di3.id_destaque and di3.id_tamanho_aplicativo = 4 left join imagem i3 on di3.id_imagem = i3.id_imagem, to_tsquery($1) as q where d.fts @@ q and d.id_instituicao = $2 and (d.id_destaque in ( select id_destaque from destaque_unidade_funcional where id_status_portal = $3)) order by rank desc) tabela;
Date: 2026-06-10 12:44:49 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - principal
23 1 65.34 MiB 65.34 MiB 65.34 MiB 65.34 MiB from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = ? and f.id_motivo_falta_justificada = ? and f.data between ?::date and ?::date order by f.id_turma, f.id_nota_periodo_aluno;-
from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = $1 and f.id_motivo_falta_justificada = $2 and f.data between $3::date and $4::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 10:31:42 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
24 1 2.72 KiB 2.72 KiB 2.72 KiB 2.72 KiB select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in (...) and exists ( select null from turma_professor tp where tp.id_cidadao = ? and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = ?) and rd.data_referencia = sda.data and rd.data_atualizacao > ? and t.id_periodicidade_conteudo in (...) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = ?) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > ? and t.id_periodicidade_conteudo = ?) ? - 06 - 10 ? : ? : ? ?[?] :[? - 1] user = augeeducacional, db = augeeducacional, app = augeeducacional - principal, rem_host = lnxsiepeapp01 (?), tag = select , err = ? notice: ? : text - search query doesn 't contain lexemes: "";-
select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) and exists ( select null from turma_professor tp where tp.id_cidadao = $11 and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = 0) and rd.data_referencia = sda.data and rd.data_atualizacao > $12 and t.id_periodicidade_conteudo in (1, 2, 4) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = 0) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > $13 and t.id_periodicidade_conteudo = 3) 2026 - 06 - 10 12:45:03 - 03[31222] :[961 - 1] user = augeeducacional, db = augeeducacional, app = augeeducacional - principal, rem_host = lnxsiepeapp01 (30472), tag = SELECT , err = 00000 NOTICE: 00000: text - search query doesn 't contain lexemes: "";
Date: 2026-06-10 12:45:02 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - principal
Queries generating the largest temporary files
Rank Size Query 1 1.00 GiB REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;[ Date: 2026-06-10 06:55:31 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
2 1.00 GiB REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;[ Date: 2026-06-10 06:55:31 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
3 1.00 GiB REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;[ Date: 2026-06-10 06:55:31 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
4 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
5 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
6 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
7 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
8 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
9 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
10 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
11 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
12 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
13 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
14 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
15 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
16 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:26 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
17 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:27 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
18 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:27 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
19 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:27 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
20 1.00 GiB insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:27 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
-
Vacuums
Vacuums / Analyzes Distribution
Key values
- 0 sec Highest CPU-cost vacuum
Table
Database - Date
- 0 sec Highest CPU-cost analyze
Table
Database - Date
Autovacuum actions (5 minutes period)
NO DATASET
Average Autovacuum Duration
Key values
- 0 sec Highest CPU-cost vacuum
Table
Database - Date
Average Autovacuum Duration (5 minutes average)
NO DATASET
Analyzes per table
Key values
- unknown (0) Main table analyzed (database )
- 0 analyzes Total
Vacuums per table
Key values
- unknown (0) Main table vacuumed on database
- 0 vacuums Total
Vacuum throughput per table
Key values
- unknown (0) Max CPU elapsed for vacuum on database
- unknown (0 ms) Max I/O read time for vacuum on database
- unknown (0 ms) Max I/O write time for vacuum on database
Tuples removed per table
Key values
- unknown (0) Main table with removed tuples on database
- 0 tuples Total removed
Pages removed per table
Key values
- unknown (0) Main table with removed pages on database unknown
- 0 pages Total removed
Autovacuum Activity
↑ Back to the top of the Autovacuum Activity tableDay Hour VACUUMs ANALYZEs Jun 10 06 0 0 07 0 0 08 0 0 09 0 0 10 0 0 11 0 0 12 0 0 - 0 sec Highest CPU-cost vacuum
-
Locks
Locks by types
Key values
- ShareLock Main Lock Type
- 1 locks Total
Most frequent waiting queries (N)
Rank Count Total time Min time Max time Avg duration Query 1 1 1s220ms 1s220ms 1s220ms 1s220ms update local_class_atribuicao set id_cidadao = ?, id_unidade_funcional = ?, id_ano_semestre = ? where id_local_class_atribuicao = ?;-
update local_class_atribuicao set id_cidadao = $1, id_unidade_funcional = $2, id_ano_semestre = $3 where id_local_class_atribuicao = $4;
Date: 2026-06-10 07:51:26 Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - principal
Queries that waited the most
Rank Wait time Query 1 1s220ms update local_class_atribuicao set id_cidadao = $1, id_unidade_funcional = $2, id_ano_semestre = $3 where id_local_class_atribuicao = $4;[ Date: 2026-06-10 07:51:26 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - principal ]
-
Queries
Queries by type
Key values
- 26 Total read queries
- 13 Total write queries
Queries by database
Key values
- augeeducacional Main database
- 41 Requests
- 12h29m3s (augeeducacional)
- Main time consuming database
Queries by user
Key values
- augeeducacional Main user
- 30 Requests
User Request type Count Duration augeeducacional Total 30 18m9s cte 3 51s93ms insert 3 3m53s select 24 13m24s postgres Total 9 12h7m36s cte 1 11s942ms ddl 1 35s874ms insert 5 5h42m26s others 2 6h24m22s sergio_veiga Total 2 3m17s select 2 3m17s Duration by user
Key values
- 12h7m36s (postgres) Main time consuming user
User Request type Count Duration augeeducacional Total 30 18m9s cte 3 51s93ms insert 3 3m53s select 24 13m24s postgres Total 9 12h7m36s cte 1 11s942ms ddl 1 35s874ms insert 5 5h42m26s others 2 6h24m22s sergio_veiga Total 2 3m17s select 2 3m17s Queries by host
Key values
- lnxsiepeapp01 Main host
- 30 Requests
- 12h7m36s ([local])
- Main time consuming host
Queries by application
Key values
- augeeducacional - fila Main application
- 30 Requests
- 12h7m36s (psql)
- Main time consuming application
Number of cancelled queries
Key values
- 3 per second Cancelled query Peak
- 2026-06-10 09:40:27 Date
Number of cancelled queries (5 minutes period)
NO DATASET
Queries generating the most cancellation (N)
Rank Count Query 1 9 select cargo.id_cargo, situacao_funcional.id_situacao_funcional, cargo.sigla, cargo.descricao, situacao_funcional.descricao, count(ocup.id_cargo) as total_vagas_ocupadas, ocup.disciplina from cargo inner join ( select scb.id_cargo, scb.id_situacao_funcional, scb.id_disciplina, ( select jtos.id_jornada_trabalho_tipo from jorn_trabalho_opcao_car_base jtocb inner join jorn_trabalho_opcao_serv jtos on jtocb.id_jorn_trabalho_opcao_serv = jtos.id_jorn_trabalho_opcao_serv where jtos.flg_opcao_desligada is false and jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base order by ano desc limit ?) as jornada, coalesce(lotacao.id_unidade_lotacao, scb.id_unidade_sede) as id_unidade_funcional, disciplina.sigla as disciplina from servidor_cargo_base scb left join lotacao on scb.id_servidor_cargo_base = lotacao.id_servidor_cargo_base and lotacao.flg_aberto is true left join disciplina on disciplina.id_disciplina = scb.id_disciplina where scb.flg_aberto is true union all select scs.id_cargo, scs.id_situacao_funcional, null as id_disciplina, ( select jtos.id_jornada_trabalho_tipo from jorn_trabalho_opcao_car_sobr jtocs inner join jorn_trabalho_opcao_serv jtos on jtocs.id_jorn_trabalho_opcao_serv = jtos.id_jorn_trabalho_opcao_serv where jtos.flg_opcao_desligada is false and jtocs.id_servidor_cargo_sobr_alt = scs.id_servidor_cargo_sobr_alt order by ano desc limit ?) as jornada, coalesce(scs.id_unidade_funcional_lotacao, scs.id_unidade_funcional_servico) as id_unidade_funcional, disciplina.sigla as disciplina from servidor_cargo_sobr_alt scs inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = scs.id_servidor_cargo_base left join disciplina on disciplina.id_disciplina = scb.id_disciplina where scs.flg_aberto is true) ocup on ocup.id_cargo = cargo.id_cargo inner join situacao_funcional on situacao_funcional.id_situacao_funcional = ocup.id_situacao_funcional inner join unidade_funcional on unidade_funcional.id_unidade_funcional = ocup.id_unidade_funcional where (ocup.id_unidade_funcional = ? or exists ( select null from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = ? and id_unidade_funcional_filha = ocup.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ?)) and (cargo.id_instituicao = ?) and (unidade_funcional.id_municipio = ?) and (situacao_funcional.id_situacao_funcional = ?) and (cargo.id_area_atuacao = ?) and (ocup.jornada = ?) group by cargo.id_cargo, situacao_funcional.id_situacao_funcional, cargo.sigla, cargo.descricao, situacao_funcional.descricao, ocup.disciplina order by cargo.sigla;2 5 select un_mae.nome as gre, m.nome as municipio_escola, uf.codigo, uf.nome as escola, aluno.codigo as matricula, cidadao.nome, to_char(cidadao.nascimento_data, ?) as nascimento_data, municipio.nome as municipio, ce.bairro, concat_ws(?, nullif (ce.endereco, ?), nullif (ce.numero, ?), nullif (ce.complemento, ?)) || coalesce(? || nullif (formatar_cep (ce.cep), ?)) as endereco, ( select string_agg(formatar_telefone (telefone_ddd, telefone_numero), ?) from cidadao_telefone where id_cidadao = cidadao.id_cidadao) as telefone, c_responsavel.nome as responsavel, ams.descricao as situacao, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, frequencia_aluno.faltas, frequencia_aluno.percentual_frequencia, frequencia_aluno.dias_consecutivos, ( select string_agg(situacao_notificacao.descricao, ? order by situacao_notificacao.data_criacao) from call_center.situacao_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_situacao_notificacao = situacao_notificacao.id_situacao_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as ocorrencia, ( select string_agg(responsavel_notificacao.descricao, ? order by responsavel_notificacao.ordem) from call_center.responsavel_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_responsavel_notificacao = responsavel_notificacao.id_responsavel_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as responsavel from call_center.monitoramento_frequencia_aluno frequencia_aluno inner join aluno_matr_turma amt on frequencia_aluno.id_aluno_matricula = amt.id_aluno_matricula and frequencia_aluno.id_turma = amt.id_turma inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = am.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join responsavel r on r.id_responsavel = aluno.id_responsavel left join cidadao c_responsavel on c_responsavel.id_cidadao = r.id_responsavel left join cidadao_endereco ce on ce.id_cidadao = cidadao.id_cidadao left join municipio on municipio.id_municipio = ce.id_municipio left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) inner join municipio m on m.id_municipio = uf.id_municipio left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? left join unidade_funcional un_mae on huf.id_unidade_funcional_mae = un_mae.id_unidade_funcional where cidadao.id_instituicao = ? and am.id_unidade_funcional in ( select ? union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and ano.ano = ? and frequencia_aluno.id_monitoramento_frequencia = ? and ano.semestre is null and uf.id_municipio = ? order by cidadao.nome;3 5 select un_mae.nome as gre, m.nome as municipio_escola, uf.codigo, uf.nome as escola, aluno.codigo as matricula, cidadao.nome, to_char(cidadao.nascimento_data, ?) as nascimento_data, municipio.nome as municipio, ce.bairro, concat_ws(?, nullif (ce.endereco, ?), nullif (ce.numero, ?), nullif (ce.complemento, ?)) || coalesce(? || nullif (formatar_cep (ce.cep), ?)) as endereco, ( select string_agg(formatar_telefone (telefone_ddd, telefone_numero), ?) from cidadao_telefone where id_cidadao = cidadao.id_cidadao) as telefone, c_responsavel.nome as responsavel, ams.descricao as situacao, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, frequencia_aluno.faltas, frequencia_aluno.percentual_frequencia, frequencia_aluno.dias_consecutivos, ( select string_agg(situacao_notificacao.descricao, ? order by situacao_notificacao.data_criacao) from call_center.situacao_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_situacao_notificacao = situacao_notificacao.id_situacao_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as ocorrencia, ( select string_agg(responsavel_notificacao.descricao, ? order by responsavel_notificacao.ordem) from call_center.responsavel_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_responsavel_notificacao = responsavel_notificacao.id_responsavel_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as responsavel from call_center.monitoramento_frequencia_aluno frequencia_aluno inner join aluno_matr_turma amt on frequencia_aluno.id_aluno_matricula = amt.id_aluno_matricula and frequencia_aluno.id_turma = amt.id_turma inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = am.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join responsavel r on r.id_responsavel = aluno.id_responsavel left join cidadao c_responsavel on c_responsavel.id_cidadao = r.id_responsavel left join cidadao_endereco ce on ce.id_cidadao = cidadao.id_cidadao left join municipio on municipio.id_municipio = ce.id_municipio left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) inner join municipio m on m.id_municipio = uf.id_municipio left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? left join unidade_funcional un_mae on huf.id_unidade_funcional_mae = un_mae.id_unidade_funcional where cidadao.id_instituicao = ? and am.id_unidade_funcional in ( select ? union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and ano.ano = ? and frequencia_aluno.id_monitoramento_frequencia = ? and frequencia_aluno.periodo in (...) and ano.semestre is null and curso.id_periodicidade_apontamento in (...) and uf.id_municipio = ? order by cidadao.nome;4 4 select un_mae.nome as gre, m.nome as municipio_escola, uf.codigo, uf.nome as escola, aluno.codigo as matricula, cidadao.nome, to_char(cidadao.nascimento_data, ?) as nascimento_data, municipio.nome as municipio, ce.bairro, concat_ws(?, nullif (ce.endereco, ?), nullif (ce.numero, ?), nullif (ce.complemento, ?)) || coalesce(? || nullif (formatar_cep (ce.cep), ?)) as endereco, ( select string_agg(formatar_telefone (telefone_ddd, telefone_numero), ?) from cidadao_telefone where id_cidadao = cidadao.id_cidadao) as telefone, c_responsavel.nome as responsavel, ams.descricao as situacao, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, frequencia_aluno.faltas, frequencia_aluno.percentual_frequencia, frequencia_aluno.dias_consecutivos, ( select string_agg(situacao_notificacao.descricao, ? order by situacao_notificacao.data_criacao) from call_center.situacao_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_situacao_notificacao = situacao_notificacao.id_situacao_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as ocorrencia, ( select string_agg(responsavel_notificacao.descricao, ? order by responsavel_notificacao.ordem) from call_center.responsavel_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_responsavel_notificacao = responsavel_notificacao.id_responsavel_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as responsavel from call_center.monitoramento_frequencia_aluno frequencia_aluno inner join aluno_matr_turma amt on frequencia_aluno.id_aluno_matricula = amt.id_aluno_matricula and frequencia_aluno.id_turma = amt.id_turma inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = am.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join responsavel r on r.id_responsavel = aluno.id_responsavel left join cidadao c_responsavel on c_responsavel.id_cidadao = r.id_responsavel left join cidadao_endereco ce on ce.id_cidadao = cidadao.id_cidadao left join municipio on municipio.id_municipio = ce.id_municipio left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) inner join municipio m on m.id_municipio = uf.id_municipio left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? left join unidade_funcional un_mae on huf.id_unidade_funcional_mae = un_mae.id_unidade_funcional where cidadao.id_instituicao = ? and am.id_unidade_funcional in ( select ? union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and ano.ano = ? and frequencia_aluno.id_monitoramento_frequencia = ? and frequencia_aluno.periodo in (...) and ano.semestre = ? and uf.id_municipio = ? order by cidadao.nome;5 3 select c.id_cidadao, am.id_aluno_matricula, a.codigo as matricula, c.nome, u.nome as unidade, to_char(c.nascimento_data, ?) as data_nascimento, tr.codigo as codigo_turma, sim_nao (am.flg_parecer_descritivo) as flg_parecer_descritivo, sim_nao (amtd.id_aluno_matricula notnull) as flg_turma_diversificada, string_agg(ne.descricao, ?) as descricao_necessidade, case when c.flg_laudo_medico_necessidade_esp then ( select a.identificador from arquivo a where a.id_arquivo = c.id_arquivo_laudo_medico limit ?) end as identificador_laudo from aluno_matricula am inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno a on a.id_cidadao = c.id_cidadao inner join unidade_funcional u on u.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join cidadao_necessidade_especial cne on cne.id_cidadao = c.id_cidadao inner join necessidade_especial ne on ne.id_necessidade_especial = cne.id_necessidade_especial left join aluno_matr_turma amtr on amtr.id_aluno_matricula = am.id_aluno_matricula and amtr.id_tipo_enturmacao = ? left join turma tr on tr.id_turma = amtr.id_turma left join aluno_matr_turma amtd on amtd.id_aluno_matricula = am.id_aluno_matricula and amtd.id_tipo_enturmacao = ? left join turma td on td.id_turma = amtd.id_turma where am.id_serie = ? and ano.id_ano_semestre = ? and u.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and am.id_aluno_matr_status in (...) and c.flg_necessidade_especial is true and u.id_municipio = ? group by c.id_cidadao, am.id_aluno_matricula, a.codigo, u.id_unidade_funcional, tr.codigo, am.flg_parecer_descritivo, amtd.id_aluno_matricula order by a.codigo limit ?;6 1 delete from grade_curricular where id_grade_curricular = ?; -
Top Queries
Histogram of query times
Key values
- 41 > 10000ms duration
Slowest individual queries
Rank Duration Query 1 6h24m8s REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;[ Date: 2026-06-10 06:55:52 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
2 5h18m8s insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-10 09:18:28 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
3 18m6s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;[ Date: 2026-06-10 09:39:23 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
4 3m52s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;[ Date: 2026-06-10 09:43:42 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
5 2m30s select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9510524' and f.id_motivo_falta_justificada = '6' and f.data between '2026-06-04'::date and '2026-06-05'::date order by f.id_turma, f.id_nota_periodo_aluno;[ Date: 2026-06-10 09:54:21 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
6 2m10s insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;[ Date: 2026-06-10 12:04:16 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
7 1m59s select d.descricao, fad.qtd_faltas from falta_aluno_disciplina fad inner join disciplina d on fad.id_disciplina = d.id_disciplina where id_aluno_matricula = 13992061 and fad.qtd_faltas > 0 order by fad.qtd_faltas desc;[ Date: 2026-06-10 08:14:20 - Database: augeeducacional - User: sergio_veiga - Remote: 10.81.13.6 - Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' - Bind query: yes ]
8 1m52s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;[ Date: 2026-06-10 09:21:08 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
9 1m21s select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9552397' and f.id_motivo_falta_justificada = '4' and f.data between '2026-06-22'::date and '2026-06-22'::date order by f.id_turma, f.id_nota_periodo_aluno;[ Date: 2026-06-10 08:14:27 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
10 1m20s insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);[ Date: 2026-06-10 12:01:43 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
11 1m18s select d.descricao, na.nota, npa.descricao from nota_aluno na inner join disciplina d on na.id_disciplina = d.id_disciplina inner join nota_periodo_aluno npa on na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where id_aluno_matricula = 13992061;[ Date: 2026-06-10 08:11:07 - Database: augeeducacional - User: sergio_veiga - Remote: 10.81.13.6 - Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' - Bind query: yes ]
12 1m18s select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9017187' and f.id_motivo_falta_justificada = '4' and f.data between '2026-05-14'::date and '2026-05-14'::date order by f.id_turma, f.id_nota_periodo_aluno;[ Date: 2026-06-10 10:25:07 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
13 1m11s select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9502452' and f.id_motivo_falta_justificada = '4' and f.data between '2026-05-25'::date and '2026-05-26'::date order by f.id_turma, f.id_nota_periodo_aluno;[ Date: 2026-06-10 08:41:48 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
14 54s122ms select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605476' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));[ Date: 2026-06-10 08:15:22 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
15 42s658ms select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605344' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605344' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;[ Date: 2026-06-10 09:19:39 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
16 39s411ms select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605965' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605965' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;[ Date: 2026-06-10 08:50:55 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
17 35s874ms CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);[ Date: 2026-06-10 09:19:03 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
18 31s932ms select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605461' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605461' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;[ Date: 2026-06-10 10:35:02 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
19 30s847ms select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '606255' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1011' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '606255' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1011' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;[ Date: 2026-06-10 08:26:54 - Database: augeeducacional - User: augeeducacional - Remote: lnxsiepeapp01 - Application: augeeducacional - fila - Bind query: yes ]
20 26s291ms insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;[ Date: 2026-06-10 09:39:49 - Database: augeeducacional - User: postgres - Remote: [local] - Application: psql ]
Time consuming queries (N)
Rank Total duration Times executed Min duration Max duration Avg duration Query 1 6h24m8s 1 6h24m8s 6h24m8s 6h24m8s refresh materialized view aplicacoes_see.vw_aluno;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Jun 10 06 1 6h24m8s 6h24m8s [ User: postgres - Total duration: 6h24m8s - Times executed: 1 ]
[ Application: psql - Total duration: 6h24m8s - Times executed: 1 ]
-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;
Date: 2026-06-10 06:55:52 Duration: 6h24m8s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;
Date: 2026-06-10 06:55:31 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
2 5h18m8s 1 5h18m8s 5h18m8s 5h18m8s insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (partition by am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), ?)::integer as aulas, coalesce(count(falta.id_aluno_matricula), ?)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = ? inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (...) and am.id_aluno_matr_status = ? and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Jun 10 09 1 5h18m8s 5h18m8s [ User: postgres - Total duration: 5h18m8s - Times executed: 1 ]
[ Application: psql - Total duration: 5h18m8s - Times executed: 1 ]
-
insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;
Date: 2026-06-10 09:18:28 Duration: 5h18m8s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;
Date: 2026-06-10 06:35:07 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
3 18m6s 1 18m6s 18m6s 18m6s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Jun 10 09 1 18m6s 18m6s [ User: postgres - Total duration: 18m6s - Times executed: 1 ]
[ Application: psql - Total duration: 18m6s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:23 Duration: 18m6s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:23 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
4 6m33s 5 11s320ms 2m30s 1m18s select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = ? and f.id_motivo_falta_justificada = ? and f.data between ?::date and ?::date order by f.id_turma, f.id_nota_periodo_aluno;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Jun 10 08 2 2m33s 1m16s 09 1 2m30s 2m30s 10 2 1m29s 44s853ms [ User: augeeducacional - Total duration: 6m33s - Times executed: 5 ]
[ Application: augeeducacional - fila - Total duration: 6m33s - Times executed: 5 ]
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9510524' and f.id_motivo_falta_justificada = '6' and f.data between '2026-06-04'::date and '2026-06-05'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 09:54:21 Duration: 2m30s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9552397' and f.id_motivo_falta_justificada = '4' and f.data between '2026-06-22'::date and '2026-06-22'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 08:14:27 Duration: 1m21s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9017187' and f.id_motivo_falta_justificada = '4' and f.data between '2026-05-14'::date and '2026-05-14'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 10:25:07 Duration: 1m18s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
5 3m52s 1 3m52s 3m52s 3m52s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, ? as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, ?)) as faltas, case when sum(aulas) = ? then ?.? when sum(coalesce(faltas.faltas, ?)) > sum(aulas) then ?.? else round(? * (sum(aulas) - sum(coalesce(faltas.faltas, ?))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> array[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where am.id_aluno_matr_status = ? and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = ? then ?.? when sum(coalesce(faltas.faltas, ?)) > sum(aulas) then ?.? else round(? * (sum(aulas) - sum(coalesce(faltas.faltas, ?))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 10 09 1 3m52s 3m52s [ User: postgres - Total duration: 3m52s - Times executed: 1 ]
[ Application: psql - Total duration: 3m52s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;
Date: 2026-06-10 09:43:42 Duration: 3m52s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;
Date: 2026-06-10 09:40:06 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
6 2m10s 1 2m10s 2m10s 2m10s insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then ? else ? end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then ? else ? end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then ? else ? end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then ? else ? end) as rematriculados_reprovados, ? as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = ? or am2.id_aluno_matr_status = ?) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (...) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, ? as ingressantes, ? as rematriculados, ? as rematriculados_aprovados, ? as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, ? as inscritos_enem, amt.id_serie_enturmacao, ? as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + ? and ano_seg.semestre is null) or (ano.semestre = ? and ano_seg.ano = ano.ano and ano_seg.semestre = ?) or (ano.semestre = ? and ano_seg.ano = ano.ano + ? and ano_seg.semestre = ?) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = ? and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Jun 10 12 1 2m10s 2m10s [ User: augeeducacional - Total duration: 2m10s - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 2m10s - Times executed: 1 ]
-
insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;
Date: 2026-06-10 12:04:16 Duration: 2m10s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;
Date: 2026-06-10 12:02:11 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
7 1m59s 1 1m59s 1m59s 1m59s select d.descricao, fad.qtd_faltas from falta_aluno_disciplina fad inner join disciplina d on fad.id_disciplina = d.id_disciplina where id_aluno_matricula = ? and fad.qtd_faltas > ? order by fad.qtd_faltas desc;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Jun 10 08 1 1m59s 1m59s [ User: sergio_veiga - Total duration: 1m59s - Times executed: 1 ]
[ Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' - Total duration: 1m59s - Times executed: 1 ]
-
select d.descricao, fad.qtd_faltas from falta_aluno_disciplina fad inner join disciplina d on fad.id_disciplina = d.id_disciplina where id_aluno_matricula = 13992061 and fad.qtd_faltas > 0 order by fad.qtd_faltas desc;
Date: 2026-06-10 08:14:20 Duration: 1m59s Database: augeeducacional User: sergio_veiga Remote: 10.81.13.6 Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' Bind query: yes
8 1m54s 3 31s932ms 42s658ms 38s select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? order by aluno;Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 10 08 1 39s411ms 39s411ms 09 1 42s658ms 42s658ms 10 1 31s932ms 31s932ms [ User: augeeducacional - Total duration: 1m54s - Times executed: 3 ]
[ Application: augeeducacional - fila - Total duration: 1m54s - Times executed: 3 ]
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605344' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605344' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:19:39 Duration: 42s658ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605965' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605965' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 08:50:55 Duration: 39s411ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605461' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605461' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 10:35:02 Duration: 31s932ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
9 1m52s 1 1m52s 1m52s 1m52s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, ? as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = ? then ?.? when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then ?.? else round(ceil(? * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part(?, dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part(?, dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? inner join lateral ( select date_part(?, falta_aluno_mes.data) as ano, date_part(?, falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * ? + parametros.mes) <= (date_part(?, current_date) * ? + date_part(?, current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = ? then ?.? when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then ?.? else round(ceil(? * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part(?, dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part(?, dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Jun 10 09 1 1m52s 1m52s [ User: postgres - Total duration: 1m52s - Times executed: 1 ]
[ Application: psql - Total duration: 1m52s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:21:08 Duration: 1m52s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:21:07 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
10 1m21s 4 16s367ms 30s847ms 20s283ms select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and am.id_curso = ? and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and am.id_curso = ? and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? order by aluno;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Jun 10 08 1 30s847ms 30s847ms 09 3 50s286ms 16s762ms [ User: augeeducacional - Total duration: 1m21s - Times executed: 4 ]
[ Application: augeeducacional - fila - Total duration: 1m21s - Times executed: 4 ]
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '606255' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1011' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '606255' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1011' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 08:26:54 Duration: 30s847ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1010' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1010' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:57:58 Duration: 17s177ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1013' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1013' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:45:11 Duration: 16s740ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
11 1m20s 1 1m20s 1m20s 1m20s insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas as vagas, turma_serie.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, ?) as enturmados, turma.id_turma_status from turma inner join turma_serie on turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? where am.id_aluno_matr_status in (...) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (...) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, ?) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? where am.id_aluno_matr_status in (...) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (...);Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Jun 10 12 1 1m20s 1m20s [ User: augeeducacional - Total duration: 1m20s - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 1m20s - Times executed: 1 ]
-
insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);
Date: 2026-06-10 12:01:43 Duration: 1m20s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);
Date: 2026-06-10 12:01:30 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
12 1m18s 1 1m18s 1m18s 1m18s select d.descricao, na.nota, npa.descricao from nota_aluno na inner join disciplina d on na.id_disciplina = d.id_disciplina inner join nota_periodo_aluno npa on na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where id_aluno_matricula = ?;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 10 08 1 1m18s 1m18s [ User: sergio_veiga - Total duration: 1m18s - Times executed: 1 ]
[ Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' - Total duration: 1m18s - Times executed: 1 ]
-
select d.descricao, na.nota, npa.descricao from nota_aluno na inner join disciplina d on na.id_disciplina = d.id_disciplina inner join nota_periodo_aluno npa on na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where id_aluno_matricula = 13992061;
Date: 2026-06-10 08:11:07 Duration: 1m18s Database: augeeducacional User: sergio_veiga Remote: 10.81.13.6 Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' Bind query: yes
13 1m16s 5 10s465ms 19s574ms 15s305ms select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ? || jtt.carga_horaria || ? as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, ?) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, ? as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, ?) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ?) as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = ? and scb.flg_aberto = true and (pucb.id_unidade_funcional = ? or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?)) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, ? as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, ?) as aulas, jtos.horas_atribuidas as horas_atrib, ? as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = ? and (pucs.id_unidade_funcional = ? or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, ? order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> ? union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> ? union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> ? union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> ?) d) as disponibilizacao on (true) order by gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Jun 10 07 1 17s676ms 17s676ms 09 1 19s574ms 19s574ms 10 1 17s185ms 17s185ms 11 2 22s89ms 11s44ms [ User: augeeducacional - Total duration: 1m16s - Times executed: 5 ]
[ Application: augeeducacional - fila - Total duration: 1m16s - Times executed: 5 ]
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 09:59:22 Duration: 19s574ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 07:53:26 Duration: 17s676ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 10:04:35 Duration: 17s185ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
14 1m15s 3 10s172ms 54s122ms 25s107ms select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = ? and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = ? and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = ? and turma.id_turma_status = ? and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= ? and (am.id_aluno_matr_status = ? or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by amsh.id_aluno_matr_status_hist desc limit ?) = ?)));Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Jun 10 06 1 11s26ms 11s26ms 08 1 54s122ms 54s122ms 09 1 10s172ms 10s172ms [ User: augeeducacional - Total duration: 1m15s - Times executed: 3 ]
[ Application: augeeducacional - fila - Total duration: 1m15s - Times executed: 3 ]
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605476' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 08:15:22 Duration: 54s122ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605471' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 06:53:07 Duration: 11s26ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605578' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 09:31:50 Duration: 10s172ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
15 37s487ms 2 18s122ms 19s365ms 18s743ms with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? and amt.data_enturmacao::date <= ?::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= ?::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit ?) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = ? and uf.id_instituicao = ? and (t.id_turma is null or t.id_turma_status in (...)) and ((t.id_diario_turma_situacao = ? and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = ?) or (t.id_diario_turma_situacao <> ? or t.id_diario_turma_situacao is null)) and uf.id_municipio = ? and pm.data_matricula::date <= ? and ( select amsh.id_aluno_matr_status in (...) from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit ?) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= ?::date and case when a.semestre = ? then cpf.ordem <= ? when a.semestre = ? then cpf.ordem >= ? else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > ? ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = ? left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > ? or pm.alunos > ?) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Jun 10 08 1 18s122ms 18s122ms 09 1 19s365ms 19s365ms [ User: augeeducacional - Total duration: 37s487ms - Times executed: 2 ]
[ Application: augeeducacional - fila - Total duration: 37s487ms - Times executed: 2 ]
-
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2026-06-10'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2026-06-10'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2026' and uf.id_instituicao = '60' and (t.id_turma is null or t.id_turma_status in ('1', '2')) and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and uf.id_municipio = '260320' and pm.data_matricula::date <= '2026-06-10' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-06-10' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2026-06-10'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '605613' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605613' and id_assunto_hierarquia_unidade = '49') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = '50' left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2026-06-10 09:05:23 Duration: 19s365ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2026-06-10'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2026-06-10'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2026' and uf.id_instituicao = '60' and (t.id_turma is null or t.id_turma_status in ('1', '2')) and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and uf.id_municipio = '261410' and pm.data_matricula::date <= '2026-06-10' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-06-10' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2026-06-10'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '605307' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605307' and id_assunto_hierarquia_unidade = '49') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = '50' left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2026-06-10 08:53:27 Duration: 18s122ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
16 35s874ms 1 35s874ms 35s874ms 35s874ms create index if not exists ix_falta_aluno_mes on call_center.falta_aluno_mes using btree (id_aluno_matricula, id_turma, data);Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Jun 10 09 1 35s874ms 35s874ms [ User: postgres - Total duration: 35s874ms - Times executed: 1 ]
[ Application: psql - Total duration: 35s874ms - Times executed: 1 ]
-
CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);
Date: 2026-06-10 09:19:03 Duration: 35s874ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);
Date: 2026-06-10 09:19:03 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
17 26s291ms 1 26s291ms 26s291ms 26s291ms insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part(?, aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part(?, aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Jun 10 09 1 26s291ms 26s291ms [ User: postgres - Total duration: 26s291ms - Times executed: 1 ]
[ Application: psql - Total duration: 26s291ms - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:49 Duration: 26s291ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:49 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
18 22s885ms 1 22s885ms 22s885ms 22s885ms insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, ? as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (...) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, ? as matriculados, ? as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> ?) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, ? as matriculados, ? as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Jun 10 12 1 22s885ms 22s885ms [ User: augeeducacional - Total duration: 22s885ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 22s885ms - Times executed: 1 ]
-
insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, 0 as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt ON am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> 5) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;
Date: 2026-06-10 12:02:06 Duration: 22s885ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, 0 as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt ON am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> 5) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;
Date: 2026-06-10 12:01:59 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
19 22s95ms 1 22s95ms 22s95ms 22s95ms select f.*;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Jun 10 10 1 22s95ms 22s95ms [ User: augeeducacional - Total duration: 22s95ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 22s95ms - Times executed: 1 ]
-
select f.*;
Date: 2026-06-10 10:40:56 Duration: 22s95ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
20 18s757ms 1 18s757ms 18s757ms 18s757ms select c.id_cidadao, rede.nome as rede, municipio.nome as municipio, unidade.codigo as codigo_unidade, unidade.nome as unidade, aluno.codigo as matricula, to_char(am.data_matricula, ?) as data_matricula, c.nome, c.sexo, raca_cor.descricao as raca_cor, to_char(c.nascimento_data, ?) as nascimento_data, men.descricao as numero_material_escolar, men.id_material_escolar, case when (dc.flg_modelo_novo_cn is false and dc.numero_cn is not null) or (dc.flg_modelo_novo_cn and dc.numero_matricula_cn is not null) then ? else ? end as registro_civil, coalesce((m_nascimento.nome || ? || uf.sigla), c.naturalidade) as naturalidade, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, dc.numero_nis, aluno.codigo_inep, dc.numero_cns, ano_semestre.ano || coalesce(? || ano_semestre.semestre, ?) as ano_semestre, ensino_etapa.sigla as ensino_etapa, modalidade.sigla as modalidade, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, ( case when exists ( select null from historico_estabelecimento he inner join historico_aluno_situacao has on has.id_historico_aluno_situacao = he.id_historico_aluno_situacao where he.id_cidadao = c.id_cidadao and he.id_serie_equivalente = serie.id_serie_equivalente and has.flg_aprovacao is false) then ? else ? end) as flg_reprovado, c.nome_mae as filiacao_1, c.nome_pai as filiacao_2, c.profissao_mae as proficao_filiacao_1, c.profissao_pai as proficao_filiacao_2, grau_1.descricao as grau_escolaridade_filiacao_1, grau_2.descricao as grau_escolaridade_filiacao_2, cidadao_responsavel.nome as responsavel, formatar_cpf (dc_responsavel.numero_cpf, dc_responsavel.digito_cpf) as cpf_responsavel, endereco.endereco || coalesce(? || nullif (trim(endereco.numero), ?), ?) || coalesce(? || nullif (trim(endereco.complemento), ?), ?) || coalesce(? || nullif (trim(endereco.bairro), ?), ?) || coalesce(? || nullif (formatar_cep (endereco.cep), ?), ?) || coalesce(? || mun_end.nome || ? || uf_end.sigla) as endereco, ( select string_agg(formatar_telefone (tel.telefone_ddd, tel.telefone_numero), ?) from cidadao_telefone tel where tel.id_cidadao = c.id_cidadao) as telefone, c.numero_conta_energia from cidadao c inner join aluno on aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am on am.id_cidadao = aluno.id_cidadao inner join curso on curso.id_curso = am.id_curso inner join serie on serie.id_serie = am.id_serie inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa on ensino_etapa.id_ensino_etapa = modalidade.id_ensino_etapa inner join ano_semestre on ano_semestre.id_ano_semestre = am.id_ano_semestre inner join raca_cor on raca_cor.id_raca_cor = c.id_raca_cor inner join unidade_funcional unidade on unidade.id_unidade_funcional = am.id_unidade_funcional inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = unidade.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional rede on rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio on municipio.id_municipio = unidade.id_municipio inner join cidadao_endereco endereco on endereco.id_cidadao = c.id_cidadao left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma on turma.id_turma = amt.id_turma left join municipio m_nascimento on m_nascimento.id_municipio = c.id_municipio_nascimento left join uf on uf.id_uf = m_nascimento.id_uf left join documentos_cidadao dc on dc.id_cidadao = c.id_cidadao left join responsavel on responsavel.id_responsavel = aluno.id_responsavel left join cidadao cidadao_responsavel on cidadao_responsavel.id_cidadao = responsavel.id_responsavel left join documentos_cidadao dc_responsavel on dc_responsavel.id_cidadao = cidadao_responsavel.id_cidadao left join municipio mun_end on mun_end.id_municipio = endereco.id_municipio left join uf uf_end on uf_end.id_uf = mun_end.id_uf left join material_escolar_aluno mea on mea.id_cidadao = c.id_cidadao and mea.ano = ano_semestre.ano left join material_escolar_aluno_num mean on mean.id_cidadao = mea.id_cidadao left join material_escolar_numeracao men on men.id_material_escolar_numeracao = mean.id_material_escolar_numeracao left join material_escolar me on me.id_material_escolar = mean.id_material_escolar and me.flg_exige_numeracao left join grau_escolaridade grau_1 on grau_1.id_grau_escolaridade = c.id_grau_escolaridade_mae left join grau_escolaridade grau_2 on grau_2.id_grau_escolaridade = c.id_grau_escolaridade_pai where unidade.id_instituicao = ? and unidade.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and ano_semestre.ano = ? and unidade.id_municipio = ? order by c.nome, men.id_material_escolar;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Jun 10 09 1 18s757ms 18s757ms [ User: augeeducacional - Total duration: 18s757ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 18s757ms - Times executed: 1 ]
-
select c.id_cidadao, rede.nome as rede, municipio.nome as municipio, unidade.codigo as codigo_unidade, unidade.nome as unidade, aluno.codigo as matricula, to_char(am.data_matricula, 'DD/MM/YYYY') as data_matricula, c.nome, c.sexo, raca_cor.descricao as raca_cor, to_char(c.nascimento_data, 'DD/MM/YYYY') as nascimento_data, men.descricao as numero_material_escolar, men.id_material_escolar, case when (dc.flg_modelo_novo_cn is false and dc.numero_cn is not null) or (dc.flg_modelo_novo_cn and dc.numero_matricula_cn is not null) then 'SIM' else 'NÃO' end as registro_civil, coalesce((m_nascimento.nome || '/' || uf.sigla), c.naturalidade) as naturalidade, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, dc.numero_nis, aluno.codigo_inep, dc.numero_cns, ano_semestre.ano || coalesce('/' || ano_semestre.semestre, '') as ano_semestre, ensino_etapa.sigla as ensino_etapa, modalidade.sigla as modalidade, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, ( case when exists ( select null from historico_estabelecimento he inner join historico_aluno_situacao has on has.id_historico_aluno_situacao = he.id_historico_aluno_situacao where he.id_cidadao = c.id_cidadao and he.id_serie_equivalente = serie.id_serie_equivalente and has.flg_aprovacao is false) then 'Sim' else 'Não' end) as flg_reprovado, c.nome_mae as filiacao_1, c.nome_pai as filiacao_2, c.profissao_mae as proficao_filiacao_1, c.profissao_pai as proficao_filiacao_2, grau_1.descricao as grau_escolaridade_filiacao_1, grau_2.descricao as grau_escolaridade_filiacao_2, cidadao_responsavel.nome as responsavel, formatar_cpf (dc_responsavel.numero_cpf, dc_responsavel.digito_cpf) as cpf_responsavel, endereco.endereco || coalesce(', ' || nullif (trim(endereco.numero), ''), '') || coalesce(', ' || nullif (trim(endereco.complemento), ''), '') || coalesce(', ' || nullif (trim(endereco.bairro), ''), '') || coalesce(', ' || nullif (formatar_cep (endereco.cep), ''), '') || coalesce(' - ' || mun_end.nome || '/' || uf_end.sigla) as endereco, ( select string_agg(formatar_telefone (tel.telefone_ddd, tel.telefone_numero), ', ') from cidadao_telefone tel where tel.id_cidadao = c.id_cidadao) as telefone, c.numero_conta_energia from cidadao c inner join aluno ON aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am ON am.id_cidadao = aluno.id_cidadao inner join curso ON curso.id_curso = am.id_curso inner join serie ON serie.id_serie = am.id_serie inner join modalidade ON modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa ON ensino_etapa.id_ensino_etapa = modalidade.id_ensino_etapa inner join ano_semestre ON ano_semestre.id_ano_semestre = am.id_ano_semestre inner join raca_cor ON raca_cor.id_raca_cor = c.id_raca_cor inner join unidade_funcional unidade ON unidade.id_unidade_funcional = am.id_unidade_funcional inner join hierarquia_unidade_funcional huf ON huf.id_unidade_funcional_filha = unidade.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' inner join unidade_funcional rede ON rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio ON municipio.id_municipio = unidade.id_municipio inner join cidadao_endereco endereco on endereco.id_cidadao = c.id_cidadao left join aluno_matr_turma amt ON amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma ON turma.id_turma = amt.id_turma left join municipio m_nascimento ON m_nascimento.id_municipio = c.id_municipio_nascimento left join uf ON uf.id_uf = m_nascimento.id_uf left join documentos_cidadao dc ON dc.id_cidadao = c.id_cidadao left join responsavel ON responsavel.id_responsavel = aluno.id_responsavel left join cidadao cidadao_responsavel ON cidadao_responsavel.id_cidadao = responsavel.id_responsavel left join documentos_cidadao dc_responsavel ON dc_responsavel.id_cidadao = cidadao_responsavel.id_cidadao left join municipio mun_end on mun_end.id_municipio = endereco.id_municipio left join uf uf_end on uf_end.id_uf = mun_end.id_uf left join material_escolar_aluno mea ON mea.id_cidadao = c.id_cidadao and mea.ano = ano_semestre.ano left join material_escolar_aluno_num mean ON mean.id_cidadao = mea.id_cidadao left join material_escolar_numeracao men ON men.id_material_escolar_numeracao = mean.id_material_escolar_numeracao left join material_escolar me ON me.id_material_escolar = mean.id_material_escolar and me.flg_exige_numeracao left join grau_escolaridade grau_1 ON grau_1.id_grau_escolaridade = c.id_grau_escolaridade_mae left join grau_escolaridade grau_2 ON grau_2.id_grau_escolaridade = c.id_grau_escolaridade_pai where unidade.id_instituicao = '60' and unidade.id_unidade_funcional in ( select '605683' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605683' and id_assunto_hierarquia_unidade = '49') and ano_semestre.ano = '2026' and unidade.id_municipio = '260620' order by c.nome, men.id_material_escolar;
Date: 2026-06-10 09:08:46 Duration: 18s757ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 5 6m33s 11s320ms 2m30s 1m18s select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = ? and f.id_motivo_falta_justificada = ? and f.data between ?::date and ?::date order by f.id_turma, f.id_nota_periodo_aluno;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Jun 10 08 2 2m33s 1m16s 09 1 2m30s 2m30s 10 2 1m29s 44s853ms [ User: augeeducacional - Total duration: 6m33s - Times executed: 5 ]
[ Application: augeeducacional - fila - Total duration: 6m33s - Times executed: 5 ]
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9510524' and f.id_motivo_falta_justificada = '6' and f.data between '2026-06-04'::date and '2026-06-05'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 09:54:21 Duration: 2m30s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9552397' and f.id_motivo_falta_justificada = '4' and f.data between '2026-06-22'::date and '2026-06-22'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 08:14:27 Duration: 1m21s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9017187' and f.id_motivo_falta_justificada = '4' and f.data between '2026-05-14'::date and '2026-05-14'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 10:25:07 Duration: 1m18s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
2 5 1m16s 10s465ms 19s574ms 15s305ms select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ? || jtt.carga_horaria || ? as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, ?) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, ? as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, ?) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ?) as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = ? and scb.flg_aberto = true and (pucb.id_unidade_funcional = ? or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?)) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, ? as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, ?) as aulas, jtos.horas_atribuidas as horas_atrib, ? as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = ? and (pucs.id_unidade_funcional = ? or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, ? order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> ? union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> ? union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> ? union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> ?) d) as disponibilizacao on (true) order by gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Jun 10 07 1 17s676ms 17s676ms 09 1 19s574ms 19s574ms 10 1 17s185ms 17s185ms 11 2 22s89ms 11s44ms [ User: augeeducacional - Total duration: 1m16s - Times executed: 5 ]
[ Application: augeeducacional - fila - Total duration: 1m16s - Times executed: 5 ]
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 09:59:22 Duration: 19s574ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 07:53:26 Duration: 17s676ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 10:04:35 Duration: 17s185ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
3 4 1m21s 16s367ms 30s847ms 20s283ms select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and am.id_curso = ? and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and am.id_curso = ? and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? order by aluno;Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Jun 10 08 1 30s847ms 30s847ms 09 3 50s286ms 16s762ms [ User: augeeducacional - Total duration: 1m21s - Times executed: 4 ]
[ Application: augeeducacional - fila - Total duration: 1m21s - Times executed: 4 ]
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '606255' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1011' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '606255' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1011' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 08:26:54 Duration: 30s847ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1010' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1010' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:57:58 Duration: 17s177ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1013' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1013' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:45:11 Duration: 16s740ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
4 3 1m54s 31s932ms 42s658ms 38s select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? order by aluno;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Jun 10 08 1 39s411ms 39s411ms 09 1 42s658ms 42s658ms 10 1 31s932ms 31s932ms [ User: augeeducacional - Total duration: 1m54s - Times executed: 3 ]
[ Application: augeeducacional - fila - Total duration: 1m54s - Times executed: 3 ]
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605344' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605344' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:19:39 Duration: 42s658ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605965' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605965' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 08:50:55 Duration: 39s411ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605461' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605461' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 10:35:02 Duration: 31s932ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
5 3 1m15s 10s172ms 54s122ms 25s107ms select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = ? and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = ? and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = ? and turma.id_turma_status = ? and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= ? and (am.id_aluno_matr_status = ? or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by amsh.id_aluno_matr_status_hist desc limit ?) = ?)));Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 10 06 1 11s26ms 11s26ms 08 1 54s122ms 54s122ms 09 1 10s172ms 10s172ms [ User: augeeducacional - Total duration: 1m15s - Times executed: 3 ]
[ Application: augeeducacional - fila - Total duration: 1m15s - Times executed: 3 ]
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605476' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 08:15:22 Duration: 54s122ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605471' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 06:53:07 Duration: 11s26ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605578' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 09:31:50 Duration: 10s172ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
6 2 37s487ms 18s122ms 19s365ms 18s743ms with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? and amt.data_enturmacao::date <= ?::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= ?::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit ?) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = ? and uf.id_instituicao = ? and (t.id_turma is null or t.id_turma_status in (...)) and ((t.id_diario_turma_situacao = ? and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = ?) or (t.id_diario_turma_situacao <> ? or t.id_diario_turma_situacao is null)) and uf.id_municipio = ? and pm.data_matricula::date <= ? and ( select amsh.id_aluno_matr_status in (...) from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit ?) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= ?::date and case when a.semestre = ? then cpf.ordem <= ? when a.semestre = ? then cpf.ordem >= ? else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > ? ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = ? left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > ? or pm.alunos > ?) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Jun 10 08 1 18s122ms 18s122ms 09 1 19s365ms 19s365ms [ User: augeeducacional - Total duration: 37s487ms - Times executed: 2 ]
[ Application: augeeducacional - fila - Total duration: 37s487ms - Times executed: 2 ]
-
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2026-06-10'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2026-06-10'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2026' and uf.id_instituicao = '60' and (t.id_turma is null or t.id_turma_status in ('1', '2')) and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and uf.id_municipio = '260320' and pm.data_matricula::date <= '2026-06-10' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-06-10' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2026-06-10'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '605613' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605613' and id_assunto_hierarquia_unidade = '49') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = '50' left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2026-06-10 09:05:23 Duration: 19s365ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2026-06-10'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2026-06-10'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2026' and uf.id_instituicao = '60' and (t.id_turma is null or t.id_turma_status in ('1', '2')) and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and uf.id_municipio = '261410' and pm.data_matricula::date <= '2026-06-10' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-06-10' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2026-06-10'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '605307' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605307' and id_assunto_hierarquia_unidade = '49') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = '50' left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2026-06-10 08:53:27 Duration: 18s122ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
7 1 6h24m8s 6h24m8s 6h24m8s 6h24m8s refresh materialized view aplicacoes_see.vw_aluno;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Jun 10 06 1 6h24m8s 6h24m8s [ User: postgres - Total duration: 6h24m8s - Times executed: 1 ]
[ Application: psql - Total duration: 6h24m8s - Times executed: 1 ]
-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;
Date: 2026-06-10 06:55:52 Duration: 6h24m8s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;
Date: 2026-06-10 06:55:31 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
8 1 5h18m8s 5h18m8s 5h18m8s 5h18m8s insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (partition by am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), ?)::integer as aulas, coalesce(count(falta.id_aluno_matricula), ?)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = ? inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (...) and am.id_aluno_matr_status = ? and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 10 09 1 5h18m8s 5h18m8s [ User: postgres - Total duration: 5h18m8s - Times executed: 1 ]
[ Application: psql - Total duration: 5h18m8s - Times executed: 1 ]
-
insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;
Date: 2026-06-10 09:18:28 Duration: 5h18m8s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;
Date: 2026-06-10 06:35:07 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
9 1 18m6s 18m6s 18m6s 18m6s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Jun 10 09 1 18m6s 18m6s [ User: postgres - Total duration: 18m6s - Times executed: 1 ]
[ Application: psql - Total duration: 18m6s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:23 Duration: 18m6s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:23 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
10 1 3m52s 3m52s 3m52s 3m52s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, ? as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, ?)) as faltas, case when sum(aulas) = ? then ?.? when sum(coalesce(faltas.faltas, ?)) > sum(aulas) then ?.? else round(? * (sum(aulas) - sum(coalesce(faltas.faltas, ?))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> array[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where am.id_aluno_matr_status = ? and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = ? then ?.? when sum(coalesce(faltas.faltas, ?)) > sum(aulas) then ?.? else round(? * (sum(aulas) - sum(coalesce(faltas.faltas, ?))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Jun 10 09 1 3m52s 3m52s [ User: postgres - Total duration: 3m52s - Times executed: 1 ]
[ Application: psql - Total duration: 3m52s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;
Date: 2026-06-10 09:43:42 Duration: 3m52s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;
Date: 2026-06-10 09:40:06 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
11 1 2m10s 2m10s 2m10s 2m10s insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then ? else ? end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then ? else ? end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then ? else ? end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then ? else ? end) as rematriculados_reprovados, ? as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = ? or am2.id_aluno_matr_status = ?) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (...) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, ? as ingressantes, ? as rematriculados, ? as rematriculados_aprovados, ? as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, ? as inscritos_enem, amt.id_serie_enturmacao, ? as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + ? and ano_seg.semestre is null) or (ano.semestre = ? and ano_seg.ano = ano.ano and ano_seg.semestre = ?) or (ano.semestre = ? and ano_seg.ano = ano.ano + ? and ano_seg.semestre = ?) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = ? and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Jun 10 12 1 2m10s 2m10s [ User: augeeducacional - Total duration: 2m10s - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 2m10s - Times executed: 1 ]
-
insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;
Date: 2026-06-10 12:04:16 Duration: 2m10s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;
Date: 2026-06-10 12:02:11 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
12 1 1m59s 1m59s 1m59s 1m59s select d.descricao, fad.qtd_faltas from falta_aluno_disciplina fad inner join disciplina d on fad.id_disciplina = d.id_disciplina where id_aluno_matricula = ? and fad.qtd_faltas > ? order by fad.qtd_faltas desc;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 10 08 1 1m59s 1m59s [ User: sergio_veiga - Total duration: 1m59s - Times executed: 1 ]
[ Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' - Total duration: 1m59s - Times executed: 1 ]
-
select d.descricao, fad.qtd_faltas from falta_aluno_disciplina fad inner join disciplina d on fad.id_disciplina = d.id_disciplina where id_aluno_matricula = 13992061 and fad.qtd_faltas > 0 order by fad.qtd_faltas desc;
Date: 2026-06-10 08:14:20 Duration: 1m59s Database: augeeducacional User: sergio_veiga Remote: 10.81.13.6 Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' Bind query: yes
13 1 1m52s 1m52s 1m52s 1m52s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, ? as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = ? then ?.? when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then ?.? else round(ceil(? * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part(?, dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part(?, dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? inner join lateral ( select date_part(?, falta_aluno_mes.data) as ano, date_part(?, falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * ? + parametros.mes) <= (date_part(?, current_date) * ? + date_part(?, current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = ? then ?.? when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then ?.? else round(ceil(? * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part(?, dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part(?, dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Jun 10 09 1 1m52s 1m52s [ User: postgres - Total duration: 1m52s - Times executed: 1 ]
[ Application: psql - Total duration: 1m52s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:21:08 Duration: 1m52s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:21:07 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
14 1 1m20s 1m20s 1m20s 1m20s insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas as vagas, turma_serie.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, ?) as enturmados, turma.id_turma_status from turma inner join turma_serie on turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? where am.id_aluno_matr_status in (...) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (...) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, ?) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? where am.id_aluno_matr_status in (...) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (...);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Jun 10 12 1 1m20s 1m20s [ User: augeeducacional - Total duration: 1m20s - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 1m20s - Times executed: 1 ]
-
insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);
Date: 2026-06-10 12:01:43 Duration: 1m20s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);
Date: 2026-06-10 12:01:30 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
15 1 1m18s 1m18s 1m18s 1m18s select d.descricao, na.nota, npa.descricao from nota_aluno na inner join disciplina d on na.id_disciplina = d.id_disciplina inner join nota_periodo_aluno npa on na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where id_aluno_matricula = ?;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Jun 10 08 1 1m18s 1m18s [ User: sergio_veiga - Total duration: 1m18s - Times executed: 1 ]
[ Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' - Total duration: 1m18s - Times executed: 1 ]
-
select d.descricao, na.nota, npa.descricao from nota_aluno na inner join disciplina d on na.id_disciplina = d.id_disciplina inner join nota_periodo_aluno npa on na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where id_aluno_matricula = 13992061;
Date: 2026-06-10 08:11:07 Duration: 1m18s Database: augeeducacional User: sergio_veiga Remote: 10.81.13.6 Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' Bind query: yes
16 1 35s874ms 35s874ms 35s874ms 35s874ms create index if not exists ix_falta_aluno_mes on call_center.falta_aluno_mes using btree (id_aluno_matricula, id_turma, data);Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Jun 10 09 1 35s874ms 35s874ms [ User: postgres - Total duration: 35s874ms - Times executed: 1 ]
[ Application: psql - Total duration: 35s874ms - Times executed: 1 ]
-
CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);
Date: 2026-06-10 09:19:03 Duration: 35s874ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);
Date: 2026-06-10 09:19:03 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
17 1 26s291ms 26s291ms 26s291ms 26s291ms insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part(?, aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part(?, aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Jun 10 09 1 26s291ms 26s291ms [ User: postgres - Total duration: 26s291ms - Times executed: 1 ]
[ Application: psql - Total duration: 26s291ms - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:49 Duration: 26s291ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:49 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
18 1 22s885ms 22s885ms 22s885ms 22s885ms insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, ? as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (...) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, ? as matriculados, ? as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> ?) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, ? as matriculados, ? as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Jun 10 12 1 22s885ms 22s885ms [ User: augeeducacional - Total duration: 22s885ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 22s885ms - Times executed: 1 ]
-
insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, 0 as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt ON am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> 5) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;
Date: 2026-06-10 12:02:06 Duration: 22s885ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, 0 as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt ON am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> 5) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;
Date: 2026-06-10 12:01:59 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
19 1 22s95ms 22s95ms 22s95ms 22s95ms select f.*;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Jun 10 10 1 22s95ms 22s95ms [ User: augeeducacional - Total duration: 22s95ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 22s95ms - Times executed: 1 ]
-
select f.*;
Date: 2026-06-10 10:40:56 Duration: 22s95ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
20 1 18s757ms 18s757ms 18s757ms 18s757ms select c.id_cidadao, rede.nome as rede, municipio.nome as municipio, unidade.codigo as codigo_unidade, unidade.nome as unidade, aluno.codigo as matricula, to_char(am.data_matricula, ?) as data_matricula, c.nome, c.sexo, raca_cor.descricao as raca_cor, to_char(c.nascimento_data, ?) as nascimento_data, men.descricao as numero_material_escolar, men.id_material_escolar, case when (dc.flg_modelo_novo_cn is false and dc.numero_cn is not null) or (dc.flg_modelo_novo_cn and dc.numero_matricula_cn is not null) then ? else ? end as registro_civil, coalesce((m_nascimento.nome || ? || uf.sigla), c.naturalidade) as naturalidade, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, dc.numero_nis, aluno.codigo_inep, dc.numero_cns, ano_semestre.ano || coalesce(? || ano_semestre.semestre, ?) as ano_semestre, ensino_etapa.sigla as ensino_etapa, modalidade.sigla as modalidade, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, ( case when exists ( select null from historico_estabelecimento he inner join historico_aluno_situacao has on has.id_historico_aluno_situacao = he.id_historico_aluno_situacao where he.id_cidadao = c.id_cidadao and he.id_serie_equivalente = serie.id_serie_equivalente and has.flg_aprovacao is false) then ? else ? end) as flg_reprovado, c.nome_mae as filiacao_1, c.nome_pai as filiacao_2, c.profissao_mae as proficao_filiacao_1, c.profissao_pai as proficao_filiacao_2, grau_1.descricao as grau_escolaridade_filiacao_1, grau_2.descricao as grau_escolaridade_filiacao_2, cidadao_responsavel.nome as responsavel, formatar_cpf (dc_responsavel.numero_cpf, dc_responsavel.digito_cpf) as cpf_responsavel, endereco.endereco || coalesce(? || nullif (trim(endereco.numero), ?), ?) || coalesce(? || nullif (trim(endereco.complemento), ?), ?) || coalesce(? || nullif (trim(endereco.bairro), ?), ?) || coalesce(? || nullif (formatar_cep (endereco.cep), ?), ?) || coalesce(? || mun_end.nome || ? || uf_end.sigla) as endereco, ( select string_agg(formatar_telefone (tel.telefone_ddd, tel.telefone_numero), ?) from cidadao_telefone tel where tel.id_cidadao = c.id_cidadao) as telefone, c.numero_conta_energia from cidadao c inner join aluno on aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am on am.id_cidadao = aluno.id_cidadao inner join curso on curso.id_curso = am.id_curso inner join serie on serie.id_serie = am.id_serie inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa on ensino_etapa.id_ensino_etapa = modalidade.id_ensino_etapa inner join ano_semestre on ano_semestre.id_ano_semestre = am.id_ano_semestre inner join raca_cor on raca_cor.id_raca_cor = c.id_raca_cor inner join unidade_funcional unidade on unidade.id_unidade_funcional = am.id_unidade_funcional inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = unidade.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional rede on rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio on municipio.id_municipio = unidade.id_municipio inner join cidadao_endereco endereco on endereco.id_cidadao = c.id_cidadao left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma on turma.id_turma = amt.id_turma left join municipio m_nascimento on m_nascimento.id_municipio = c.id_municipio_nascimento left join uf on uf.id_uf = m_nascimento.id_uf left join documentos_cidadao dc on dc.id_cidadao = c.id_cidadao left join responsavel on responsavel.id_responsavel = aluno.id_responsavel left join cidadao cidadao_responsavel on cidadao_responsavel.id_cidadao = responsavel.id_responsavel left join documentos_cidadao dc_responsavel on dc_responsavel.id_cidadao = cidadao_responsavel.id_cidadao left join municipio mun_end on mun_end.id_municipio = endereco.id_municipio left join uf uf_end on uf_end.id_uf = mun_end.id_uf left join material_escolar_aluno mea on mea.id_cidadao = c.id_cidadao and mea.ano = ano_semestre.ano left join material_escolar_aluno_num mean on mean.id_cidadao = mea.id_cidadao left join material_escolar_numeracao men on men.id_material_escolar_numeracao = mean.id_material_escolar_numeracao left join material_escolar me on me.id_material_escolar = mean.id_material_escolar and me.flg_exige_numeracao left join grau_escolaridade grau_1 on grau_1.id_grau_escolaridade = c.id_grau_escolaridade_mae left join grau_escolaridade grau_2 on grau_2.id_grau_escolaridade = c.id_grau_escolaridade_pai where unidade.id_instituicao = ? and unidade.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and ano_semestre.ano = ? and unidade.id_municipio = ? order by c.nome, men.id_material_escolar;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Jun 10 09 1 18s757ms 18s757ms [ User: augeeducacional - Total duration: 18s757ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 18s757ms - Times executed: 1 ]
-
select c.id_cidadao, rede.nome as rede, municipio.nome as municipio, unidade.codigo as codigo_unidade, unidade.nome as unidade, aluno.codigo as matricula, to_char(am.data_matricula, 'DD/MM/YYYY') as data_matricula, c.nome, c.sexo, raca_cor.descricao as raca_cor, to_char(c.nascimento_data, 'DD/MM/YYYY') as nascimento_data, men.descricao as numero_material_escolar, men.id_material_escolar, case when (dc.flg_modelo_novo_cn is false and dc.numero_cn is not null) or (dc.flg_modelo_novo_cn and dc.numero_matricula_cn is not null) then 'SIM' else 'NÃO' end as registro_civil, coalesce((m_nascimento.nome || '/' || uf.sigla), c.naturalidade) as naturalidade, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, dc.numero_nis, aluno.codigo_inep, dc.numero_cns, ano_semestre.ano || coalesce('/' || ano_semestre.semestre, '') as ano_semestre, ensino_etapa.sigla as ensino_etapa, modalidade.sigla as modalidade, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, ( case when exists ( select null from historico_estabelecimento he inner join historico_aluno_situacao has on has.id_historico_aluno_situacao = he.id_historico_aluno_situacao where he.id_cidadao = c.id_cidadao and he.id_serie_equivalente = serie.id_serie_equivalente and has.flg_aprovacao is false) then 'Sim' else 'Não' end) as flg_reprovado, c.nome_mae as filiacao_1, c.nome_pai as filiacao_2, c.profissao_mae as proficao_filiacao_1, c.profissao_pai as proficao_filiacao_2, grau_1.descricao as grau_escolaridade_filiacao_1, grau_2.descricao as grau_escolaridade_filiacao_2, cidadao_responsavel.nome as responsavel, formatar_cpf (dc_responsavel.numero_cpf, dc_responsavel.digito_cpf) as cpf_responsavel, endereco.endereco || coalesce(', ' || nullif (trim(endereco.numero), ''), '') || coalesce(', ' || nullif (trim(endereco.complemento), ''), '') || coalesce(', ' || nullif (trim(endereco.bairro), ''), '') || coalesce(', ' || nullif (formatar_cep (endereco.cep), ''), '') || coalesce(' - ' || mun_end.nome || '/' || uf_end.sigla) as endereco, ( select string_agg(formatar_telefone (tel.telefone_ddd, tel.telefone_numero), ', ') from cidadao_telefone tel where tel.id_cidadao = c.id_cidadao) as telefone, c.numero_conta_energia from cidadao c inner join aluno ON aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am ON am.id_cidadao = aluno.id_cidadao inner join curso ON curso.id_curso = am.id_curso inner join serie ON serie.id_serie = am.id_serie inner join modalidade ON modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa ON ensino_etapa.id_ensino_etapa = modalidade.id_ensino_etapa inner join ano_semestre ON ano_semestre.id_ano_semestre = am.id_ano_semestre inner join raca_cor ON raca_cor.id_raca_cor = c.id_raca_cor inner join unidade_funcional unidade ON unidade.id_unidade_funcional = am.id_unidade_funcional inner join hierarquia_unidade_funcional huf ON huf.id_unidade_funcional_filha = unidade.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' inner join unidade_funcional rede ON rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio ON municipio.id_municipio = unidade.id_municipio inner join cidadao_endereco endereco on endereco.id_cidadao = c.id_cidadao left join aluno_matr_turma amt ON amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma ON turma.id_turma = amt.id_turma left join municipio m_nascimento ON m_nascimento.id_municipio = c.id_municipio_nascimento left join uf ON uf.id_uf = m_nascimento.id_uf left join documentos_cidadao dc ON dc.id_cidadao = c.id_cidadao left join responsavel ON responsavel.id_responsavel = aluno.id_responsavel left join cidadao cidadao_responsavel ON cidadao_responsavel.id_cidadao = responsavel.id_responsavel left join documentos_cidadao dc_responsavel ON dc_responsavel.id_cidadao = cidadao_responsavel.id_cidadao left join municipio mun_end on mun_end.id_municipio = endereco.id_municipio left join uf uf_end on uf_end.id_uf = mun_end.id_uf left join material_escolar_aluno mea ON mea.id_cidadao = c.id_cidadao and mea.ano = ano_semestre.ano left join material_escolar_aluno_num mean ON mean.id_cidadao = mea.id_cidadao left join material_escolar_numeracao men ON men.id_material_escolar_numeracao = mean.id_material_escolar_numeracao left join material_escolar me ON me.id_material_escolar = mean.id_material_escolar and me.flg_exige_numeracao left join grau_escolaridade grau_1 ON grau_1.id_grau_escolaridade = c.id_grau_escolaridade_mae left join grau_escolaridade grau_2 ON grau_2.id_grau_escolaridade = c.id_grau_escolaridade_pai where unidade.id_instituicao = '60' and unidade.id_unidade_funcional in ( select '605683' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605683' and id_assunto_hierarquia_unidade = '49') and ano_semestre.ano = '2026' and unidade.id_municipio = '260620' order by c.nome, men.id_material_escolar;
Date: 2026-06-10 09:08:46 Duration: 18s757ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 6h24m8s 6h24m8s 6h24m8s 1 6h24m8s refresh materialized view aplicacoes_see.vw_aluno;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Jun 10 06 1 6h24m8s 6h24m8s [ User: postgres - Total duration: 6h24m8s - Times executed: 1 ]
[ Application: psql - Total duration: 6h24m8s - Times executed: 1 ]
-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;
Date: 2026-06-10 06:55:52 Duration: 6h24m8s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
REFRESH MATERIALIZED VIEW aplicacoes_see.vw_aluno;
Date: 2026-06-10 06:55:31 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
2 5h18m8s 5h18m8s 5h18m8s 1 5h18m8s insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (partition by am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), ?)::integer as aulas, coalesce(count(falta.id_aluno_matricula), ?)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = ? inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (...) and am.id_aluno_matr_status = ? and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Jun 10 09 1 5h18m8s 5h18m8s [ User: postgres - Total duration: 5h18m8s - Times executed: 1 ]
[ Application: psql - Total duration: 5h18m8s - Times executed: 1 ]
-
insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;
Date: 2026-06-10 09:18:28 Duration: 5h18m8s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.falta_aluno_mes (id_instituicao, flg_apontamento_global, id_aluno_matricula, id_turma, id_nota_periodo_aluno, bimestre, data, num_aula, aulas, faltas, disciplinas) select cidadao.id_instituicao, false as flg_apontamento_global, am.id_aluno_matricula, amt.id_turma, turma_periodo.id_nota_periodo_aluno, calendario_periodo_data.bimestre, calendario_periodo_data.data, row_number() over (PARTITION BY am.id_aluno_matricula, amt.id_turma order by calendario_periodo_data.data)::integer as num_aula, coalesce(count(qh.id_horario_quadro_homologado), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas, array_agg(distinct componente.id_disciplina) as disciplinas from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = 3 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso inner join turma on turma.id_turma = amt.id_turma left join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = turma.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = turma.id_unidade_funcional inner join calendario on calendario.id_calendario = coalesce(turma.id_calendario_turma, cc.id_calendario, ec.id_calendario) inner join turma_periodo on turma_periodo.id_turma = amt.id_turma inner join calendario_periodo_data on calendario_periodo_data.id_calendario = calendario.id_calendario and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = calendario_periodo_data.dia_semana inner join componente_curricular componente on componente.id_componente_curricular = qh.id_componente_curricular left join falta_aluno_disciplina_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = componente.id_disciplina and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and falta.id_horario_turma = qh.id_horario_turma where cidadao.id_instituicao in (60) and am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and componente.flg_aponta_faltas is true and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = am.id_aluno_matricula and disp.id_turma = amt.id_turma and disp.id_disciplina = componente.id_disciplina) and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= calendario_periodo_data.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= calendario_periodo_data.data) and calendario_data.id_motivo_dia_nao_letivo is null group by cidadao.id_instituicao, am.id_aluno_matricula, amt.id_turma, calendario_periodo_data.bimestre, calendario_periodo_data.data, ano.semestre, turma_periodo.id_nota_periodo_aluno;
Date: 2026-06-10 06:35:07 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
3 18m6s 18m6s 18m6s 1 18m6s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Jun 10 09 1 18m6s 18m6s [ User: postgres - Total duration: 18m6s - Times executed: 1 ]
[ Application: psql - Total duration: 18m6s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:23 Duration: 18m6s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, 2 as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 2 where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:23 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
4 3m52s 3m52s 3m52s 1 3m52s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, ? as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, ?)) as faltas, case when sum(aulas) = ? then ?.? when sum(coalesce(faltas.faltas, ?)) > sum(aulas) then ?.? else round(? * (sum(aulas) - sum(coalesce(faltas.faltas, ?))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> array[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where am.id_aluno_matr_status = ? and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = ? then ?.? when sum(coalesce(faltas.faltas, ?)) > sum(aulas) then ?.? else round(? * (sum(aulas) - sum(coalesce(faltas.faltas, ?))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Jun 10 09 1 3m52s 3m52s [ User: postgres - Total duration: 3m52s - Times executed: 1 ]
[ Application: psql - Total duration: 3m52s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;
Date: 2026-06-10 09:43:42 Duration: 3m52s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select faltas.id_instituicao, id_aluno_matricula, id_turma, 3 as id_monitoramento_frequencia, ano, sum(coalesce(faltas.faltas, 0)) as faltas, case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, faltas.dias_consecutivos from ( select disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, sum(cc.qtd_aulas_periodo_letivo) as aulas, ( select sum(falta.falta_nao_justificada) from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and (mdp.periodos is null or not mdp.periodos @> ARRAY[id_nota_periodo_aluno])) as faltas, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = am.id_aluno_matricula and dias_consecutivos.id_turma = amt.id_turma) as dias_consecutivos from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas is true left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo inner join disciplina on disciplina.id_disciplina = cc.id_disciplina inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on disciplina.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where am.id_aluno_matr_status = 1 and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and dispensa.id_disciplina = cc.id_disciplina) group by disciplina.id_instituicao, am.id_aluno_matricula, amt.id_turma, ano.ano, cc.id_disciplina, mdp.periodos, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as faltas left join parametro on parametro.id_instituicao = faltas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by faltas.id_instituicao, id_aluno_matricula, id_turma, ano, faltas.dias_consecutivos, faltas.percentual_frequencia, faltas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(aulas) = 0 then 100.0 when sum(coalesce(faltas.faltas, 0)) > sum(aulas) then 0.0 else round(100 * (sum(aulas) - sum(coalesce(faltas.faltas, 0))) / sum(aulas)::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < faltas.percentual_frequencia or faltas.dias_consecutivos > faltas.faltas_consecutivas;
Date: 2026-06-10 09:40:06 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
5 2m10s 2m10s 2m10s 1 2m10s insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then ? else ? end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then ? else ? end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then ? else ? end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then ? else ? end) as rematriculados_reprovados, ? as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = ? or am2.id_aluno_matr_status = ?) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (...) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, ? as ingressantes, ? as rematriculados, ? as rematriculados_aprovados, ? as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, ? as inscritos_enem, amt.id_serie_enturmacao, ? as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + ? and ano_seg.semestre is null) or (ano.semestre = ? and ano_seg.ano = ano.ano and ano_seg.semestre = ?) or (ano.semestre = ? and ano_seg.ano = ano.ano + ? and ano_seg.semestre = ?) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = ? and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 10 12 1 2m10s 2m10s [ User: augeeducacional - Total duration: 2m10s - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 2m10s - Times executed: 1 ]
-
insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;
Date: 2026-06-10 12:04:16 Duration: 2m10s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.perfil_matricula (id_unidade_funcional, id_serie, id_ano_semestre, id_procedencia_escola, ingressantes, rematriculados, rematriculados_aprovados, rematriculados_reprovados, nao_rematriculados, id_unidade_localizacao, inscritos_enem, id_serie_enturmacao, enturmados, data_matricula, id_turno) select alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, cast(sum(alunos.ingressantes) as integer) as ingressantes, cast(sum(alunos.rematriculados) as integer) as rematriculados, cast(sum(alunos.rematriculados_aprovados) as integer) as rematriculados_aprovados, cast(sum(alunos.rematriculados_reprovados) as integer) as rematriculados_reprovados, cast(sum(alunos.nao_rematriculados) as integer) as nao_rematriculados, alunos.id_unidade_referencia, cast(sum(alunos.inscritos_enem) as integer) as inscritos_enem, alunos.id_serie_enturmacao, cast(sum(alunos.enturmados) as integer) as enturmados, alunos.data_matricula, alunos.id_turno from ( select am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, am.data_matricula::date as data_matricula, sum( case when am2.id_aluno_matricula is null then 1 else 0 end) as ingressantes, sum( case when am2.id_aluno_matricula is not null then 1 else 0 end) as rematriculados, sum( case when am2.id_aluno_matricula is not null and (pc.id_parecer_conclusivo_tipo is null or pct.flg_aprovacao is true) then 1 else 0 end) as rematriculados_aprovados, sum( case when am2.id_aluno_matricula is not null and pct.flg_aprovacao is false then 1 else 0 end) as rematriculados_reprovados, 0 as nao_rematriculados, a.id_unidade_referencia, count(inscricao_enem.id_cidadao) as inscritos_enem, amt.id_serie_enturmacao, count(amt.id_aluno_matricula) as enturmados, t.id_turno from aluno_matricula am left join aluno_matricula am2 on am.id_aluno_matricula_anterior = am2.id_aluno_matricula and (am2.id_aluno_matr_status = 2 or am2.id_aluno_matr_status = 7) left join parecer_conclusivo pc on pc.id_aluno_matricula = am2.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join inscricao_enem on inscricao_enem.id_cidadao = am.id_cidadao and inscricao_enem.ano_referencia = ano.ano where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_serie, am.id_ano_semestre, am.id_procedencia_escola, a.id_unidade_referencia, amt.id_serie_enturmacao, am.data_matricula::date, t.id_turno union all select am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, null as id_procedencia_escola, null as data_matricula, 0 as ingressantes, 0 as rematriculados, 0 as rematriculados_aprovados, 0 as rematriculados_reprovados, count(am.id_aluno_matricula) as nao_rematriculados, a.id_unidade_referencia, 0 as inscritos_enem, amt.id_serie_enturmacao, 0 as enturmados, t.id_turno from aluno_matricula am inner join serie on serie.id_serie = am.id_serie inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join ano_semestre ano_seg on (ano.semestre is null and ano_seg.ano = ano.ano + 1 and ano_seg.semestre is null) or (ano.semestre = 1 and ano_seg.ano = ano.ano and ano_seg.semestre = 2) or (ano.semestre = 2 and ano_seg.ano = ano.ano + 1 and ano_seg.semestre = 1) left join aluno_matricula am1 on am.id_aluno_matricula = am1.id_aluno_matricula_anterior left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma left join ambiente a on t.id_ambiente = a.id_ambiente where am.id_aluno_matr_status = 7 and am1.id_aluno_matricula is null group by am.id_unidade_funcional, am.id_serie, ano_seg.id_ano_semestre, a.id_unidade_referencia, amt.id_serie_enturmacao, t.id_turno) as alunos group by alunos.id_unidade_funcional, alunos.id_serie, alunos.id_ano_semestre, alunos.id_procedencia_escola, alunos.id_unidade_referencia, alunos.id_serie_enturmacao, alunos.data_matricula, alunos.id_turno;
Date: 2026-06-10 12:02:11 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
6 1m59s 1m59s 1m59s 1 1m59s select d.descricao, fad.qtd_faltas from falta_aluno_disciplina fad inner join disciplina d on fad.id_disciplina = d.id_disciplina where id_aluno_matricula = ? and fad.qtd_faltas > ? order by fad.qtd_faltas desc;Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Jun 10 08 1 1m59s 1m59s [ User: sergio_veiga - Total duration: 1m59s - Times executed: 1 ]
[ Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' - Total duration: 1m59s - Times executed: 1 ]
-
select d.descricao, fad.qtd_faltas from falta_aluno_disciplina fad inner join disciplina d on fad.id_disciplina = d.id_disciplina where id_aluno_matricula = 13992061 and fad.qtd_faltas > 0 order by fad.qtd_faltas desc;
Date: 2026-06-10 08:14:20 Duration: 1m59s Database: augeeducacional User: sergio_veiga Remote: 10.81.13.6 Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' Bind query: yes
7 1m52s 1m52s 1m52s 1 1m52s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, ? as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = ? then ?.? when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then ?.? else round(ceil(? * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part(?, dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part(?, dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? inner join lateral ( select date_part(?, falta_aluno_mes.data) as ano, date_part(?, falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * ? + parametros.mes) <= (date_part(?, current_date) * ? + date_part(?, current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = ? then ?.? when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then ?.? else round(ceil(? * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part(?, dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part(?, dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Jun 10 09 1 1m52s 1m52s [ User: postgres - Total duration: 1m52s - Times executed: 1 ]
[ Application: psql - Total duration: 1m52s - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:21:08 Duration: 1m52s Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, 1 as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 1 inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;
Date: 2026-06-10 09:21:07 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
8 1m20s 1m20s 1m20s 1 1m20s insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas as vagas, turma_serie.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, ?) as enturmados, turma.id_turma_status from turma inner join turma_serie on turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? where am.id_aluno_matr_status in (...) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (...) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, ?) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? where am.id_aluno_matr_status in (...) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (...);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 10 12 1 1m20s 1m20s [ User: augeeducacional - Total duration: 1m20s - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 1m20s - Times executed: 1 ]
-
insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);
Date: 2026-06-10 12:01:43 Duration: 1m20s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.posicao_unidade_turmas (id_unidade_funcional, id_ano_semestre, ano, semestre, flg_especial, id_curso, id_serie, id_tipo_turma_diversificada, id_unidade_localizacao, id_turma, codigo_turma, nome_turma, sigla_turno, num_sala, idade_minima, idade_minima_meses, idade_maxima, idade_maxima_meses, vagas, vagas_remanescentes, enturmados, id_turma_status) select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, turma.id_curso, turma_serie.id_serie, null as id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, turma.idade_minima, turma.idade_minima_meses, turma.idade_maxima, turma.idade_maxima_meses, turma_serie.num_vagas_oferecidas AS vagas, turma_serie.num_vagas_remanescentes AS vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_serie ON turma_serie.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, amt.id_serie_enturmacao, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma, amt.id_serie_enturmacao) as alunos on alunos.id_turma = turma.id_turma and alunos.id_serie_enturmacao = turma_serie.id_serie where turma.id_turma_status in (1, 2) union all select turma.id_unidade_funcional, turma.id_ano_semestre, ano.ano, ano.semestre, turma.flg_especial, null as id_curso, null as id_serie, turma_especial.id_tipo_turma_diversificada, ambiente.id_unidade_referencia as id_unidade_localizacao, turma.id_turma, turma.codigo, turma.nome, turno.sigla, ambiente.num_sala, null as idade_minima, null as idade_minima_meses, null as idade_maxima, null as idade_maxima_meses, turma_especial.num_vagas_oferecidas as vagas, turma_especial.num_vagas_remanescentes as vagas_remanescentes, coalesce(alunos.enturmados, 0) as enturmados, turma.id_turma_status from turma inner join turma_especial on turma_especial.id_turma = turma.id_turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join turno on turno.id_turno = turma.id_turno left join ( select amt.id_turma, count(am.id_aluno_matricula)::integer as enturmados from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 2 where am.id_aluno_matr_status in (1, 2, 7) group by amt.id_turma) as alunos on alunos.id_turma = turma.id_turma where turma.id_turma_status in (1, 2);
Date: 2026-06-10 12:01:30 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
9 11s320ms 2m30s 1m18s 5 6m33s select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = ? and f.id_motivo_falta_justificada = ? and f.data between ?::date and ?::date order by f.id_turma, f.id_nota_periodo_aluno;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Jun 10 08 2 2m33s 1m16s 09 1 2m30s 2m30s 10 2 1m29s 44s853ms [ User: augeeducacional - Total duration: 6m33s - Times executed: 5 ]
[ Application: augeeducacional - fila - Total duration: 6m33s - Times executed: 5 ]
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9510524' and f.id_motivo_falta_justificada = '6' and f.data between '2026-06-04'::date and '2026-06-05'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 09:54:21 Duration: 2m30s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9552397' and f.id_motivo_falta_justificada = '4' and f.data between '2026-06-22'::date and '2026-06-22'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 08:14:27 Duration: 1m21s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select f.* from falta_aluno_disciplina_diario f inner join aluno_matricula am on am.id_aluno_matricula = f.id_aluno_matricula where am.id_cidadao = '9017187' and f.id_motivo_falta_justificada = '4' and f.data between '2026-05-14'::date and '2026-05-14'::date order by f.id_turma, f.id_nota_periodo_aluno;
Date: 2026-06-10 10:25:07 Duration: 1m18s Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
10 1m18s 1m18s 1m18s 1 1m18s select d.descricao, na.nota, npa.descricao from nota_aluno na inner join disciplina d on na.id_disciplina = d.id_disciplina inner join nota_periodo_aluno npa on na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where id_aluno_matricula = ?;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Jun 10 08 1 1m18s 1m18s [ User: sergio_veiga - Total duration: 1m18s - Times executed: 1 ]
[ Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' - Total duration: 1m18s - Times executed: 1 ]
-
select d.descricao, na.nota, npa.descricao from nota_aluno na inner join disciplina d on na.id_disciplina = d.id_disciplina inner join nota_periodo_aluno npa on na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where id_aluno_matricula = 13992061;
Date: 2026-06-10 08:11:07 Duration: 1m18s Database: augeeducacional User: sergio_veiga Remote: 10.81.13.6 Application: DBeaver 26.0.0 - SQLEditor 'Script-467.sql' Bind query: yes
11 31s932ms 42s658ms 38s 3 1m54s select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? order by aluno;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Jun 10 08 1 39s411ms 39s411ms 09 1 42s658ms 42s658ms 10 1 31s932ms 31s932ms [ User: augeeducacional - Total duration: 1m54s - Times executed: 3 ]
[ Application: augeeducacional - fila - Total duration: 1m54s - Times executed: 3 ]
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605344' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605344' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:19:39 Duration: 42s658ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605965' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605965' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 08:50:55 Duration: 39s411ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605461' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605461' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 10:35:02 Duration: 31s932ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
12 35s874ms 35s874ms 35s874ms 1 35s874ms create index if not exists ix_falta_aluno_mes on call_center.falta_aluno_mes using btree (id_aluno_matricula, id_turma, data);Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 10 09 1 35s874ms 35s874ms [ User: postgres - Total duration: 35s874ms - Times executed: 1 ]
[ Application: psql - Total duration: 35s874ms - Times executed: 1 ]
-
CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);
Date: 2026-06-10 09:19:03 Duration: 35s874ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);
Date: 2026-06-10 09:19:03 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
13 26s291ms 26s291ms 26s291ms 1 26s291ms insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part(?, aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part(?, aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Jun 10 09 1 26s291ms 26s291ms [ User: postgres - Total duration: 26s291ms - Times executed: 1 ]
[ Application: psql - Total duration: 26s291ms - Times executed: 1 ]
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:49 Duration: 26s291ms Database: augeeducacional User: postgres Remote: [local] Application: psql
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, 3 as id_monitoramento_frequencia, aulas.ano, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) as dias_consecutivos from falta_aluno_globalizada faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data) as ano, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = 3 where aulas.flg_apontamento_global is true group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, date_part('year', aulas.data), parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, faltas.id_aluno_matricula, faltas.id_turma, aulas.ano, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = faltas.id_aluno_matricula and dias_consecutivos.id_turma = faltas.id_turma) > aulas.faltas_consecutivas;
Date: 2026-06-10 09:39:49 Duration: 0ms Database: augeeducacional User: postgres Remote: [local] Application: psql
14 10s172ms 54s122ms 25s107ms 3 1m15s select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = ? and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = ? and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = ? and turma.id_turma_status = ? and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= ? and (am.id_aluno_matr_status = ? or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by amsh.id_aluno_matr_status_hist desc limit ?) = ?)));Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Jun 10 06 1 11s26ms 11s26ms 08 1 54s122ms 54s122ms 09 1 10s172ms 10s172ms [ User: augeeducacional - Total duration: 1m15s - Times executed: 3 ]
[ Application: augeeducacional - fila - Total duration: 1m15s - Times executed: 3 ]
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605476' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 08:15:22 Duration: 54s122ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605471' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 06:53:07 Duration: 11s26ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select aluno.id_cidadao from aluno inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao where cidadao.id_cidadao_status = '1' and exists ( select null from aluno_matricula am inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma on turma.id_turma = amt.id_turma left join curso on curso.id_curso = turma.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre inner join tipo_enturmacao on tipo_enturmacao.id_tipo_enturmacao = amt.id_tipo_enturmacao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where ano.ano = '2026' and am.id_cidadao = aluno.id_cidadao and turma.id_unidade_funcional = '605578' and turma.id_turma_status = '1' and tipo_enturmacao.flg_integra_educacenso is true and coalesce(curso.flg_integra_educacenso, true) is true and am.flg_enviar_educacenso is true and (turma.flg_especial is false or turma.id_mec_tipo_atendimento_turma is not null) and amt.data_saida is null and am.data_matricula::date <= '2026-05-27' and (am.id_aluno_matr_status = '1' or (ams.flg_transicao is false and ( select amsh.id_aluno_matr_status from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-05-27' order by amsh.id_aluno_matr_status_hist desc limit 1) = '1')));
Date: 2026-06-10 09:31:50 Duration: 10s172ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
15 22s885ms 22s885ms 22s885ms 1 22s885ms insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, ? as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (...) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, ? as matriculados, ? as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> ?) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, ? as matriculados, ? as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Jun 10 12 1 22s885ms 22s885ms [ User: augeeducacional - Total duration: 22s885ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 22s885ms - Times executed: 1 ]
-
insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, 0 as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt ON am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> 5) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;
Date: 2026-06-10 12:02:06 Duration: 22s885ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
insert into consulta.posicao_unidade_alunos (id_unidade_funcional, id_ano_semestre, ano, semestre, id_curso, id_serie, id_unidade_localizacao, matriculados, nao_enturmados, candidatos, id_aluno_matr_status) select am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, coalesce(ambiente.id_unidade_referencia, am.id_unidade_funcional)::integer as id_unidade_localizacao, count(am.id_aluno_matricula)::integer as matriculados, count(am.id_aluno_matricula) - count(amt.id_turma)::integer as nao_enturmados, 0 as candidatos, am.id_aluno_matr_status from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join aluno_matr_turma amt ON am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma on turma.id_turma = amt.id_turma left join ambiente on ambiente.id_ambiente = turma.id_ambiente where am.id_aluno_matr_status in (1, 2, 7) group by am.id_unidade_funcional, am.id_ano_semestre, ano.ano, ano.semestre, am.id_curso, am.id_serie, id_unidade_localizacao, am.id_aluno_matr_status union all select coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, coe.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(cm.id_cidadao)::integer as candidatos, null as id_aluno_matr_status from candidato_matricula cm inner join candidato_opcao_escola coe on cm.id_cidadao = coe.id_cidadao inner join ano_semestre ano on ano.id_ano_semestre = cm.id_ano_semestre inner join serie on serie.id_serie = cm.id_serie left join pre_matricula on pre_matricula.id_cidadao = cm.id_cidadao where (pre_matricula.id_pre_matricula_situacao is null or pre_matricula.id_pre_matricula_situacao <> 5) group by coe.id_unidade_funcional, cm.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao union all select te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, te.id_unidade_funcional as id_unidade_localizacao, 0 as matriculados, 0 as nao_enturmados, count(te.id_aluno_matricula)::integer as candidatos, null as id_aluno_matr_status from transferencia_espera te inner join aluno_matricula am on am.id_aluno_matricula = te.id_aluno_matricula inner join ano_semestre ano on ano.id_ano_semestre = te.id_ano_semestre inner join serie on serie.id_serie = te.id_serie where am.flg_matricula_atual is true group by te.id_unidade_funcional, te.id_ano_semestre, ano.ano, ano.semestre, serie.id_curso, serie.id_serie, id_unidade_localizacao;
Date: 2026-06-10 12:01:59 Duration: 0ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila
16 22s95ms 22s95ms 22s95ms 1 22s95ms select f.*;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Jun 10 10 1 22s95ms 22s95ms [ User: augeeducacional - Total duration: 22s95ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 22s95ms - Times executed: 1 ]
-
select f.*;
Date: 2026-06-10 10:40:56 Duration: 22s95ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
17 16s367ms 30s847ms 20s283ms 4 1m21s select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and am.id_curso = ? and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jan, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?, false) as perc_freq_fev, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mar, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_abr, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_mai, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jun, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_jul, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_ago, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_set, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_out, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_nov, ? - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> array[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = ? and am.id_aluno_matr_status in (...) and ano_semestre.ano = ? and am.id_curso = ? and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? order by aluno;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Jun 10 08 1 30s847ms 30s847ms 09 3 50s286ms 16s762ms [ User: augeeducacional - Total duration: 1m21s - Times executed: 4 ]
[ Application: augeeducacional - fila - Total duration: 1m21s - Times executed: 4 ]
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '606255' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1011' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '606255' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1011' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 08:26:54 Duration: 30s847ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1010' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1010' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:57:58 Duration: 17s177ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1013' and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' union all select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.denominacao as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date, false) as perc_freq_jan, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28', false) as perc_freq_fev, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date, false) as perc_freq_mar, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date, false) as perc_freq_abr, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date, false) as perc_freq_mai, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date, false) as perc_freq_jun, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date, false) as perc_freq_jul, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date, false) as perc_freq_ago, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date, false) as perc_freq_set, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date, false) as perc_freq_out, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date, false) as perc_freq_nov, 100 - sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date, false) as perc_freq_dez, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = falta.id_aluno_matricula and mdp.periodos @> ARRAY[falta.id_nota_periodo_aluno]) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2026'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2026')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where turma.id_unidade_funcional = '605262' and am.id_aluno_matr_status in (1, 2, 7) and ano_semestre.ano = '2026' and am.id_curso = '1013' and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' order by aluno;
Date: 2026-06-10 09:45:11 Duration: 16s740ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
18 18s757ms 18s757ms 18s757ms 1 18s757ms select c.id_cidadao, rede.nome as rede, municipio.nome as municipio, unidade.codigo as codigo_unidade, unidade.nome as unidade, aluno.codigo as matricula, to_char(am.data_matricula, ?) as data_matricula, c.nome, c.sexo, raca_cor.descricao as raca_cor, to_char(c.nascimento_data, ?) as nascimento_data, men.descricao as numero_material_escolar, men.id_material_escolar, case when (dc.flg_modelo_novo_cn is false and dc.numero_cn is not null) or (dc.flg_modelo_novo_cn and dc.numero_matricula_cn is not null) then ? else ? end as registro_civil, coalesce((m_nascimento.nome || ? || uf.sigla), c.naturalidade) as naturalidade, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, dc.numero_nis, aluno.codigo_inep, dc.numero_cns, ano_semestre.ano || coalesce(? || ano_semestre.semestre, ?) as ano_semestre, ensino_etapa.sigla as ensino_etapa, modalidade.sigla as modalidade, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, ( case when exists ( select null from historico_estabelecimento he inner join historico_aluno_situacao has on has.id_historico_aluno_situacao = he.id_historico_aluno_situacao where he.id_cidadao = c.id_cidadao and he.id_serie_equivalente = serie.id_serie_equivalente and has.flg_aprovacao is false) then ? else ? end) as flg_reprovado, c.nome_mae as filiacao_1, c.nome_pai as filiacao_2, c.profissao_mae as proficao_filiacao_1, c.profissao_pai as proficao_filiacao_2, grau_1.descricao as grau_escolaridade_filiacao_1, grau_2.descricao as grau_escolaridade_filiacao_2, cidadao_responsavel.nome as responsavel, formatar_cpf (dc_responsavel.numero_cpf, dc_responsavel.digito_cpf) as cpf_responsavel, endereco.endereco || coalesce(? || nullif (trim(endereco.numero), ?), ?) || coalesce(? || nullif (trim(endereco.complemento), ?), ?) || coalesce(? || nullif (trim(endereco.bairro), ?), ?) || coalesce(? || nullif (formatar_cep (endereco.cep), ?), ?) || coalesce(? || mun_end.nome || ? || uf_end.sigla) as endereco, ( select string_agg(formatar_telefone (tel.telefone_ddd, tel.telefone_numero), ?) from cidadao_telefone tel where tel.id_cidadao = c.id_cidadao) as telefone, c.numero_conta_energia from cidadao c inner join aluno on aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am on am.id_cidadao = aluno.id_cidadao inner join curso on curso.id_curso = am.id_curso inner join serie on serie.id_serie = am.id_serie inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa on ensino_etapa.id_ensino_etapa = modalidade.id_ensino_etapa inner join ano_semestre on ano_semestre.id_ano_semestre = am.id_ano_semestre inner join raca_cor on raca_cor.id_raca_cor = c.id_raca_cor inner join unidade_funcional unidade on unidade.id_unidade_funcional = am.id_unidade_funcional inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = unidade.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional rede on rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio on municipio.id_municipio = unidade.id_municipio inner join cidadao_endereco endereco on endereco.id_cidadao = c.id_cidadao left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma on turma.id_turma = amt.id_turma left join municipio m_nascimento on m_nascimento.id_municipio = c.id_municipio_nascimento left join uf on uf.id_uf = m_nascimento.id_uf left join documentos_cidadao dc on dc.id_cidadao = c.id_cidadao left join responsavel on responsavel.id_responsavel = aluno.id_responsavel left join cidadao cidadao_responsavel on cidadao_responsavel.id_cidadao = responsavel.id_responsavel left join documentos_cidadao dc_responsavel on dc_responsavel.id_cidadao = cidadao_responsavel.id_cidadao left join municipio mun_end on mun_end.id_municipio = endereco.id_municipio left join uf uf_end on uf_end.id_uf = mun_end.id_uf left join material_escolar_aluno mea on mea.id_cidadao = c.id_cidadao and mea.ano = ano_semestre.ano left join material_escolar_aluno_num mean on mean.id_cidadao = mea.id_cidadao left join material_escolar_numeracao men on men.id_material_escolar_numeracao = mean.id_material_escolar_numeracao left join material_escolar me on me.id_material_escolar = mean.id_material_escolar and me.flg_exige_numeracao left join grau_escolaridade grau_1 on grau_1.id_grau_escolaridade = c.id_grau_escolaridade_mae left join grau_escolaridade grau_2 on grau_2.id_grau_escolaridade = c.id_grau_escolaridade_pai where unidade.id_instituicao = ? and unidade.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and ano_semestre.ano = ? and unidade.id_municipio = ? order by c.nome, men.id_material_escolar;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Jun 10 09 1 18s757ms 18s757ms [ User: augeeducacional - Total duration: 18s757ms - Times executed: 1 ]
[ Application: augeeducacional - fila - Total duration: 18s757ms - Times executed: 1 ]
-
select c.id_cidadao, rede.nome as rede, municipio.nome as municipio, unidade.codigo as codigo_unidade, unidade.nome as unidade, aluno.codigo as matricula, to_char(am.data_matricula, 'DD/MM/YYYY') as data_matricula, c.nome, c.sexo, raca_cor.descricao as raca_cor, to_char(c.nascimento_data, 'DD/MM/YYYY') as nascimento_data, men.descricao as numero_material_escolar, men.id_material_escolar, case when (dc.flg_modelo_novo_cn is false and dc.numero_cn is not null) or (dc.flg_modelo_novo_cn and dc.numero_matricula_cn is not null) then 'SIM' else 'NÃO' end as registro_civil, coalesce((m_nascimento.nome || '/' || uf.sigla), c.naturalidade) as naturalidade, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, dc.numero_nis, aluno.codigo_inep, dc.numero_cns, ano_semestre.ano || coalesce('/' || ano_semestre.semestre, '') as ano_semestre, ensino_etapa.sigla as ensino_etapa, modalidade.sigla as modalidade, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, ( case when exists ( select null from historico_estabelecimento he inner join historico_aluno_situacao has on has.id_historico_aluno_situacao = he.id_historico_aluno_situacao where he.id_cidadao = c.id_cidadao and he.id_serie_equivalente = serie.id_serie_equivalente and has.flg_aprovacao is false) then 'Sim' else 'Não' end) as flg_reprovado, c.nome_mae as filiacao_1, c.nome_pai as filiacao_2, c.profissao_mae as proficao_filiacao_1, c.profissao_pai as proficao_filiacao_2, grau_1.descricao as grau_escolaridade_filiacao_1, grau_2.descricao as grau_escolaridade_filiacao_2, cidadao_responsavel.nome as responsavel, formatar_cpf (dc_responsavel.numero_cpf, dc_responsavel.digito_cpf) as cpf_responsavel, endereco.endereco || coalesce(', ' || nullif (trim(endereco.numero), ''), '') || coalesce(', ' || nullif (trim(endereco.complemento), ''), '') || coalesce(', ' || nullif (trim(endereco.bairro), ''), '') || coalesce(', ' || nullif (formatar_cep (endereco.cep), ''), '') || coalesce(' - ' || mun_end.nome || '/' || uf_end.sigla) as endereco, ( select string_agg(formatar_telefone (tel.telefone_ddd, tel.telefone_numero), ', ') from cidadao_telefone tel where tel.id_cidadao = c.id_cidadao) as telefone, c.numero_conta_energia from cidadao c inner join aluno ON aluno.id_cidadao = c.id_cidadao inner join aluno_matricula am ON am.id_cidadao = aluno.id_cidadao inner join curso ON curso.id_curso = am.id_curso inner join serie ON serie.id_serie = am.id_serie inner join modalidade ON modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa ON ensino_etapa.id_ensino_etapa = modalidade.id_ensino_etapa inner join ano_semestre ON ano_semestre.id_ano_semestre = am.id_ano_semestre inner join raca_cor ON raca_cor.id_raca_cor = c.id_raca_cor inner join unidade_funcional unidade ON unidade.id_unidade_funcional = am.id_unidade_funcional inner join hierarquia_unidade_funcional huf ON huf.id_unidade_funcional_filha = unidade.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' inner join unidade_funcional rede ON rede.id_unidade_funcional = huf.id_unidade_funcional_mae inner join municipio ON municipio.id_municipio = unidade.id_municipio inner join cidadao_endereco endereco on endereco.id_cidadao = c.id_cidadao left join aluno_matr_turma amt ON amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma ON turma.id_turma = amt.id_turma left join municipio m_nascimento ON m_nascimento.id_municipio = c.id_municipio_nascimento left join uf ON uf.id_uf = m_nascimento.id_uf left join documentos_cidadao dc ON dc.id_cidadao = c.id_cidadao left join responsavel ON responsavel.id_responsavel = aluno.id_responsavel left join cidadao cidadao_responsavel ON cidadao_responsavel.id_cidadao = responsavel.id_responsavel left join documentos_cidadao dc_responsavel ON dc_responsavel.id_cidadao = cidadao_responsavel.id_cidadao left join municipio mun_end on mun_end.id_municipio = endereco.id_municipio left join uf uf_end on uf_end.id_uf = mun_end.id_uf left join material_escolar_aluno mea ON mea.id_cidadao = c.id_cidadao and mea.ano = ano_semestre.ano left join material_escolar_aluno_num mean ON mean.id_cidadao = mea.id_cidadao left join material_escolar_numeracao men ON men.id_material_escolar_numeracao = mean.id_material_escolar_numeracao left join material_escolar me ON me.id_material_escolar = mean.id_material_escolar and me.flg_exige_numeracao left join grau_escolaridade grau_1 ON grau_1.id_grau_escolaridade = c.id_grau_escolaridade_mae left join grau_escolaridade grau_2 ON grau_2.id_grau_escolaridade = c.id_grau_escolaridade_pai where unidade.id_instituicao = '60' and unidade.id_unidade_funcional in ( select '605683' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605683' and id_assunto_hierarquia_unidade = '49') and ano_semestre.ano = '2026' and unidade.id_municipio = '260620' order by c.nome, men.id_material_escolar;
Date: 2026-06-10 09:08:46 Duration: 18s757ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
19 18s122ms 19s365ms 18s743ms 2 37s487ms with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? and amt.data_enturmacao::date <= ?::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= ?::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit ?) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = ? and uf.id_instituicao = ? and (t.id_turma is null or t.id_turma_status in (...)) and ((t.id_diario_turma_situacao = ? and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = ?) or (t.id_diario_turma_situacao <> ? or t.id_diario_turma_situacao is null)) and uf.id_municipio = ? and pm.data_matricula::date <= ? and ( select amsh.id_aluno_matr_status in (...) from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit ?) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= ?::date and case when a.semestre = ? then cpf.ordem <= ? when a.semestre = ? then cpf.ordem >= ? else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > ? ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = ? left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > ? or pm.alunos > ?) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Jun 10 08 1 18s122ms 18s122ms 09 1 19s365ms 19s365ms [ User: augeeducacional - Total duration: 37s487ms - Times executed: 2 ]
[ Application: augeeducacional - fila - Total duration: 37s487ms - Times executed: 2 ]
-
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2026-06-10'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2026-06-10'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2026' and uf.id_instituicao = '60' and (t.id_turma is null or t.id_turma_status in ('1', '2')) and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and uf.id_municipio = '260320' and pm.data_matricula::date <= '2026-06-10' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-06-10' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2026-06-10'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '605613' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605613' and id_assunto_hierarquia_unidade = '49') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = '50' left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2026-06-10 09:05:23 Duration: 19s365ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2026-06-10'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2026-06-10'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2026' and uf.id_instituicao = '60' and (t.id_turma is null or t.id_turma_status in ('1', '2')) and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and uf.id_municipio = '261410' and pm.data_matricula::date <= '2026-06-10' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2026-06-10' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2026-06-10'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '605307' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605307' and id_assunto_hierarquia_unidade = '49') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '49' left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = '50' left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso left join modalidade on modalidade.id_modalidade = ct.id_modalidade where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2026-06-10 08:53:27 Duration: 18s122ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
20 10s465ms 19s574ms 15s305ms 5 1m16s select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ? || jtt.carga_horaria || ? as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, ?) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, ? as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, ?) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ?) as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = ? and scb.flg_aberto = true and (pucb.id_unidade_funcional = ? or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?)) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, ? as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, ?) as aulas, jtos.horas_atribuidas as horas_atrib, ? as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = ? and (pucs.id_unidade_funcional = ? or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, ? order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> ? union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> ? union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> ? union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> ?) d) as disponibilizacao on (true) order by gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Jun 10 07 1 17s676ms 17s676ms 09 1 19s574ms 19s574ms 10 1 17s185ms 17s185ms 11 2 22s89ms 11s44ms [ User: augeeducacional - Total duration: 1m16s - Times executed: 5 ]
[ Application: augeeducacional - fila - Total duration: 1m16s - Times executed: 5 ]
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 09:59:22 Duration: 19s574ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 07:53:26 Duration: 17s676ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
-
select mae.nome as gre, m.nome as municipio, codigo_escola, escola, car.sigla as cargo, car.descricao as cargo_descricao, c.id_cidadao, s.registro_funcional, s.registro_funcional_numerico, t.matricula_cargo, c.nome, t.id_servidor_cargo_base, t.id_servidor_cargo_sobr_alt, sf.sigla, sf.descricao as situacao, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada, t.aulas, t.ano, t.funcao, t.horas_atrib, jtt.carga_horaria as crg_hor, jtt.desvio_carga_horaria as desvio_crg_hor, mnaa.descricao as motivo, t.observacao, coalesce(disponibilizacao.aulas, 0) as aulas_disponibilizadas, disponibilizacao.motivos as motivos_disponibilizacao from ( select scb.id_cidadao, scb.id_cargo, scb.matricula_cargo, scb.id_servidor_cargo_base as id_servidor_cargo_base, -1 as id_servidor_cargo_sobr_alt, pucb.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucb.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, scb.id_situacao_funcional, mnaacb.id_motivo_nao_atrib_aula, mnaacb.observacao from servidor_cargo_base scb inner join professor_unidade_cargo_base pucb on pucb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join unidade_funcional uf on uf.id_unidade_funcional = pucb.id_unidade_funcional inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.ano = pucb.ano left join motivo_nao_atrib_aula_cargo_base mnaacb on scb.id_servidor_cargo_base = mnaacb.id_servidor_cargo_base and pucb.id_unidade_funcional = mnaacb.id_unidade_funcional and mnaacb.ano = pucb.ano left join motivo_nao_atrib_aula mnaa on mnaacb.id_motivo_nao_atrib_aula = mnaa.id_motivo_nao_atrib_aula where jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and scb.flg_aberto = true and (pucb.id_unidade_funcional = '604934' or pucb.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50')) union all select scsa.id_cidadao, scsa.id_cargo, null as matricula_cargo, -1 as id_servidor_cargo_base, scsa.id_servidor_cargo_sobr_alt as id_servidor_cargo_sobr_alt, pucs.id_unidade_funcional, uf.codigo as codigo_escola, uf.nome as escola, uf.id_municipio, pucs.ano, jtos.id_jornada_trabalho_tipo, coalesce(jtos.horas_atribuidas, 0) as aulas, jtos.horas_atribuidas as horas_atrib, '' as funcao, scsa.id_situacao_funcional, mnaacs.id_motivo_nao_atrib_aula, mnaacs.observacao from servidor_cargo_sobr_alt scsa inner join professor_unidade_cargo_sobr pucs on pucs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join unidade_funcional uf on uf.id_unidade_funcional = pucs.id_unidade_funcional inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = scsa.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.ano = pucs.ano left join motivo_nao_atrib_aula_cargo_sobr mnaacs on scsa.id_servidor_cargo_sobr_alt = mnaacs.id_servidor_cargo_sobr_alt and pucs.id_unidade_funcional = mnaacs.id_unidade_funcional and mnaacs.ano = pucs.ano where scsa.flg_aberto = true and jtos.data_desligamento is null and jtos.flg_opcao_desligada = false and jtos.ano = '2026' and (pucs.id_unidade_funcional = '604934' or pucs.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_Mae = '604934' and id_assunto_hierarquia_unidade = '50'))) t inner join servidor s on s.id_cidadao = t.id_cidadao inner join cidadao c on c.id_cidadao = t.id_cidadao inner join cargo car on car.id_cargo = t.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = t.id_situacao_funcional inner join municipio m on m.id_municipio = t.id_municipio inner join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = t.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = '50' inner join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = t.id_jornada_trabalho_tipo left join motivo_nao_atrib_aula mnaa on mnaa.id_motivo_nao_atrib_aula = t.id_motivo_nao_atrib_aula left join lateral ( select sum(aulas) as aulas, string_agg(distinct motivo, '; ' order by motivo) as motivos from ( select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_base = t.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_base = t.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4 union all select cc.qtd_aulas_semanal as aulas, amdx.descricao as motivo from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular left join atrib_motivo_disp amdx on tch.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where tch.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tc.id_turma_componente_status <> 4 union all select tra.aulas_semanal_qtd as aulas, amdx.descricao as motivo from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao left join atrib_motivo_disp amdx on trah.id_atrib_motivo_disp = amdx.id_atrib_motivo_disp where trah.id_servidor_cargo_sobr_alt = t.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = t.ano) and tra.id_turma_regencia_atrib_status <> 4) d) as disponibilizacao on (true) ORDER BY gre, municipio, codigo_escola, nome, cargo, sigla, funcao desc, aulas;
Date: 2026-06-10 10:04:35 Duration: 17s185ms Database: augeeducacional User: augeeducacional Remote: lnxsiepeapp01 Application: augeeducacional - fila Bind query: yes
Time consuming prepare
Rank Total duration Times executed Min duration Max duration Avg duration Query NO DATASET
Time consuming bind
Rank Total duration Times executed Min duration Max duration Avg duration Query NO DATASET
-
Events
Log levels
Key values
- 144,466 Event entries
- (EVENTLOG entries are formaly LOG level entries that are not queries)
Events distribution (except queries)
Key values
- 0 PANIC entries
- 0 FATAL entries
- 881 ERROR entries
- 0 WARNING entries
- 25 EVENTLOG entries
Most Frequent Errors/Events
Key values
- 840 Max number of times the same event was reported
- 906 Total events found
Rank Times reported Error 1 840 ERROR: relation "..." does not exist
Times Reported Most Frequent Error / Event #1
Day Hour Count Jun 10 06 120 07 120 08 120 09 120 10 120 11 120 12 120 - ERROR: relation "pg_buffercache" does not exist at character 461
- ERROR: relation "pg_stat_statements" does not exist at character 62
- ERROR: relation "pg_buffercache" does not exist at character 461
Statement: SELECT row_to_json(j) FROM (SELECT current_setting('block_size')::int*count(*) AS total, current_setting('block_size')::int*sum(CASE WHEN isdirty THEN 1 ELSE 0 END) AS dirty, current_setting('block_size')::int*sum(CASE WHEN isdirty THEN 0 ELSE 1 END) AS clear, current_setting('block_size')::int*sum(CASE WHEN reldatabase IS NOT NULL THEN 1 ELSE 0 END) AS used, current_setting('block_size')::int*sum(CASE WHEN usagecount>=3 THEN 1 ELSE 0 END) AS popular FROM pg_buffercache) AS j
Date: 2026-06-10 06:00:18 Database: postgres Application: psql User: zabbix Remote: localhost
Statement: select round((sum(total_time) / sum(calls))::numeric,2) from pg_stat_statements
Date: 2026-06-10 06:00:32 Database: postgres Application: psql User: zabbix Remote: localhost
Statement: SELECT row_to_json(j) FROM (SELECT current_setting('block_size')::int*count(*) AS total, current_setting('block_size')::int*sum(CASE WHEN isdirty THEN 1 ELSE 0 END) AS dirty, current_setting('block_size')::int*sum(CASE WHEN isdirty THEN 0 ELSE 1 END) AS clear, current_setting('block_size')::int*sum(CASE WHEN reldatabase IS NOT NULL THEN 1 ELSE 0 END) AS used, current_setting('block_size')::int*sum(CASE WHEN usagecount>=3 THEN 1 ELSE 0 END) AS popular FROM pg_buffercache) AS j
Date: 2026-06-10 06:01:15 Database: postgres Application: psql User: zabbix Remote: localhost
2 28 ERROR: canceling statement due to statement timeout
Times Reported Most Frequent Error / Event #2
Day Hour Count Jun 10 07 4 08 7 09 15 11 1 12 1 - ERROR: canceling statement due to statement timeout
- ERROR: canceling statement due to statement timeout
- ERROR: canceling statement due to statement timeout
Statement: select
Date: 2026-06-10 07:10:54 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Statement: select
Date: 2026-06-10 07:10:56 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Statement: select
Date: 2026-06-10 07:11:02 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
3 14 LOG: process ... still waiting for AccessShareLock on relation ... of database ... after ... ms
Times Reported Most Frequent Error / Event #3
Day Hour Count Jun 10 07 4 08 7 09 3 - LOG: process 60944 still waiting for AccessShareLock on relation 11523757 of database 11518903 after 1000.078 ms at character 1827
- LOG: process 63428 still waiting for AccessShareLock on relation 11523757 of database 11518903 after 1000.106 ms at character 1827
- LOG: process 63445 still waiting for AccessShareLock on relation 11523757 of database 11518903 after 1000.103 ms at character 1827
Detail: Process holding the lock: 28501. Wait queue: 60944.
Statement: select un_mae.nome as gre, m.nome as municipio_escola, uf.codigo, uf.nome as escola, aluno.codigo as matricula, cidadao.nome, to_char(cidadao.nascimento_data, 'DD/MM/YYYY') as nascimento_data, municipio.nome as municipio, ce.bairro, concat_ws(', ', nullif(ce.endereco, ''), nullif(ce.numero, ''), nullif(ce.complemento, '')) || coalesce(' - ' || nullif(formatar_cep(ce.cep), '')) as endereco, (select string_agg(formatar_telefone(telefone_ddd, telefone_numero), ', ') from cidadao_telefone where id_cidadao = cidadao.id_cidadao) as telefone, c_responsavel.nome as responsavel, ams.descricao as situacao, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, frequencia_aluno.faltas, frequencia_aluno.percentual_frequencia, frequencia_aluno.dias_consecutivos, (select string_agg(situacao_notificacao.descricao, ', ' order by situacao_notificacao.data_criacao) from call_center.situacao_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_situacao_notificacao = situacao_notificacao.id_situacao_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as ocorrencia, (select string_agg(responsavel_notificacao.descricao, ', ' order by responsavel_notificacao.ordem) from call_center.responsavel_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_responsavel_notificacao = responsavel_notificacao.id_responsavel_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as responsavel from call_center.monitoramento_frequencia_aluno frequencia_aluno inner join aluno_matr_turma amt on frequencia_aluno.id_aluno_matricula = amt.id_aluno_matricula and frequencia_aluno.id_turma = amt.id_turma inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = am.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join responsavel r ON r.id_responsavel = aluno.id_responsavel left join cidadao c_responsavel ON c_responsavel.id_cidadao = r.id_responsavel left join cidadao_endereco ce ON ce.id_cidadao = cidadao.id_cidadao left join municipio ON municipio.id_municipio = ce.id_municipio left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4,5) inner join municipio m on m.id_municipio = uf.id_municipio left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = $1 left join unidade_funcional un_mae on huf.id_unidade_funcional_mae = un_mae.id_unidade_funcional where cidadao.id_instituicao = $2 and am.id_unidade_funcional in ( select $3 union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = $4 and id_assunto_hierarquia_unidade = $5 ) and ano.ano = $6 and frequencia_aluno.id_monitoramento_frequencia = $7 and frequencia_aluno.periodo in ($8) and ano.semestre = $9 and uf.id_municipio = $10 order by cidadao.nomeDate: 2026-06-10 07:10:45 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Detail: Process holding the lock: 28501. Wait queue: 60944, 63428.
Statement: select un_mae.nome as gre, m.nome as municipio_escola, uf.codigo, uf.nome as escola, aluno.codigo as matricula, cidadao.nome, to_char(cidadao.nascimento_data, 'DD/MM/YYYY') as nascimento_data, municipio.nome as municipio, ce.bairro, concat_ws(', ', nullif(ce.endereco, ''), nullif(ce.numero, ''), nullif(ce.complemento, '')) || coalesce(' - ' || nullif(formatar_cep(ce.cep), '')) as endereco, (select string_agg(formatar_telefone(telefone_ddd, telefone_numero), ', ') from cidadao_telefone where id_cidadao = cidadao.id_cidadao) as telefone, c_responsavel.nome as responsavel, ams.descricao as situacao, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, frequencia_aluno.faltas, frequencia_aluno.percentual_frequencia, frequencia_aluno.dias_consecutivos, (select string_agg(situacao_notificacao.descricao, ', ' order by situacao_notificacao.data_criacao) from call_center.situacao_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_situacao_notificacao = situacao_notificacao.id_situacao_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as ocorrencia, (select string_agg(responsavel_notificacao.descricao, ', ' order by responsavel_notificacao.ordem) from call_center.responsavel_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_responsavel_notificacao = responsavel_notificacao.id_responsavel_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as responsavel from call_center.monitoramento_frequencia_aluno frequencia_aluno inner join aluno_matr_turma amt on frequencia_aluno.id_aluno_matricula = amt.id_aluno_matricula and frequencia_aluno.id_turma = amt.id_turma inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = am.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join responsavel r ON r.id_responsavel = aluno.id_responsavel left join cidadao c_responsavel ON c_responsavel.id_cidadao = r.id_responsavel left join cidadao_endereco ce ON ce.id_cidadao = cidadao.id_cidadao left join municipio ON municipio.id_municipio = ce.id_municipio left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4,5) inner join municipio m on m.id_municipio = uf.id_municipio left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = $1 left join unidade_funcional un_mae on huf.id_unidade_funcional_mae = un_mae.id_unidade_funcional where cidadao.id_instituicao = $2 and am.id_unidade_funcional in ( select $3 union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = $4 and id_assunto_hierarquia_unidade = $5 ) and ano.ano = $6 and frequencia_aluno.id_monitoramento_frequencia = $7 and frequencia_aluno.periodo in ($8) and ano.semestre = $9 and uf.id_municipio = $10 order by cidadao.nomeDate: 2026-06-10 07:10:47 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Detail: Process holding the lock: 28501. Wait queue: 60944, 63428, 63445.
Statement: select un_mae.nome as gre, m.nome as municipio_escola, uf.codigo, uf.nome as escola, aluno.codigo as matricula, cidadao.nome, to_char(cidadao.nascimento_data, 'DD/MM/YYYY') as nascimento_data, municipio.nome as municipio, ce.bairro, concat_ws(', ', nullif(ce.endereco, ''), nullif(ce.numero, ''), nullif(ce.complemento, '')) || coalesce(' - ' || nullif(formatar_cep(ce.cep), '')) as endereco, (select string_agg(formatar_telefone(telefone_ddd, telefone_numero), ', ') from cidadao_telefone where id_cidadao = cidadao.id_cidadao) as telefone, c_responsavel.nome as responsavel, ams.descricao as situacao, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, frequencia_aluno.faltas, frequencia_aluno.percentual_frequencia, frequencia_aluno.dias_consecutivos, (select string_agg(situacao_notificacao.descricao, ', ' order by situacao_notificacao.data_criacao) from call_center.situacao_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_situacao_notificacao = situacao_notificacao.id_situacao_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as ocorrencia, (select string_agg(responsavel_notificacao.descricao, ', ' order by responsavel_notificacao.ordem) from call_center.responsavel_notificacao inner join call_center.notificacao_aluno on notificacao_aluno.id_responsavel_notificacao = responsavel_notificacao.id_responsavel_notificacao where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.id_monitoramento_frequencia = frequencia_aluno.id_monitoramento_frequencia) as responsavel from call_center.monitoramento_frequencia_aluno frequencia_aluno inner join aluno_matr_turma amt on frequencia_aluno.id_aluno_matricula = amt.id_aluno_matricula and frequencia_aluno.id_turma = amt.id_turma inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = am.id_curso inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join responsavel r ON r.id_responsavel = aluno.id_responsavel left join cidadao c_responsavel ON c_responsavel.id_cidadao = r.id_responsavel left join cidadao_endereco ce ON ce.id_cidadao = cidadao.id_cidadao left join municipio ON municipio.id_municipio = ce.id_municipio left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4,5) inner join municipio m on m.id_municipio = uf.id_municipio left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = uf.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = $1 left join unidade_funcional un_mae on huf.id_unidade_funcional_mae = un_mae.id_unidade_funcional where cidadao.id_instituicao = $2 and am.id_unidade_funcional in ( select $3 union all select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = $4 and id_assunto_hierarquia_unidade = $5 ) and ano.ano = $6 and frequencia_aluno.id_monitoramento_frequencia = $7 and frequencia_aluno.periodo in ($8) and ano.semestre = $9 and uf.id_municipio = $10 order by cidadao.nomeDate: 2026-06-10 07:10:53 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
4 10 LOG: could not receive data from client: Connection timed out
Times Reported Most Frequent Error / Event #4
Day Hour Count Jun 10 10 5 11 5 - LOG: could not receive data from client: Connection timed out
- LOG: could not receive data from client: Connection timed out
- LOG: could not receive data from client: Connection timed out
Date: 2026-06-10 10:01:35 Database: augeeducacional Application: DBeaver 26.0.0 - Main 'augeeducacional' User: sergio_veiga Remote: 10.81.13.6
Date: 2026-06-10 10:01:35 Database: postgres Application: DBeaver 26.0.0 - Main 'postgres' User: sergio_veiga Remote: 10.81.13.6
Date: 2026-06-10 10:01:35 Database: postgres Application: DBeaver 26.0.0 - Metadata 'postgres' User: sergio_veiga Remote: 10.81.13.6
5 7 ERROR: duplicate key value violates unique constraint "..."
Times Reported Most Frequent Error / Event #5
Day Hour Count Jun 10 07 5 09 1 10 1 - ERROR: duplicate key value violates unique constraint "iu_login"
- ERROR: duplicate key value violates unique constraint "iu_login"
- ERROR: duplicate key value violates unique constraint "iu_login"
Detail: Key (login)=(a_caique) already exists.
Statement: insert into usuario (data_criacao, flg_bloqueado, flg_excluido, nome, flg_ocultar_aniversario, login, email) values ($1, $2, $3, $4, $5, $6, $7)Date: 2026-06-10 07:19:43 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Detail: Key (login)=(a_caique) already exists.
Statement: insert into usuario (data_criacao, flg_bloqueado, flg_excluido, nome, flg_ocultar_aniversario, login, email) values ($1, $2, $3, $4, $5, $6, $7)Date: 2026-06-10 07:19:51 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Detail: Key (login)=(a_caique) already exists.
Statement: insert into usuario (data_criacao, flg_bloqueado, flg_excluido, nome, flg_ocultar_aniversario, login, email) values ($1, $2, $3, $4, $5, $6, $7)Date: 2026-06-10 07:20:07 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
6 3 ERROR: invalid input syntax for type integer: ...
Times Reported Most Frequent Error / Event #6
Day Hour Count Jun 10 08 2 10 1 - ERROR: invalid input syntax for type integer: "TRANSFERI" at character 1319
- ERROR: invalid input syntax for type integer: "TRANSFERI" at character 1319
- ERROR: invalid input syntax for type integer: "" at character 2062
Statement: SELECT distinct c.id_cidadao, am.id_aluno_matricula, a.codigo, c.nome, c.nascimento_data, ase.ano || coalesce(' / ' || CAST(ase.semestre AS VARCHAR), '') as ano, case c.id_cidadao_status when 2 then 'Unificado' else ams.descricao end as descricao, t.codigo as codigo_turma, curso.sigla as curso, serie.sigla as serie, historico_escolar_digital.id_historico_escolar_digital_situacao = 3 as flg_historico_assinado, exists( select null from anexo_historico_estrangeiro ane where ane.id_cidadao = a.id_cidadao ) as flg_tem_anexo_estrangeiro FROM cidadao c INNER JOIN aluno a ON a.id_cidadao = c.id_cidadao INNER JOIN aluno_matricula am ON am.id_cidadao = c.id_cidadao INNER join serie on serie.id_serie = am.id_serie INNER join curso on curso.id_curso = serie.id_curso INNER JOIN ano_semestre ase USING (id_ano_semestre) INNER JOIN aluno_matr_status ams USING (id_aluno_matr_status) left join historico_escolar_digital on historico_escolar_digital.id_cidadao = c.id_cidadao LEFT JOIN aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 LEFT JOIN turma t ON t.id_turma = amt.id_turma where am.flg_matricula_atual is true AND (am.id_unidade_funcional = 606124) AND (c.id_instituicao = 60) AND (a.codigo = 'TRANSFERI')
Date: 2026-06-10 08:41:01 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Statement: SELECT distinct c.id_cidadao, am.id_aluno_matricula, a.codigo, c.nome, c.nascimento_data, ase.ano || coalesce(' / ' || CAST(ase.semestre AS VARCHAR), '') as ano, case c.id_cidadao_status when 2 then 'Unificado' else ams.descricao end as descricao, t.codigo as codigo_turma, curso.sigla as curso, serie.sigla as serie, historico_escolar_digital.id_historico_escolar_digital_situacao = 3 as flg_historico_assinado, exists( select null from anexo_historico_estrangeiro ane where ane.id_cidadao = a.id_cidadao ) as flg_tem_anexo_estrangeiro FROM cidadao c INNER JOIN aluno a ON a.id_cidadao = c.id_cidadao INNER JOIN aluno_matricula am ON am.id_cidadao = c.id_cidadao INNER join serie on serie.id_serie = am.id_serie INNER join curso on curso.id_curso = serie.id_curso INNER JOIN ano_semestre ase USING (id_ano_semestre) INNER JOIN aluno_matr_status ams USING (id_aluno_matr_status) left join historico_escolar_digital on historico_escolar_digital.id_cidadao = c.id_cidadao LEFT JOIN aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 LEFT JOIN turma t ON t.id_turma = amt.id_turma where am.flg_matricula_atual is true AND (am.id_unidade_funcional = 606124) AND (c.id_instituicao = 60) AND (a.codigo = 'TRANSFERI')
Date: 2026-06-10 08:41:09 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Statement: Select distinct t.id_turma, t.codigo, t.nome, t.hora_inicio_real, t.hora_final_real, t.flg_multiseriada, t.flg_especial, t.id_ano_semestre, t.id_turma_status, t.id_turno, t.id_ambiente, tu.descricao as turnoDescricao, ts.descricao as turmaStatusDescricao, case when t.flg_multietapa then 'Multietapa' when t.flg_multiseriada then 'Multisseriada' else se.sigla end as serieSigla, ase.ano, ase.semestre, am.num_sala, siam.descricao, cu.descricao, t.id_unidade_funcional, cu.serie_duracao, t.codigo || ' - ' || t.nome as CodigoNomeTurma, t.data_criacao, tu.sigla, (select sum(num_vagas_oferecidas) from turma_serie ts where ts.id_turma = t.id_turma ) as num_vagas_oferecidas, (select sum(num_vagas_remanescentes) from turma_serie ts where ts.id_turma = t.id_turma ) as num_vagas_remanescentes, t.flg_correcao_fluxo, null as modelo_avaliacao_desc, am.capacidade_fisica, am.capacidade_real, am.area_metro, t.codigo_inep, t.id_mec_tipo_atendimento_turma, mp.descricao as mec_programa, cu.sigla as sigla_curso, t.data_situacao as data_situacao, mtlfd.descricao FROM turma t INNER JOIN ambiente am ON (t.id_ambiente = am.id_ambiente) INNER JOIN situacao_ambiente siam on (siam.id_situacao_ambiente = am.id_situacao_ambiente) INNER JOIN turno tu ON (t.id_turno = tu.id_turno) INNER JOIN turma_status ts ON (t.id_turma_status = ts.id_turma_status) INNER JOIN ano_semestre ase ON (t.id_ano_semestre = ase.id_ano_semestre) LEFT JOIN curso cu ON (t.id_curso = cu.id_curso) LEFT JOIN turma_serie tuse on (t.id_turma = tuse.id_turma) LEFT JOIN serie se on (tuse.id_serie = se.id_serie) left join mec_programa mp on t.id_mec_programa = mp.id_mec_programa left join mec_turma_local_func_diferenciado mtlfd on mtlfd.id_mec_turma_local_func_diferenciado= t.id_mec_turma_local_func_diferenciado WHERE 1 = 1 AND (t.id_curso = '578') AND (t.id_unidade_funcional = 605198) AND (tu.id_instituicao = 60) AND (ase.ano = '') AND (tuse.id_serie = '1466') AND (t.id_tipo_turma != 4) AND (t.id_turma_status != 3) ORDER BY t.codigo, t.nome
Date: 2026-06-10 10:58:17 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
7 2 ERROR: null value in column "..." of relation "..." violates not-null constraint
Times Reported Most Frequent Error / Event #7
Day Hour Count Jun 10 11 2 - ERROR: null value in column "id_cidadao" of relation "aluno_atestado" violates not-null constraint
- ERROR: null value in column "id_cidadao" of relation "aluno_atestado" violates not-null constraint
Detail: Failing row contains (575483, null, 2026-06-02, 2026-06-02, 5, , t, 2026-06-10 11:16:18.738531, 2026-06-10 11:16:18.738531, t).
Statement: insert into aluno_atestado (data_inicio, id_motivo_falta_justificada, data_fim, observacao, flg_atividade_compensatoria) values ($1, $2, $3, $4, $5)Date: 2026-06-10 11:16:18 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
Detail: Failing row contains (575484, null, 2026-06-02, 2026-06-02, 5, , t, 2026-06-10 11:17:22.957228, 2026-06-10 11:17:22.957228, t).
Statement: insert into aluno_atestado (data_inicio, id_motivo_falta_justificada, data_fim, observacao, flg_atividade_compensatoria) values ($1, $2, $3, $4, $5)Date: 2026-06-10 11:17:22 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
8 1 ERROR: update or delete on table "..." violates foreign key constraint "..." on table "..."
Times Reported Most Frequent Error / Event #8
Day Hour Count Jun 10 10 1 - ERROR: update or delete on table "imagem" violates foreign key constraint "fk_imagem" on table "usuario"
Detail: Key (id_imagem)=(699342) is still referenced from table "usuario".
Statement: delete from imagem where id_imagem = $1Date: 2026-06-10 10:59:28 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01
9 1 LOG: process ... still waiting for ShareLock on transaction ... after ... ms
Times Reported Most Frequent Error / Event #9
Day Hour Count Jun 10 07 1 - LOG: process 8074 still waiting for ShareLock on transaction 810036844 after 1000.102 ms
Detail: Process holding the lock: 2821. Wait queue: 8074.
Context: while updating tuple (7116,149) in relation "local_class_atribuicao"
Statement: update local_class_atribuicao set id_cidadao = $1, id_unidade_funcional = $2, id_ano_semestre = $3 where id_local_class_atribuicao = $4Date: 2026-06-10 07:51:26 Database: augeeducacional Application: augeeducacional - principal User: augeeducacional Remote: lnxsiepeapp01