-
Global information
- Generated on Tue Jun 30 16:25:40 2026
- Log file: postgresql-13-main-20260625.log
- Parsed 24,329 log entries in 20s
- Log start from 2026-06-25 00:01:03 to 2026-06-25 23:55:04
-
Overview
Global Stats
- 792 Number of unique normalized queries
- 6,535 Number of queries
- 7h55m52s Total query duration
- 2026-06-25 00:01:03 First query
- 2026-06-25 23:55:04 Last query
- 4 queries/s at 2026-06-25 08:46:56 Query peak
- 7h55m52s Total query duration
- 9s214ms Prepare/parse total duration
- 2s67ms Bind total duration
- 7h55m41s Execute total duration
- 1,386 Number of events
- 8 Number of unique normalized events
- 1,340 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
- 0 Number temporary file
- 0 Max size of temporary file
- 0.00 B 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
- 6,535 Average queries per session
- 7h55m52s 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
- 4 queries/s Query Peak
- 2026-06-25 08:46:56 Date
SELECT Traffic
Key values
- 4 queries/s Query Peak
- 2026-06-25 08:46:56 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 2 queries/s Query Peak
- 2026-06-25 20:50:58 Date
Queries duration
Key values
- 7h55m52s 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 25 00 143 516ms 9m26s 19s123ms 5m39s 7m8s 10m4s 01 49 0ms 1h39m50s 2m41s 13m17s 1h40m39s 1h40m39s 04 10 500ms 5s301ms 1s399ms 5s301ms 5s301ms 5s301ms 05 12 517ms 3s4ms 978ms 4s766ms 4s766ms 4s766ms 06 22 504ms 9s896ms 2s59ms 6s155ms 9s896ms 9s896ms 07 398 500ms 35s244ms 1s206ms 18s515ms 27s63ms 38s813ms 08 671 500ms 20s129ms 1s248ms 28s887ms 35s104ms 56s313ms 09 558 500ms 20s730ms 1s439ms 30s694ms 35s643ms 53s221ms 10 574 502ms 54s118ms 1s593ms 34s245ms 51s239ms 58s250ms 11 399 501ms 2m57s 1s975ms 26s65ms 31s899ms 2m57s 12 240 506ms 16s336ms 2s23ms 20s995ms 33s78ms 1m6s 13 684 500ms 37s478ms 1s704ms 38s753ms 43s437ms 1m21s 14 717 501ms 34s131ms 1s846ms 43s316ms 56s107ms 1m10s 15 569 500ms 1m34s 1s662ms 30s612ms 39s989ms 1m42s 16 360 501ms 4m30s 2s848ms 38s812ms 1m4s 4m36s 17 82 500ms 5s297ms 1s333ms 7s75ms 10s425ms 17s131ms 18 57 501ms 3s539ms 1s59ms 2s631ms 8s217ms 9s750ms 19 108 502ms 1m1s 2s566ms 10s972ms 55s373ms 1m4s 20 290 500ms 1m18s 5s803ms 1m21s 1m42s 1m56s 21 171 503ms 7m49s 21s751ms 4m36s 4m48s 8m30s 22 408 501ms 4m20s 7s842ms 2m18s 2m35s 4m22s 23 13 0ms 4s886ms 1s396ms 2s849ms 5s723ms 5s723ms Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Jun 25 00 46 0 2s63ms 3s161ms 17s552ms 21s28ms 01 6 0 7s230ms 3s243ms 6s566ms 31s688ms 04 9 0 966ms 2s713ms 2s887ms 2s887ms 05 12 0 978ms 1s721ms 4s766ms 4s766ms 06 21 0 2s70ms 3s958ms 6s155ms 9s896ms 07 394 0 1s119ms 11s879ms 17s570ms 27s63ms 08 666 0 1s251ms 21s706ms 28s887ms 40s703ms 09 547 0 1s320ms 15s728ms 26s841ms 44s178ms 10 558 0 1s359ms 17s912ms 27s37ms 55s806ms 11 394 0 1s529ms 17s648ms 25s959ms 31s899ms 12 235 0 2s10ms 15s778ms 19s558ms 39s970ms 13 677 0 1s588ms 27s305ms 36s623ms 49s309ms 14 704 0 1s682ms 31s1ms 41s190ms 58s730ms 15 559 0 1s646ms 23s792ms 30s612ms 1m1s 16 359 0 2s849ms 19s166ms 38s812ms 1m16s 17 81 0 1s305ms 6s174ms 7s75ms 17s131ms 18 57 0 1s59ms 2s445ms 2s631ms 9s750ms 19 106 0 2s411ms 3s423ms 3s751ms 1m4s 20 51 239 5s803ms 1m4s 1m21s 1m54s 21 86 83 21s945ms 3m24s 4m33s 8m29s 22 31 127 11s385ms 1m17s 2m18s 4m20s 23 13 0 1s396ms 2s379ms 2s849ms 5s723ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Jun 25 00 79 11 1 0 28s725ms 50s219ms 1m39s 7m8s 01 34 3 1 0 3m24s 1m19s 5m51s 1h39m50s 04 1 0 0 0 5s301ms 0ms 0ms 5s301ms 05 0 0 0 0 0ms 0ms 0ms 0ms 06 0 0 0 0 0ms 0ms 0ms 0ms 07 3 0 0 0 1s197ms 0ms 0ms 656ms 08 3 0 0 0 532ms 0ms 0ms 505ms 09 3 0 1 0 549ms 0ms 0ms 539ms 10 0 0 0 0 0ms 0ms 0ms 0ms 11 0 0 1 0 1s238ms 0ms 0ms 0ms 12 0 0 0 0 0ms 0ms 0ms 0ms 13 1 0 0 0 580ms 0ms 0ms 0ms 14 0 0 0 0 0ms 0ms 0ms 0ms 15 1 0 0 0 956ms 0ms 0ms 0ms 16 0 0 0 0 0ms 0ms 0ms 0ms 17 0 0 0 0 0ms 0ms 0ms 0ms 18 0 0 0 0 0ms 0ms 0ms 0ms 19 0 0 0 0 0ms 0ms 0ms 0ms 20 0 0 0 0 0ms 0ms 0ms 0ms 21 2 0 0 0 5s356ms 0ms 0ms 5s317ms 22 1 0 0 0 7s434ms 0ms 0ms 0ms 23 0 0 0 0 0ms 0ms 0ms 0ms Day Hour Prepare Bind Bind/Prepare Percentage of prepare Jun 25 00 1 143 143.00 0.70% 01 0 49 49.00 0.00% 04 0 10 10.00 0.00% 05 0 12 12.00 0.00% 06 0 22 22.00 0.00% 07 0 398 398.00 0.00% 08 0 671 671.00 0.00% 09 0 558 558.00 0.00% 10 0 574 574.00 0.00% 11 0 399 399.00 0.00% 12 0 240 240.00 0.00% 13 0 684 684.00 0.00% 14 0 717 717.00 0.00% 15 0 569 569.00 0.00% 16 0 360 360.00 0.00% 17 0 82 82.00 0.00% 18 0 57 57.00 0.00% 19 0 108 108.00 0.00% 20 0 49 49.00 0.00% 21 0 88 88.00 0.00% 22 0 32 32.00 0.00% 23 0 13 13.00 0.00% Day Hour Count Average / Second Jun 25 00 0 0.00/s 01 0 0.00/s 04 0 0.00/s 05 0 0.00/s 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 13 0 0.00/s 14 0 0.00/s 15 0 0.00/s 16 0 0.00/s 17 0 0.00/s 18 0 0.00/s 19 0 0.00/s 20 0 0.00/s 21 0 0.00/s 22 0 0.00/s 23 0 0.00/s Day Hour Count Average Duration Average idle time Jun 25 00 0 0ms 0ms 01 0 0ms 0ms 04 0 0ms 0ms 05 0 0ms 0ms 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 13 0 0ms 0ms 14 0 0ms 0ms 15 0 0ms 0ms 16 0 0ms 0ms 17 0 0ms 0ms 18 0 0ms 0ms 19 0 0ms 0ms 20 0 0ms 0ms 21 0 0ms 0ms 22 0 0ms 0ms 23 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
- 0 buffers Checkpoint Peak
- Date
- seconds Highest write time
- seconds Sync time
Checkpoint write buffers (5 minutes period)
NO DATASET
Checkpoints Wal files
Key values
- 0 files Wal files usage Peak
- Date
Checkpoint Wal files usage (5 minutes period)
NO DATASET
Checkpoints distance
Key values
- 0 Mo Distance Peak
- Date
Checkpoints Activity
↑ Back to the top of the Checkpoint Activity tableDay Hour Written buffers Write time Sync time Total time Jun 25 00 0 0s 0s 0s 01 0 0s 0s 0s 04 0 0s 0s 0s 05 0 0s 0s 0s 06 0 0s 0s 0s 07 0 0s 0s 0s 08 0 0s 0s 0s 09 0 0s 0s 0s 10 0 0s 0s 0s 11 0 0s 0s 0s 12 0 0s 0s 0s 13 0 0s 0s 0s 14 0 0s 0s 0s 15 0 0s 0s 0s 16 0 0s 0s 0s 17 0 0s 0s 0s 18 0 0s 0s 0s 19 0 0s 0s 0s 20 0 0s 0s 0s 21 0 0s 0s 0s 22 0 0s 0s 0s 23 0 0s 0s 0s Day Hour Added Removed Recycled Synced files Longest sync Average sync Jun 25 00 0 0 0 0 0s 0s 01 0 0 0 0 0s 0s 04 0 0 0 0 0s 0s 05 0 0 0 0 0s 0s 06 0 0 0 0 0s 0s 07 0 0 0 0 0s 0s 08 0 0 0 0 0s 0s 09 0 0 0 0 0s 0s 10 0 0 0 0 0s 0s 11 0 0 0 0 0s 0s 12 0 0 0 0 0s 0s 13 0 0 0 0 0s 0s 14 0 0 0 0 0s 0s 15 0 0 0 0 0s 0s 16 0 0 0 0 0s 0s 17 0 0 0 0 0s 0s 18 0 0 0 0 0s 0s 19 0 0 0 0 0s 0s 20 0 0 0 0 0s 0s 21 0 0 0 0 0s 0s 22 0 0 0 0 0s 0s 23 0 0 0 0 0s 0s Day Hour Count Avg time (sec) Jun 25 00 0 0s 01 0 0s 04 0 0s 05 0 0s 06 0 0s 07 0 0s 08 0 0s 09 0 0s 10 0 0s 11 0 0s 12 0 0s 13 0 0s 14 0 0s 15 0 0s 16 0 0s 17 0 0s 18 0 0s 19 0 0s 20 0 0s 21 0 0s 22 0 0s 23 0 0s Day Hour Mean distance Mean estimate Jun 25 00 0.00 kB 0.00 kB 01 0.00 kB 0.00 kB 04 0.00 kB 0.00 kB 05 0.00 kB 0.00 kB 06 0.00 kB 0.00 kB 07 0.00 kB 0.00 kB 08 0.00 kB 0.00 kB 09 0.00 kB 0.00 kB 10 0.00 kB 0.00 kB 11 0.00 kB 0.00 kB 12 0.00 kB 0.00 kB 13 0.00 kB 0.00 kB 14 0.00 kB 0.00 kB 15 0.00 kB 0.00 kB 16 0.00 kB 0.00 kB 17 0.00 kB 0.00 kB 18 0.00 kB 0.00 kB 19 0.00 kB 0.00 kB 20 0.00 kB 0.00 kB 21 0.00 kB 0.00 kB 22 0.00 kB 0.00 kB 23 0.00 kB 0.00 kB -
Temporary Files
Size of temporary files
Key values
- 0 Temp Files size Peak
- Date
Size of temporary files (5 minutes period)
NO DATASET
Number of temporary files
Key values
- 0 per second Temp Files Peak
- Date
Number of temporary files (5 minutes period)
NO DATASET
Temporary Files Activity
↑ Back to the top of the Temporary Files Activity tableDay Hour Count Total size Average size Jun 25 00 0 0 0 01 0 0 0 04 0 0 0 05 0 0 0 06 0 0 0 07 0 0 0 08 0 0 0 09 0 0 0 10 0 0 0 11 0 0 0 12 0 0 0 13 0 0 0 14 0 0 0 15 0 0 0 16 0 0 0 17 0 0 0 18 0 0 0 19 0 0 0 20 0 0 0 21 0 0 0 22 0 0 0 23 0 0 0 -
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 25 00 0 0 01 0 0 04 0 0 05 0 0 06 0 0 07 0 0 08 0 0 09 0 0 10 0 0 11 0 0 12 0 0 13 0 0 14 0 0 15 0 0 16 0 0 17 0 0 18 0 0 19 0 0 20 0 0 21 0 0 22 0 0 23 0 0 - 0 sec Highest CPU-cost vacuum
-
Locks
Locks by types
Key values
- unknown Main Lock Type
- 0 locks Total
Most frequent waiting queries (N)
Rank Count Total time Min time Max time Avg duration Query NO DATASET
Queries that waited the most
Rank Wait time Query NO DATASET
-
Queries
Queries by type
Key values
- 5,612 Total read queries
- 674 Total write queries
Queries by database
Key values
- unknown Main database
- 6,535 Requests
- 7h55m41s (unknown)
- Main time consuming database
Queries by user
Key values
- unknown Main user
- 6,535 Requests
User Request type Count Duration unknown Total 6,535 7h55m41s copy to 449 1h56m25s cte 77 13m33s ddl 2 51s151ms delete 4 7s216ms insert 128 2h50m17s others 249 23m13s select 5,612 2h28m1s update 14 3m12s Duration by user
Key values
- 7h55m41s (unknown) Main time consuming user
User Request type Count Duration unknown Total 6,535 7h55m41s copy to 449 1h56m25s cte 77 13m33s ddl 2 51s151ms delete 4 7s216ms insert 128 2h50m17s others 249 23m13s select 5,612 2h28m1s update 14 3m12s Queries by host
Key values
- unknown Main host
- 6,535 Requests
- 7h55m41s (unknown)
- Main time consuming host
Queries by application
Key values
- unknown Main application
- 6,535 Requests
- 7h55m41s (unknown)
- Main time consuming application
Number of cancelled queries
Key values
- 2 per second Cancelled query Peak
- 2026-06-25 21:07:01 Date
Number of cancelled queries (5 minutes period)
NO DATASET
Queries generating the most cancellation (N)
Rank Count Query 1 5 select arp.id_apontamento_reporte_conduta, arp.id_aluno_matricula, arp.id_turma, arp.id_nota_periodo_aluno, arp.data, arp.id_tipo_reporte_conduta, arp.id_horario_turma, arp.id_disciplina, arp.consideracoes, arp.id_apontamento_reporte_conduta as id_apontamento_reporte_conduta_servidor from apontamento_reporte_conduta arp inner join turma t on t.id_turma = arp.id_turma where t.id_turma in (...) and (exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_turma = arp.id_turma and d.id_disciplina = arp.id_disciplina and tp.id_turma in (...) and tp.id_cidadao = ?) or exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = t.id_turma and tras.id_cidadao = ? and arp.id_disciplina is null)) and exists ( select null from registro_lancamento_reporte_conduta registro where registro.data_atualizacao > ? and arp.id_turma = registro.id_turma and arp.id_aluno_matricula = registro.id_aluno_matricula and arp.id_nota_periodo_aluno = registro.id_nota_periodo_aluno);-
select arp.id_apontamento_reporte_conduta, arp.id_aluno_matricula, arp.id_turma, arp.id_nota_periodo_aluno, arp.data, arp.id_tipo_reporte_conduta, arp.id_horario_turma, arp.id_disciplina, arp.consideracoes, arp.id_apontamento_reporte_conduta as id_apontamento_reporte_conduta_servidor from apontamento_reporte_conduta arp inner join turma t on t.id_turma = arp.id_turma where t.id_turma in ('260013418') and (exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_turma = arp.id_turma and d.id_disciplina = arp.id_disciplina and tp.id_turma in ('260013418') and tp.id_cidadao = '2241033') or exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = t.id_turma and tras.id_cidadao = '2241033' and arp.id_disciplina is null)) and exists ( select null from registro_lancamento_reporte_conduta registro where registro.data_atualizacao > '2026-06-25 08:45:34.753' and arp.id_turma = registro.id_turma and arp.id_aluno_matricula = registro.id_aluno_matricula and arp.id_nota_periodo_aluno = registro.id_nota_periodo_aluno);
Duration: 1s377ms
Bind query: yes -
select arp.id_apontamento_reporte_conduta, arp.id_aluno_matricula, arp.id_turma, arp.id_nota_periodo_aluno, arp.data, arp.id_tipo_reporte_conduta, arp.id_horario_turma, arp.id_disciplina, arp.consideracoes, arp.id_apontamento_reporte_conduta as id_apontamento_reporte_conduta_servidor from apontamento_reporte_conduta arp inner join turma t on t.id_turma = arp.id_turma where t.id_turma in ('260006825') and (exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_turma = arp.id_turma and d.id_disciplina = arp.id_disciplina and tp.id_turma in ('260006825') and tp.id_cidadao = '2014324') or exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = t.id_turma and tras.id_cidadao = '2014324' and arp.id_disciplina is null)) and exists ( select null from registro_lancamento_reporte_conduta registro where registro.data_atualizacao > '2026-06-24 10:12:08.133' and arp.id_turma = registro.id_turma and arp.id_aluno_matricula = registro.id_aluno_matricula and arp.id_nota_periodo_aluno = registro.id_nota_periodo_aluno);
Duration: 1s149ms
Bind query: yes -
select arp.id_apontamento_reporte_conduta, arp.id_aluno_matricula, arp.id_turma, arp.id_nota_periodo_aluno, arp.data, arp.id_tipo_reporte_conduta, arp.id_horario_turma, arp.id_disciplina, arp.consideracoes, arp.id_apontamento_reporte_conduta as id_apontamento_reporte_conduta_servidor from apontamento_reporte_conduta arp inner join turma t on t.id_turma = arp.id_turma where t.id_turma in ('260008763') and (exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_turma = arp.id_turma and d.id_disciplina = arp.id_disciplina and tp.id_turma in ('260008763') and tp.id_cidadao = '2616075') or exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = t.id_turma and tras.id_cidadao = '2616075' and arp.id_disciplina is null)) and exists ( select null from registro_lancamento_reporte_conduta registro where registro.data_atualizacao > '2026-06-25 08:37:18.566' and arp.id_turma = registro.id_turma and arp.id_aluno_matricula = registro.id_aluno_matricula and arp.id_nota_periodo_aluno = registro.id_nota_periodo_aluno);
Duration: 1s127ms
Bind query: yes
2 2 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 cidadao.nome == = ? and uf.id_municipio = ? order by cidadao.nome;-
select sum(fad.falta_nao_justificada)::int as falta_nao_justificada, sum(fad.falta_justificada)::int as falta_justificada, coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in ( select amd.id_disciplina from aluno_matr_dispensa_disciplina amd where amd.id_aluno_matricula = fad.id_aluno_matricula and amd.id_turma = fad.id_turma) and fad.id_aluno_matricula = '4152034' and amt.id_turma = '260014456' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), fad.id_nota_periodo_aluno;
Duration: 3s958ms
Bind query: yes -
select sum(fad.falta_nao_justificada)::int as falta_nao_justificada, sum(fad.falta_justificada)::int as falta_justificada, coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in ( select amd.id_disciplina from aluno_matr_dispensa_disciplina amd where amd.id_aluno_matricula = fad.id_aluno_matricula and amd.id_turma = fad.id_turma) and fad.id_aluno_matricula = '4152034' and amt.id_turma = '260014456' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), fad.id_nota_periodo_aluno;
Duration: 3s423ms
Bind query: yes -
select sum(fad.falta_nao_justificada)::int as falta_nao_justificada, sum(fad.falta_justificada)::int as falta_justificada, coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in ( select amd.id_disciplina from aluno_matr_dispensa_disciplina amd where amd.id_aluno_matricula = fad.id_aluno_matricula and amd.id_turma = fad.id_turma) and fad.id_aluno_matricula = '3215251' and amt.id_turma = '240017920' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), fad.id_nota_periodo_aluno;
Duration: 2s876ms
Bind query: yes -
select count(*) as contagem from ( select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.nome, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, am.id_aluno_matr_status as "idAlunoMatrStatus", ams.descricao as situacao, ( select count(*) from call_center.notificacao_aluno na where na.id_cidadao = cidadao.id_cidadao) as num_notificacoes, case when am.id_aluno_matr_status = 1 and amt.id_turma is not null then ( select json_agg(r.* order by dia)::text as r from ( select ultimos_dias.dia, ultimos_dias.data, ultimos_dias.fj, ultimos_dias.fnj, case when ultimos_dias.chamada_pendente then 'NAO_REALIZADA' when ultimos_dias.fj = 0 and ultimos_dias.fnj = 0 then 'SEM_FALTA' when ultimos_dias.fnj > 0 and ultimos_dias.aulas = ultimos_dias.fnj then 'FALTAS_NAO_JUST_TODAS_AULAS' when ultimos_dias.fnj > 0 then 'FALTAS_NAO_JUST' when ultimos_dias.fj > 0 then 'FALTAS_JUST' end as situacao from ( select fam.data as dia, to_char(fam.data, 'dd/MM/yyyy') as data, fam.aulas, coalesce(faltas_global.fj, 0) + coalesce(faltas_disciplina.fj, 0) as fj, coalesce(faltas_global.fnj, 0) + coalesce(faltas_disciplina.fnj, 0) as fnj, ((fam.flg_apontamento_global is true and not exists ( select null from registro_falta_global_diario where id_turma = fam.id_turma and data_referencia = fam.data)) or (fam.flg_apontamento_global is false and exists ( select null from ( select unnest(fam.disciplinas) as id_disciplina) as disciplinas left join registro_falta_disciplina_diario registro_falta on registro_falta.id_turma = fam.id_turma and registro_falta.id_disciplina = disciplinas.id_disciplina and registro_falta.data_referencia = fam.data where registro_falta.id_turma is null))) as chamada_pendente from call_center.falta_aluno_mes fam left join lateral ( select case when fagd.flg_justificada is true then 1 else 0 end as fj, case when fagd.flg_justificada is false then 1 else 0 end as fnj from falta_aluno_globalizada_diario fagd where fagd.id_aluno_matricula = fam.id_aluno_matricula and fagd.id_turma = fam.id_turma and fagd.data = fam.data) as faltas_global on fam.flg_apontamento_global is true left join lateral ( select count( case when fadd.flg_justificada is true then 1 else null end) as fj, count( case when fadd.flg_justificada is false then 1 else null end) as fnj from falta_aluno_disciplina_diario fadd where fadd.id_aluno_matricula = fam.id_aluno_matricula and fadd.id_turma = fam.id_turma and fadd.data = fam.data) as faltas_disciplina on fam.flg_apontamento_global is false where fam.id_aluno_matricula = amt.id_aluno_matricula and fam.id_turma = amt.id_turma and fam.data < current_date order by fam.data desc limit 5) as ultimos_dias order by ultimos_dias.data) as r) else null end as "ultimosDias" from aluno_matricula am inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 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 left 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 where cidadao.id_instituicao = '92' and am.id_unidade_funcional = '607940' and am.flg_matricula_atual is true and ano.ano = '2026' and ano.semestre is null and exists ( select null from call_center.notificacao_aluno where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.ano = '2026') order by "nome" asc, "nome" asc) tabela;
Duration: 875ms
Bind query: yes
3 2 select sum(fad.falta_nao_justificada)::int as falta_nao_justificada, sum(fad.falta_justificada)::int as falta_justificada, coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in ( select amd.id_disciplina from aluno_matr_dispensa_disciplina amd where amd.id_aluno_matricula = fad.id_aluno_matricula and amd.id_turma = fad.id_turma) and fad.id_aluno_matricula = ? and amt.id_turma = ? group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), fad.id_nota_periodo_aluno;4 1 select count(*) as contagem from ( select am.id_aluno_matricula, aluno.codigo as matricula, cidadao.nome, curso.sigla as curso, serie.sigla as serie, turma.codigo as turma, am.id_aluno_matr_status AS "idAlunoMatrStatus", ams.descricao as situacao, ( select count(*) from call_center.notificacao_aluno na where na.id_cidadao = cidadao.id_cidadao) as num_notificacoes, case when am.id_aluno_matr_status = ? and amt.id_turma is not null then ( select json_agg(r.* order by dia)::text as r from ( select ultimos_dias.dia, ultimos_dias.data, ultimos_dias.fj, ultimos_dias.fnj, case when ultimos_dias.chamada_pendente then ? when ultimos_dias.fj = ? and ultimos_dias.fnj = ? then ? when ultimos_dias.fnj > ? and ultimos_dias.aulas = ultimos_dias.fnj then ? when ultimos_dias.fnj > ? then ? when ultimos_dias.fj > ? then ? end as situacao from ( select fam.data as dia, to_char(fam.data, ?) as data, fam.aulas, coalesce(faltas_global.fj, ?) + coalesce(faltas_disciplina.fj, ?) as fj, coalesce(faltas_global.fnj, ?) + coalesce(faltas_disciplina.fnj, ?) as fnj, ((fam.flg_apontamento_global is true and not exists ( select null from registro_falta_global_diario where id_turma = fam.id_turma and data_referencia = fam.data)) or (fam.flg_apontamento_global is false and exists ( select null from ( select unnest(fam.disciplinas) as id_disciplina) as disciplinas left join registro_falta_disciplina_diario registro_falta on registro_falta.id_turma = fam.id_turma and registro_falta.id_disciplina = disciplinas.id_disciplina and registro_falta.data_referencia = fam.data where registro_falta.id_turma is null))) as chamada_pendente from call_center.falta_aluno_mes fam left join lateral ( select case when fagd.flg_justificada is true then ? else ? end as fj, case when fagd.flg_justificada is false then ? else ? end as fnj from falta_aluno_globalizada_diario fagd where fagd.id_aluno_matricula = fam.id_aluno_matricula and fagd.id_turma = fam.id_turma and fagd.data = fam.data) as faltas_global on fam.flg_apontamento_global is true left join lateral ( select count( case when fadd.flg_justificada is true then ? else null end) as fj, count( case when fadd.flg_justificada is false then ? else null end) as fnj from falta_aluno_disciplina_diario fadd where fadd.id_aluno_matricula = fam.id_aluno_matricula and fadd.id_turma = fam.id_turma and fadd.data = fam.data) as faltas_disciplina on fam.flg_apontamento_global is false where fam.id_aluno_matricula = amt.id_aluno_matricula and fam.id_turma = amt.id_turma and fam.data < current_date order by fam.data desc limit ?) as ultimos_dias order by ultimos_dias.data) as r) else null end AS "ultimosDias" from aluno_matricula am inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? 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 left 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 where cidadao.id_instituicao = ? and am.id_unidade_funcional = ? and am.flg_matricula_atual is true and ano.ano = ? and ano.semestre is null and exists ( select null from call_center.notificacao_aluno where notificacao_aluno.id_aluno_matricula = am.id_aluno_matricula and notificacao_aluno.ano = ?) order by "nome" asc, "nome" asc) tabela;5 1 select ; -
Top Queries
Histogram of query times
Key values
- 3,573 500-1000ms duration
Slowest individual queries
Rank Duration Query 1 1h39m50s 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) 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-25 01:45:03 - Bind query: yes ]
2 13m17s insert into consulta.conteudo_curricular_ministrado (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, planejado, planejado_analise_ling, realizado, realizado_analise_ling, realizado_bimestre_1, realizado_bimestre_2, realizado_bimestre_3, realizado_bimestre_4) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional as rf_professor, cidadao.nome as nome_professor, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = 2) as integer) as planejado, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = 4) as integer) as planejado_analise_ling, coalesce(realizado.conteudo_ministrado, 0) as realizado, coalesce(realizado.conteudo_analise_ling_ministrado, 0) as realizado_analise_ling, coalesce(realizado_bimestre.ministrado_bimestre_1, 0) as realizado_bimestre_1, coalesce(realizado_bimestre.ministrado_bimestre_2, 0) as realizado_bimestre_2, coalesce(realizado_bimestre.ministrado_bimestre_3, 0) as realizado_bimestre_3, coalesce(realizado_bimestre.ministrado_bimestre_4, 0) as realizado_bimestre_4 from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina on cc.id_disciplina = disciplina.id_disciplina inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo on calendario_periodo.id_calendario = escola_calendario.id_calendario left join turma_componente tc on tc.id_turma = turma.id_turma and tc.id_componente_curricular = cc.id_componente_curricular left join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente left join cidadao on tcs.id_cidadao = cidadao.id_cidadao left join servidor on servidor.id_cidadao = cidadao.id_cidadao left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento, cast(count(distinct case when ccmd.id_conteudo_analise_ling is null then ccmd.id_conteudo_curricular else null end) as integer) as conteudo_ministrado, cast(count(distinct ccmd.id_conteudo_curricular || '_' || ccmd.id_conteudo_analise_ling) as integer) as conteudo_analise_ling_ministrado from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento) as realizado on realizado.id_turma = ts.id_turma and realizado.id_serie = ts.id_serie and realizado.id_componente_curricular = cc.id_componente_curricular and realizado.id_periodo_planejamento = calendario_periodo.ordem left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno, sum( case when ccmd.id_periodo_planejamento = 1 then 1 else 0 end) as ministrado_bimestre_1, sum( case when ccmd.id_periodo_planejamento = 2 then 1 else 0 end) as ministrado_bimestre_2, sum( case when ccmd.id_periodo_planejamento = 3 then 1 else 0 end) as ministrado_bimestre_3, sum( case when ccmd.id_periodo_planejamento = 4 then 1 else 0 end) as ministrado_bimestre_4 from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno) as realizado_bimestre on realizado_bimestre.id_turma = ts.id_turma and realizado_bimestre.id_serie = ts.id_serie and realizado_bimestre.id_componente_curricular = cc.id_componente_curricular and realizado_bimestre.id_nota_periodo_aluno = calendario_periodo.ordem where disciplina.flg_conteudo_curricular is true and cc.flg_aponta_conteudo_curricular is true and exists ( select null from conteudo_curricular_componente where id_componente_curricular = cc.id_componente_curricular);[ Date: 2026-06-25 01:20:11 - Bind query: yes ]
3 9m26s 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 (82) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) 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-25 00:12:17 - Bind query: yes ]
4 7m49s COPY log.log_2025_12 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:51:08 ]
5 7m8s insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, 0) as integer) as fnj, case when dias_letivos.dias_letivos > 0 then (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, 0) as integer) as fnj, case when aulas.aulas > 0 then (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false;[ Date: 2026-06-25 00:24:27 - Bind query: yes ]
6 5m35s 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 cc.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 inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo periodo1 on periodo1.id_calendario = escola_calendario.id_calendario and periodo1.ordem = 1 inner join calendario_periodo periodo2 on periodo2.id_calendario = escola_calendario.id_calendario and periodo2.ordem = 2 inner join calendario_periodo periodo3 on periodo3.id_calendario = escola_calendario.id_calendario and periodo3.ordem = 3 inner join calendario_periodo periodo4 on periodo4.id_calendario = escola_calendario.id_calendario and periodo4.ordem = 4 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso left join lateral ( select case when ano.semestre = 2 then periodo3.data_inicio else periodo1.data_inicio end as inicio, case when ano.semestre = 1 then periodo2.data_final else periodo4.data_final end as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario and calendario_periodo_data.data between datas.inicio and datas.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 turma_periodo on turma_periodo.id_turma = amt.id_turma and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim 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 cc on cc.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 = cc.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 (72) and am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false and cc.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 = cc.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-25 01:29:17 - Bind query: yes ]
7 5m1s COPY log.log_2025_07 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:27:13 ]
8 4m42s insert into consulta.apontamento_turma_periodo (id_turma, id_serie, id_nota_periodo_aluno, num_alunos_enturmados, possui_apont_nota, possui_apont_falta_disc, possui_apont_falta_global, possui_apont_aval_desc, pendencia_apont_nota, pendencia_apont_falta_disc, pendencia_apont_falta_global, pendencia_apont_aval_desc) select turma.id_turma, ts.id_serie, periodo.id_nota_periodo_aluno, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as num_alunos_enturmados, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = na.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and coalesce(am.flg_parecer_descritivo, false) is false and (na.nota is not null or na.id_conceito_avaliacao is not null or na.flg_nao_compareceu is true) and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_nota, case when serie.flg_apon_falta_globalizado is false and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = fad.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fad.qtd_faltas is not null and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fag.qtd_faltas is not null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join apontamento_avaliacao_desc aad on aad.id_aluno_matricula = amt.id_aluno_matricula and aad.id_turma = amt.id_turma and aad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_aval_desc, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) or (turma.flg_atividade_avaliativa is true and case when periodo.id_nota_periodo_aluno = 5 then not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) and (na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) else not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) end)) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_nota, case when serie.flg_apon_falta_globalizado is false and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas = true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and fad.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((fad.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_disciplina_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma left join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and flg_aponta_faltas = true) and ((fag.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_global_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and ead.flg_descritor = false and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= periodo.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) and emap.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and am.id_aluno_matr_status = 1 and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_turma = ts.id_turma and aead.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno) and (area.flg_exclusivo_necessidade_esp is false or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) and emad.flg_ativo is true) then 1 else 0 end as pendencia_apont_aval_desc from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso cross join nota_periodo_aluno periodo left join turma_periodo on turma_periodo.id_turma = turma.id_turma and turma_periodo.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno where turma.id_turma_status = 1 and turma.flg_especial is false and (serie.id_forma_avaliacao = 3 or exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and (flg_aponta_notas = true or flg_aponta_faltas = true))) and (turma_periodo.id_nota_periodo_aluno is not null or periodo.id_nota_periodo_aluno = 5);[ Date: 2026-06-25 00:14:09 - Bind query: yes ]
9 4m37s COPY log.log_2025_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:14:14 ]
10 4m35s COPY log.log_2025_10 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:39:15 ]
11 4m33s COPY log.log_2025_05 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:18:47 ]
12 4m30s select turma_periodo.id_nota_periodo_aluno, am.id_aluno_matricula, uf.codigo as codigo_escola, uf.nome as escola, curso_turma.sigla as curso, serie_matricula.sigla as serie_matricula, t.codigo as turma, amt.chamada, a.codigo as matricula, c.denominacao as aluno, cc.id_disciplina, na.flg_nao_compareceu, cc.flg_aponta_notas, case when amdd.flg_dispensado_todos_periodos is true and amdd.id_disciplina = d.id_disciplina then amdd.flg_dispensado_todos_periodos is true and amdd.id_disciplina = d.id_disciplina when (amdd.id_motivo_dispensa_disciplina is not null and amdd.id_disciplina = d.id_disciplina and array[turma_periodo.id_nota_periodo_aluno] <@ amdd.periodos) then (amdd.id_motivo_dispensa_disciplina is not null and amdd.id_disciplina = d.id_disciplina and array[turma_periodo.id_nota_periodo_aluno] <@ amdd.periodos) when (mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and array[turma_periodo.id_nota_periodo_aluno] <@ mdp.periodos) then (mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and array[turma_periodo.id_nota_periodo_aluno] <@ mdp.periodos) else false end as flg_dispensado, case when (amdd.id_motivo_dispensa_disciplina is not null and amdd.id_disciplina = d.id_disciplina and array[turma_periodo.id_nota_periodo_aluno] <@ amdd.periodos) then null when na.flg_nao_compareceu is true then 0 when (curso_turma.flg_permite_recuperacao_semestral is true and exists ( select null from nota_aluno na where id_aluno_matricula = am.id_aluno_matricula and id_disciplina = d.id_disciplina and id_nota_periodo_aluno = 10 and id_turma = t.id_turma) and ( select avg(na.nota) from nota_aluno na where id_aluno_matricula = am.id_aluno_matricula and id_disciplina = d.id_disciplina and id_nota_periodo_aluno in (1, 2) and id_turma = t.id_turma) < ( select na.nota from nota_aluno na where id_aluno_matricula = am.id_aluno_matricula and id_disciplina = d.id_disciplina and id_nota_periodo_aluno = 10 and id_turma = t.id_turma) and turma_periodo.id_nota_periodo_aluno in (1, 2)) then ( select na.nota from nota_aluno na where id_aluno_matricula = am.id_aluno_matricula and id_disciplina = d.id_disciplina and id_nota_periodo_aluno = 10 and id_turma = t.id_turma) else na.nota end as nota, case when amdd.id_motivo_dispensa_disciplina is not null then null else ca.sigla end as conceito, cc.flg_aponta_faltas, serie_turma.num_casas_decimais_nota, serie_turma.id_forma_avaliacao, cc.id_expressao_resultado_componente, curso_turma.serie_duracao, c.sexo as genero, raca_cor.descricao, case when exists ( select null from programa_social_aluno psa where psa.id_cidadao = am.id_cidadao and (psa.data_fim_participacao::date >= now()::date or psa.data_fim_participacao is null)) then 'Sim' else 'Não' end as programa_social, case when c.flg_necessidade_especial then 'Sim' else 'Não' end as flg_necessidade_especial, ( select string_agg(ne.descricao, ', ' order by ne.descricao) from cidadao_necessidade_especial cne inner join necessidade_especial ne on ne.id_necessidade_especial = cne.id_necessidade_especial where cne.id_cidadao = c.id_cidadao) as necessidade_especial, cc.id_forma_avaliacao_componente from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = a.id_cidadao inner join turma t on amt.id_turma = t.id_turma inner join serie serie_matricula on serie_matricula.id_serie = am.id_serie inner join turma_serie ts on ts.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join serie serie_turma on serie_turma.id_serie = ts.id_serie inner join curso curso_turma on curso_turma.id_curso = serie_turma.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = serie_matricula.id_procedimento_avaliacao inner join turma_periodo on turma_periodo.id_turma = t.id_turma 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 left join nota_aluno na on (na.id_disciplina = d.id_disciplina and na.id_aluno_matricula = am.id_aluno_matricula and na.id_turma = amt.id_turma and turma_periodo.id_nota_periodo_aluno = na.id_nota_periodo_aluno) left join aluno_matr_dispensa_disciplina amdd on (amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = d.id_disciplina) left join lateral sp_obter_conceito_avaliacao_nota_periodo ('98', na.id_aluno_matricula, na.id_nota_periodo_aluno, na.nota) as id_conceito_covnersao_nota on true left join conceito_avaliacao ca on coalesce(na.id_conceito_avaliacao, id_conceito_covnersao_nota) = ca.id_conceito_avaliacao left join aluno_matr_dispensa_periodo amdp on am.id_aluno_matricula = amdp.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo 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) where t.flg_organizada = true and curso_turma.id_instituicao = '98' and ano_semestre.ano = '2026' and uf.id_municipio = '330350' and uf.id_unidade_funcional in ( select '607174' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607174' and id_assunto_hierarquia_unidade = '81') and am.id_aluno_matr_status in (1, 2, 7) and serie_turma.id_forma_avaliacao in (1, 2, 4) order by uf.nome, curso_turma.sigla, serie_matricula.sigla, t.codigo, amt.chamada, d.descricao, turma_periodo.id_nota_periodo_aluno;[ Date: 2026-06-25 16:33:53 - Bind query: yes ]
13 4m20s COPY log.log_2026_05 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 22:04:13 ]
14 4m16s COPY log.log_2026_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:59:53 ]
15 4m12s 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) select cidadao.id_instituicao, true 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, 1 as aulas, case when falta.id_aluno_matricula is null then 0 else 1 end as falta 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false where cidadao.id_instituicao in (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is true and calendario_data.id_motivo_dia_nao_letivo is null and (calendario_periodo_data.dia_semana between 0 and 4 or calendario_data.id_motivo_dia_letivo_extra is not null);[ Date: 2026-06-25 00:05:13 - Bind query: yes ]
16 4m4s COPY log.log_2025_09 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:34:40 ]
17 4m3s COPY log.log_2025_11 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:43:19 ]
18 3m24s COPY log.log_2025_06 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:22:11 ]
19 3m22s COPY log.log_2025_08 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;[ Date: 2026-06-25 21:30:35 ]
20 3m5s 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 arredondar_frequencia_aluno (ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), falta_aluno_mes.id_instituicao) 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 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 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 arredondar_frequencia_aluno (ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), falta_aluno_mes.id_instituicao) 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-25 01:49:27 - Bind query: yes ]
Time consuming queries (N)
Rank Total duration Times executed Min duration Max duration Avg duration Query 1 1h49m16s 2 9m26s 1h39m50s 54m38s 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, ?) as frequencia_ate_data_atual on true 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 in (...) and (am.id_aluno_matr_status = ? or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= current_date) 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 #1
Day Hour Count Duration Avg duration Jun 25 00 1 9m26s 9m26s 01 1 1h39m50s 1h39m50s -
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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) 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-25 01:45:03 Duration: 1h39m50s Bind query: yes
-
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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 (82) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) 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-25 00:12:17 Duration: 9m26s Bind query: yes
2 24m28s 432 502ms 31s665ms 3s398ms select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then ? when ministrados < total then ? || asterisco else ? || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then ? else ? end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then ? else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo (?, c.serie_duracao = ?, c.id_periodicidade_apontamento = ?) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in (...) and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo (?, c.serie_duracao = ?, c.id_periodicidade_apontamento = ?) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Jun 25 06 1 732ms 732ms 07 9 50s744ms 5s638ms 08 45 1m11s 1s599ms 09 41 1m55s 2s807ms 10 33 1m56s 3s515ms 11 57 2m22s 2s499ms 12 31 2m22s 4s601ms 13 51 2m23s 2s813ms 14 42 1m40s 2s399ms 15 64 2m5s 1s957ms 16 35 6m56s 11s892ms 17 6 18s657ms 3s109ms 18 4 9s151ms 2s287ms 19 8 5s730ms 716ms 21 5 9s289ms 1s857ms -
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:12:32 Duration: 31s665ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('2', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('2', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:23:22 Duration: 31s257ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:20:23 Duration: 31s208ms Bind query: yes
3 17m54s 1,085 500ms 3s827ms 990ms select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and fadd.id_turma in (...) and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = ?) and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and fadd.id_turma in (...) and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = ?);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Jun 25 00 2 1s584ms 792ms 04 1 1s113ms 1s113ms 05 4 5s621ms 1s405ms 06 5 3s880ms 776ms 07 110 1m34s 860ms 08 126 2m13s 1s61ms 09 76 1m23s 1s101ms 10 53 49s493ms 933ms 11 51 48s150ms 944ms 12 27 25s551ms 946ms 13 123 1m51s 909ms 14 174 3m8s 1s84ms 15 108 1m59s 1s105ms 16 67 1m9s 1s30ms 17 21 15s82ms 718ms 18 36 28s56ms 779ms 19 39 32s702ms 838ms 20 22 16s200ms 736ms 21 25 25s253ms 1s10ms 22 11 13s800ms 1s254ms 23 4 6s898ms 1s724ms -
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260012803', '260012805', '260012806', '260012807', '260012808', '260012809', '260012810', '260012811', '260012812', '260012813', '260012814', '260012815', '260012817') and fadd.id_turma in ('260012803', '260012805', '260012806', '260012807', '260012808', '260012809', '260012810', '260012811', '260012812', '260012813', '260012814', '260012815', '260012817') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1768026') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260012803', '260012805', '260012806', '260012807', '260012808', '260012809', '260012810', '260012811', '260012812', '260012813', '260012814', '260012815', '260012817') and fadd.id_turma in ('260012803', '260012805', '260012806', '260012807', '260012808', '260012809', '260012810', '260012811', '260012812', '260012813', '260012814', '260012815', '260012817') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1768026');
Date: 2026-06-25 09:02:22 Duration: 3s827ms Bind query: yes
-
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and fadd.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1828618') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and fadd.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1828618');
Date: 2026-06-25 14:48:48 Duration: 3s686ms Bind query: yes
-
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260001206', '260001207', '260001208', '260001209', '260001210', '260001211', '260001212', '260001213', '260001214', '260001215', '260001216', '260001217', '260001218', '260001219', '260006499') and fadd.id_turma in ('260001206', '260001207', '260001208', '260001209', '260001210', '260001211', '260001212', '260001213', '260001214', '260001215', '260001216', '260001217', '260001218', '260001219', '260006499') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1565260') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260001206', '260001207', '260001208', '260001209', '260001210', '260001211', '260001212', '260001213', '260001214', '260001215', '260001216', '260001217', '260001218', '260001219', '260006499') and fadd.id_turma in ('260001206', '260001207', '260001208', '260001209', '260001210', '260001211', '260001212', '260001213', '260001214', '260001215', '260001216', '260001217', '260001218', '260001219', '260006499') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1565260');
Date: 2026-06-25 13:20:47 Duration: 3s623ms Bind query: yes
4 17m20s 490 1s880ms 3s944ms 2s123ms select id_aluno_matricula, chamada, ? as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, faltas_mes::int, (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = ? then case when s.flg_serie_atividade_complementar is true then ? else ? end when t.id_tipo_turma = ? then ? when t.id_tipo_turma = ? then ? end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma)) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), ?)::int as faltas_mes, coalesce(( select sum(coalesce(falta_justificada, ?) + coalesce(falta_nao_justificada, ?)) from falta_anterior_aluno_globalizada fa where fa.id_aluno_matricula = a.id_aluno_matricula), ?)::int as faltas_anteriores from aluno_turma_diario_impresso a cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = ? left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = ? and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between ? and ? or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Jun 25 06 1 2s150ms 2s150ms 07 42 1m24s 2s10ms 08 92 3m14s 2s116ms 09 65 2m18s 2s129ms 10 42 1m30s 2s154ms 11 40 1m25s 2s128ms 12 10 20s790ms 2s79ms 13 43 1m39s 2s311ms 14 43 1m31s 2s127ms 15 57 1m56s 2s47ms 16 33 1m8s 2s75ms 17 15 31s483ms 2s98ms 18 6 14s697ms 2s449ms 20 1 2s83ms 2s83ms -
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260001324' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2507' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 08:29:58 Duration: 3s944ms Bind query: yes
-
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260000849' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2493' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 18:05:53 Duration: 3s539ms Bind query: yes
-
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260002184' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2559' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 13:22:02 Duration: 3s287ms Bind query: yes
5 13m17s 1 13m17s 13m17s 13m17s insert into consulta.conteudo_curricular_ministrado (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, planejado, planejado_analise_ling, realizado, realizado_analise_ling, realizado_bimestre_1, realizado_bimestre_2, realizado_bimestre_3, realizado_bimestre_4) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional as rf_professor, cidadao.nome as nome_professor, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = ?) as integer) as planejado, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = ?) as integer) as planejado_analise_ling, coalesce(realizado.conteudo_ministrado, ?) as realizado, coalesce(realizado.conteudo_analise_ling_ministrado, ?) as realizado_analise_ling, coalesce(realizado_bimestre.ministrado_bimestre_1, ?) as realizado_bimestre_1, coalesce(realizado_bimestre.ministrado_bimestre_2, ?) as realizado_bimestre_2, coalesce(realizado_bimestre.ministrado_bimestre_3, ?) as realizado_bimestre_3, coalesce(realizado_bimestre.ministrado_bimestre_4, ?) as realizado_bimestre_4 from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina on cc.id_disciplina = disciplina.id_disciplina inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo on calendario_periodo.id_calendario = escola_calendario.id_calendario left join turma_componente tc on tc.id_turma = turma.id_turma and tc.id_componente_curricular = cc.id_componente_curricular left join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente left join cidadao on tcs.id_cidadao = cidadao.id_cidadao left join servidor on servidor.id_cidadao = cidadao.id_cidadao left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento, cast(count(distinct case when ccmd.id_conteudo_analise_ling is null then ccmd.id_conteudo_curricular else null end) as integer) as conteudo_ministrado, cast(count(distinct ccmd.id_conteudo_curricular || ? || ccmd.id_conteudo_analise_ling) as integer) as conteudo_analise_ling_ministrado from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento) as realizado on realizado.id_turma = ts.id_turma and realizado.id_serie = ts.id_serie and realizado.id_componente_curricular = cc.id_componente_curricular and realizado.id_periodo_planejamento = calendario_periodo.ordem left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno, sum( case when ccmd.id_periodo_planejamento = ? then ? else ? end) as ministrado_bimestre_1, sum( case when ccmd.id_periodo_planejamento = ? then ? else ? end) as ministrado_bimestre_2, sum( case when ccmd.id_periodo_planejamento = ? then ? else ? end) as ministrado_bimestre_3, sum( case when ccmd.id_periodo_planejamento = ? then ? else ? end) as ministrado_bimestre_4 from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno) as realizado_bimestre on realizado_bimestre.id_turma = ts.id_turma and realizado_bimestre.id_serie = ts.id_serie and realizado_bimestre.id_componente_curricular = cc.id_componente_curricular and realizado_bimestre.id_nota_periodo_aluno = calendario_periodo.ordem where disciplina.flg_conteudo_curricular is true and cc.flg_aponta_conteudo_curricular is true and exists ( select null from conteudo_curricular_componente where id_componente_curricular = cc.id_componente_curricular);Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 25 01 1 13m17s 13m17s -
insert into consulta.conteudo_curricular_ministrado (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, planejado, planejado_analise_ling, realizado, realizado_analise_ling, realizado_bimestre_1, realizado_bimestre_2, realizado_bimestre_3, realizado_bimestre_4) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional as rf_professor, cidadao.nome as nome_professor, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = 2) as integer) as planejado, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = 4) as integer) as planejado_analise_ling, coalesce(realizado.conteudo_ministrado, 0) as realizado, coalesce(realizado.conteudo_analise_ling_ministrado, 0) as realizado_analise_ling, coalesce(realizado_bimestre.ministrado_bimestre_1, 0) as realizado_bimestre_1, coalesce(realizado_bimestre.ministrado_bimestre_2, 0) as realizado_bimestre_2, coalesce(realizado_bimestre.ministrado_bimestre_3, 0) as realizado_bimestre_3, coalesce(realizado_bimestre.ministrado_bimestre_4, 0) as realizado_bimestre_4 from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina on cc.id_disciplina = disciplina.id_disciplina inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo on calendario_periodo.id_calendario = escola_calendario.id_calendario left join turma_componente tc on tc.id_turma = turma.id_turma and tc.id_componente_curricular = cc.id_componente_curricular left join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente left join cidadao on tcs.id_cidadao = cidadao.id_cidadao left join servidor on servidor.id_cidadao = cidadao.id_cidadao left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento, cast(count(distinct case when ccmd.id_conteudo_analise_ling is null then ccmd.id_conteudo_curricular else null end) as integer) as conteudo_ministrado, cast(count(distinct ccmd.id_conteudo_curricular || '_' || ccmd.id_conteudo_analise_ling) as integer) as conteudo_analise_ling_ministrado from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento) as realizado on realizado.id_turma = ts.id_turma and realizado.id_serie = ts.id_serie and realizado.id_componente_curricular = cc.id_componente_curricular and realizado.id_periodo_planejamento = calendario_periodo.ordem left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno, sum( case when ccmd.id_periodo_planejamento = 1 then 1 else 0 end) as ministrado_bimestre_1, sum( case when ccmd.id_periodo_planejamento = 2 then 1 else 0 end) as ministrado_bimestre_2, sum( case when ccmd.id_periodo_planejamento = 3 then 1 else 0 end) as ministrado_bimestre_3, sum( case when ccmd.id_periodo_planejamento = 4 then 1 else 0 end) as ministrado_bimestre_4 from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno) as realizado_bimestre on realizado_bimestre.id_turma = ts.id_turma and realizado_bimestre.id_serie = ts.id_serie and realizado_bimestre.id_componente_curricular = cc.id_componente_curricular and realizado_bimestre.id_nota_periodo_aluno = calendario_periodo.ordem where disciplina.flg_conteudo_curricular is true and cc.flg_aponta_conteudo_curricular is true and exists ( select null from conteudo_curricular_componente where id_componente_curricular = cc.id_componente_curricular);
Date: 2026-06-25 01:20:11 Duration: 13m17s Bind query: yes
6 10m43s 826 500ms 3s123ms 778ms select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and fadd.id_turma in (...) and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = ?) and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > ? and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and fadd.id_turma in (...) and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = ?) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > ? and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Jun 25 04 1 965ms 965ms 06 1 2s728ms 2s728ms 07 140 1m50s 789ms 08 113 1m25s 753ms 09 43 31s22ms 721ms 10 122 1m30s 739ms 11 31 22s260ms 718ms 12 2 1s477ms 738ms 13 101 1m23s 831ms 14 82 59s761ms 728ms 15 40 33s310ms 832ms 16 77 58s737ms 762ms 17 25 16s429ms 657ms 18 6 4s807ms 801ms 19 18 16s799ms 933ms 20 3 4s708ms 1s569ms 21 13 12s250ms 942ms 22 5 5s482ms 1s96ms 23 3 2s703ms 901ms -
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and fadd.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '2294095') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-22 15:48:07.499' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and fadd.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '2294095') and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-22 15:48:07.499' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina);
Date: 2026-06-25 07:41:01 Duration: 3s123ms Bind query: yes
-
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and fadd.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1713655') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-22 15:31:10.878' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and fadd.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1713655') and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-22 15:31:10.878' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina);
Date: 2026-06-25 07:51:44 Duration: 2s765ms Bind query: yes
-
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and fadd.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1767961') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-23 23:05:28.57' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and fadd.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1767961') and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-23 23:05:28.57' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina);
Date: 2026-06-25 06:41:30 Duration: 2s728ms Bind query: yes
7 9m43s 731 500ms 2s599ms 798ms select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and nota_aluno.id_turma in (...) and exists ( select null from registro_lancamento_nota_disciplina registro where registro.data_ref_sincronizacao > ? and registro.id_turma = amt.id_turma and registro.id_disciplina = nota_aluno.id_disciplina and registro.id_nota_periodo_aluno = nota_aluno.id_nota_periodo_aluno) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = ? and tp.id_turma in (...) and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Jun 25 00 13 16s295ms 1s253ms 04 2 1s27ms 513ms 06 1 825ms 825ms 07 28 27s217ms 972ms 08 86 1m11s 827ms 09 97 1m10s 725ms 10 76 53s699ms 706ms 11 63 50s336ms 798ms 12 22 17s765ms 807ms 13 98 1m28s 899ms 14 60 47s962ms 799ms 15 78 1m3s 817ms 16 62 43s948ms 708ms 17 4 2s756ms 689ms 18 2 1s369ms 684ms 19 23 15s21ms 653ms 20 7 5s615ms 802ms 21 8 6s47ms 755ms 23 1 636ms 636ms -
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and nota_aluno.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and exists ( select null from registro_lancamento_nota_disciplina registro where registro.data_ref_sincronizacao > '2026-06-25 14:30:51.733' and registro.id_turma = amt.id_turma and registro.id_disciplina = nota_aluno.id_disciplina and registro.id_nota_periodo_aluno = nota_aluno.id_nota_periodo_aluno) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '1714081' and tp.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 14:31:04 Duration: 2s599ms Bind query: yes
-
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011957', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801') and nota_aluno.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011957', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801') and exists ( select null from registro_lancamento_nota_disciplina registro where registro.data_ref_sincronizacao > '2026-06-25 11:21:37.116' and registro.id_turma = amt.id_turma and registro.id_disciplina = nota_aluno.id_disciplina and registro.id_nota_periodo_aluno = nota_aluno.id_nota_periodo_aluno) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '2703238' and tp.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011957', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 13:25:30 Duration: 2s70ms Bind query: yes
-
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and nota_aluno.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and exists ( select null from registro_lancamento_nota_disciplina registro where registro.data_ref_sincronizacao > '2026-06-25 00:14:58.065' and registro.id_turma = amt.id_turma and registro.id_disciplina = nota_aluno.id_disciplina and registro.id_nota_periodo_aluno = nota_aluno.id_nota_periodo_aluno) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '1710927' and tp.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 00:16:07 Duration: 1s955ms Bind query: yes
8 9m29s 3 1m2s 7m8s 3m9s insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, ?) as integer) as fnj, case when dias_letivos.dias_letivos > ? then (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = ? and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, ?) as integer) as fnj, case when aulas.aulas > ? then (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = ? and serie.flg_apon_falta_globalizado is false;Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 25 00 2 8m27s 4m13s 01 1 1m2s 1m2s -
insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, 0) as integer) as fnj, case when dias_letivos.dias_letivos > 0 then (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, 0) as integer) as fnj, case when aulas.aulas > 0 then (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false;
Date: 2026-06-25 00:24:27 Duration: 7m8s Bind query: yes
-
insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, 0) as integer) as fnj, case when dias_letivos.dias_letivos > 0 then (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, 0) as integer) as fnj, case when aulas.aulas > 0 then (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false;
Date: 2026-06-25 00:05:29 Duration: 1m19s Bind query: yes
-
insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, 0) as integer) as fnj, case when dias_letivos.dias_letivos > 0 then (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, 0) as integer) as fnj, case when aulas.aulas > 0 then (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false;
Date: 2026-06-25 01:21:14 Duration: 1m2s Bind query: yes
9 8m48s 43 1s70ms 35s244ms 12s287ms with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = ?)) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> ? then to_char(max(data_ocorrencia), ?) else to_char(am.data_matricula, ?) end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then ? else ? end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, ?) as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, ?) as login_aluno, coalesce(procedencia_rendimento.descricao, ?) as procedencia_rendimento, coalesce(procedencia_escola.descricao, ?) as procedencia_escola, coalesce(procedencia_modalidade.descricao, ?) as procedencia_modalidade, coalesce(dc.numero_cns, ?) as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || ? || dc.dv_rg else dc.numero_rg end else ? end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, ?) as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> ? then coalesce(?| | ct.telefone_ddd || ?, ?) || ct.telefone_numero || ?| | ct.telefone_recado_para else coalesce(?| | ct.telefone_ddd || ?, ?) || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ?)) as telefones_contato, to_char(cid.nascimento_data, ?) as data_nascimento_aluno, coalesce(dc.numero_nis, ?) as nis_aluno, coalesce(cid.email, ?) as email_aluno, coalesce(cid.email_instituicional, ?) as email_institucional_aluno, coalesce(u.email_autenticacao_externa, ?) as email_autenticacao_externa, coalesce(m.nome, ?) as municipio_nascimento, coalesce(estado_nascimento.sigla, ?) as uf_nascimento, coalesce(cid.sexo, ?) as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, ?) as raca_cor, case when cid.flg_necessidade_especial is true then ? when cid.flg_necessidade_especial is false then ? end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then ? else ? end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ? order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), ?) as tipo_necessidade, case when cidadao_saude.flg_disturbio then ? else ? end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ? order by descricao) from disturbio inner join cidadao_disturbio on cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then ? when cid.flg_atendimento_especializado is false then ? end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ? || case when cae.flg_publico then ? else ? end, ? order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), ?) as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then ? when aluno_observacoes_familia.flg_recebe_bolsa_familia then ? else ? end as bolsa_familia, coalesce(cid.nome_mae, ?) as nome_mae, coalesce( case when a.id_responsavel_tipo = ? then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, ?) as cpf_mae, coalesce(ge_mae.descricao, ?) as escolaridade_mae, coalesce(cid.profissao_mae, ?) as profissao_mae, coalesce(cid.nome_pai, ?) as nome_pai, coalesce( case when a.id_responsavel_tipo = ? then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, ?) as cpf_pai, coalesce(ge_pai.descricao, ?) as escolaridade_pai, coalesce(cid.profissao_pai, ?) as profissao_pai, coalesce(rt.descricao, ?) as responsavel, coalesce(tro.sigla, ?) as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, ?) as nome_responsavel, coalesce(usuario_responsavel.login, ?) as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, ?) as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, ?) as nis_responsavel, coalesce(resp.email, ?) as email_responsavel, coalesce(ce.endereco, ?) as logradouro, coalesce(ce.numero, ?) as numero_logradouro, coalesce(ce.bairro, ?) as bairro_logradouro, coalesce(ce.complemento, ?) as complemento_logradouro, coalesce(mun.nome, ?) as municipio_logradouro, coalesce(dis.nome, ?) as distrito_logradouro, coalesce(estado.sigla, ?) as uf_logradouro, coalesce(formatar_cep (ce.cep), ?) as cep_logradouro, coalesce(cid.numero_conta_energia, ?) as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, ?) as localizacao_diferenciada, coalesce(unidade_localizacao.nome, ?) as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = ? and uf.id_unidade_funcional = medoa.id_unidade_funcional), ?) as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, ?) as turno, coalesce(t.codigo, ?) as turma, coalesce(t.nome, ?) as nome_turma, coalesce(mp.descricao, ?) as nome_programa, case when t.flg_especial = true then ? when t.flg_especial = false then ? else ? end as tipo_turma, case when t.flg_multietapa is true then ? else ? end turma_multietapa, case when t.flg_multiseriada is true then ? else ? end as turma_multsseriada, coalesce(turma_status.descricao, ?) as situacao_turma, coalesce(ambiente_turma.num_sala::text, ?) as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else ? end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else ? end as nome_anexo, coalesce(dc.numero_matricula_cn, ?) numero_matricula_certidao, coalesce(nac.nome, ?) nacionalidade, case when a.flg_remanescente_quilombo then ? else ? end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then ? else ? end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia on aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude on cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae on ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai on ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, ?) as data_realizacao, case when amsh.flg_transferencia_interna is null then ? when amsh.flg_transferencia_interna is true then ? else ? end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit ?) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = ? and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.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 uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Jun 25 07 1 35s244ms 35s244ms 09 6 1m11s 11s917ms 10 10 2m18s 13s829ms 11 1 3s629ms 3s629ms 12 3 11s413ms 3s804ms 13 6 1m30s 15s43ms 14 12 2m18s 11s547ms 15 2 17s830ms 8s915ms 19 2 21s589ms 10s794ms -
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '98')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '98' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '607078' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607078' and id_assunto_hierarquia_unidade = '81') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 07:09:48 Duration: 35s244ms Bind query: yes
-
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '92')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '92' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '606178' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 10:27:26 Duration: 21s209ms Bind query: yes
-
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '97')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '97' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '607358' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607358' and id_assunto_hierarquia_unidade = '80') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 13:46:54 Duration: 21s149ms Bind query: yes
10 8m47s 2 57s823ms 7m49s 4m23s copy log.log_2025_12 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) to stdout;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Jun 25 20 1 57s823ms 57s823ms 21 1 7m49s 7m49s -
COPY log.log_2025_12 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 21:51:08 Duration: 7m49s
-
COPY log.log_2025_12 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 20:43:00 Duration: 57s823ms
11 6m31s 7 34s131ms 1m34s 55s993ms select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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 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 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 unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 ? and unidade_funcional.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 unidade_funcional.id_municipio = ? union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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])) 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])) 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 unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.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 unidade_funcional.id_municipio = ? order by escola, aluno;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Jun 25 10 1 54s118ms 54s118ms 13 1 37s478ms 37s478ms 14 1 34s131ms 34s131ms 15 1 1m34s 1m34s 19 3 2m51s 57s285ms -
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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 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 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 unidade_funcional.id_instituicao = '97' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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' and unidade_funcional.id_unidade_funcional in ( select '607418' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607418' and id_assunto_hierarquia_unidade = '80') and unidade_funcional.id_municipio = '330170' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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])) 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])) 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 unidade_funcional.id_instituicao = '97' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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' and unidade_funcional.id_unidade_funcional in ( select '607418' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607418' and id_assunto_hierarquia_unidade = '80') and unidade_funcional.id_municipio = '330170' order by escola, aluno;
Date: 2026-06-25 15:41:18 Duration: 1m34s Bind query: yes
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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 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 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 unidade_funcional.id_instituicao = '98' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 '30' and '100' and unidade_funcional.id_unidade_funcional in ( select '607136' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607136' and id_assunto_hierarquia_unidade = '81') and unidade_funcional.id_municipio = '330350' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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])) 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])) 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 unidade_funcional.id_instituicao = '98' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 '30' and '100' and unidade_funcional.id_unidade_funcional in ( select '607136' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607136' and id_assunto_hierarquia_unidade = '81') and unidade_funcional.id_municipio = '330350' order by escola, aluno;
Date: 2026-06-25 19:07:04 Duration: 1m1s Bind query: yes
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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 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 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 unidade_funcional.id_instituicao = '98' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '607136' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607136' and id_assunto_hierarquia_unidade = '81') and unidade_funcional.id_municipio = '330350' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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])) 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])) 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 unidade_funcional.id_instituicao = '98' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '607136' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607136' and id_assunto_hierarquia_unidade = '81') and unidade_funcional.id_municipio = '330350' order by escola, aluno;
Date: 2026-06-25 19:10:50 Duration: 56s8ms Bind query: yes
12 6m28s 94 3s542ms 7s955ms 4s130ms select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc limit ? offset ?) r;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 25 12 3 11s870ms 3s956ms 13 31 2m24s 4s668ms 14 45 2m51s 3s816ms 15 15 59s914ms 3s994ms -
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 10) r;
Date: 2026-06-25 13:26:44 Duration: 7s955ms Bind query: yes
-
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 10) r;
Date: 2026-06-25 13:25:54 Duration: 7s897ms Bind query: yes
-
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 20) r;
Date: 2026-06-25 13:21:16 Duration: 7s720ms Bind query: yes
13 6m3s 2 1m50s 4m12s 3m1s 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) select cidadao.id_instituicao, true 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, ? as aulas, case when falta.id_aluno_matricula is null then ? else ? end as falta 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, ?) as frequencia_ate_data_atual on true 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 left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false where cidadao.id_instituicao in (...) and am.id_aluno_matr_status in (...) and (am.id_aluno_matr_status = ? or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= current_date) and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is true and calendario_data.id_motivo_dia_nao_letivo is null and (calendario_periodo_data.dia_semana between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null);Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Jun 25 00 2 6m3s 3m1s -
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) select cidadao.id_instituicao, true 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, 1 as aulas, case when falta.id_aluno_matricula is null then 0 else 1 end as falta 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false where cidadao.id_instituicao in (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is true and calendario_data.id_motivo_dia_nao_letivo is null and (calendario_periodo_data.dia_semana between 0 and 4 or calendario_data.id_motivo_dia_letivo_extra is not null);
Date: 2026-06-25 00:05:13 Duration: 4m12s Bind query: yes
-
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) select cidadao.id_instituicao, true 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, 1 as aulas, case when falta.id_aluno_matricula is null then 0 else 1 end as falta 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false where cidadao.id_instituicao in (82) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is true and calendario_data.id_motivo_dia_nao_letivo is null and (calendario_periodo_data.dia_semana between 0 and 4 or calendario_data.id_motivo_dia_letivo_extra is not null);
Date: 2026-06-25 00:02:50 Duration: 1m50s Bind query: yes
14 5m35s 1 5m35s 5m35s 5m35s 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 cc.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 = ? inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo periodo1 on periodo1.id_calendario = escola_calendario.id_calendario and periodo1.ordem = ? inner join calendario_periodo periodo2 on periodo2.id_calendario = escola_calendario.id_calendario and periodo2.ordem = ? inner join calendario_periodo periodo3 on periodo3.id_calendario = escola_calendario.id_calendario and periodo3.ordem = ? inner join calendario_periodo periodo4 on periodo4.id_calendario = escola_calendario.id_calendario and periodo4.ordem = ? inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso left join lateral ( select case when ano.semestre = ? then periodo3.data_inicio else periodo1.data_inicio end as inicio, case when ano.semestre = ? then periodo2.data_final else periodo4.data_final end as fim) datas on ? = ? inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario and calendario_periodo_data.data between datas.inicio and datas.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 turma_periodo on turma_periodo.id_turma = amt.id_turma and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim 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 cc on cc.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 = cc.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 serie.flg_apon_falta_globalizado is false and cc.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 = cc.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 #14
Day Hour Count Duration Avg duration Jun 25 01 1 5m35s 5m35s -
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 cc.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 inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo periodo1 on periodo1.id_calendario = escola_calendario.id_calendario and periodo1.ordem = 1 inner join calendario_periodo periodo2 on periodo2.id_calendario = escola_calendario.id_calendario and periodo2.ordem = 2 inner join calendario_periodo periodo3 on periodo3.id_calendario = escola_calendario.id_calendario and periodo3.ordem = 3 inner join calendario_periodo periodo4 on periodo4.id_calendario = escola_calendario.id_calendario and periodo4.ordem = 4 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso left join lateral ( select case when ano.semestre = 2 then periodo3.data_inicio else periodo1.data_inicio end as inicio, case when ano.semestre = 1 then periodo2.data_final else periodo4.data_final end as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario and calendario_periodo_data.data between datas.inicio and datas.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 turma_periodo on turma_periodo.id_turma = amt.id_turma and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim 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 cc on cc.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 = cc.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 (72) and am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false and cc.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 = cc.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-25 01:29:17 Duration: 5m35s Bind query: yes
15 5m21s 2 19s627ms 5m1s 2m40s copy log.log_2025_07 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) to stdout;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Jun 25 20 1 19s627ms 19s627ms 21 1 5m1s 5m1s -
COPY log.log_2025_07 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 21:27:13 Duration: 5m1s
-
COPY log.log_2025_07 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 20:40:26 Duration: 19s627ms
16 5m21s 2 39s22ms 4m42s 2m40s insert into consulta.apontamento_turma_periodo (id_turma, id_serie, id_nota_periodo_aluno, num_alunos_enturmados, possui_apont_nota, possui_apont_falta_disc, possui_apont_falta_global, possui_apont_aval_desc, pendencia_apont_nota, pendencia_apont_falta_disc, pendencia_apont_falta_global, pendencia_apont_aval_desc) select turma.id_turma, ts.id_serie, periodo.id_nota_periodo_aluno, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as num_alunos_enturmados, case when serie.id_forma_avaliacao in (...) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = na.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and coalesce(am.flg_parecer_descritivo, false) is false and (na.nota is not null or na.id_conceito_avaliacao is not null or na.flg_nao_compareceu is true) and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as possui_apont_nota, case when serie.flg_apon_falta_globalizado is false and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = fad.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and fad.qtd_faltas is not null and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as possui_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and fag.qtd_faltas is not null and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as possui_apont_falta_global, case when serie.id_forma_avaliacao = ? and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join apontamento_avaliacao_desc aad on aad.id_aluno_matricula = amt.id_aluno_matricula and aad.id_turma = amt.id_turma and aad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as possui_apont_aval_desc, case when serie.id_forma_avaliacao in (...) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status = ? and amdd.id_disciplina is null and ((na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) or (turma.flg_atividade_avaliativa is true and case when periodo.id_nota_periodo_aluno = ? then not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) and (na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) else not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) end)) and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as pendencia_apont_nota, case when serie.flg_apon_falta_globalizado is false and periodo.id_nota_periodo_aluno <> ? and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas = true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and fad.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and amdd.id_disciplina is null and ((fad.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_disciplina_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina))) and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as pendencia_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and periodo.id_nota_periodo_aluno <> ? and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma left join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and flg_aponta_faltas = true) and ((fag.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_global_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno))) and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as pendencia_apont_falta_global, case when serie.id_forma_avaliacao = ? and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and ead.flg_descritor = false and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= periodo.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> array[periodo.id_nota_periodo_aluno]) and emap.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and am.id_aluno_matr_status = ? and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_turma = ts.id_turma and aead.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno) and (area.flg_exclusivo_necessidade_esp is false or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) and emad.flg_ativo is true) then ? else ? end as pendencia_apont_aval_desc from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso cross join nota_periodo_aluno periodo left join turma_periodo on turma_periodo.id_turma = turma.id_turma and turma_periodo.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno where turma.id_turma_status = ? and turma.flg_especial is false and (serie.id_forma_avaliacao = ? or exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and (flg_aponta_notas = true or flg_aponta_faltas = true))) and (turma_periodo.id_nota_periodo_aluno is not null or periodo.id_nota_periodo_aluno = ?);Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Jun 25 00 2 5m21s 2m40s -
insert into consulta.apontamento_turma_periodo (id_turma, id_serie, id_nota_periodo_aluno, num_alunos_enturmados, possui_apont_nota, possui_apont_falta_disc, possui_apont_falta_global, possui_apont_aval_desc, pendencia_apont_nota, pendencia_apont_falta_disc, pendencia_apont_falta_global, pendencia_apont_aval_desc) select turma.id_turma, ts.id_serie, periodo.id_nota_periodo_aluno, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as num_alunos_enturmados, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = na.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and coalesce(am.flg_parecer_descritivo, false) is false and (na.nota is not null or na.id_conceito_avaliacao is not null or na.flg_nao_compareceu is true) and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_nota, case when serie.flg_apon_falta_globalizado is false and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = fad.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fad.qtd_faltas is not null and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fag.qtd_faltas is not null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join apontamento_avaliacao_desc aad on aad.id_aluno_matricula = amt.id_aluno_matricula and aad.id_turma = amt.id_turma and aad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_aval_desc, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) or (turma.flg_atividade_avaliativa is true and case when periodo.id_nota_periodo_aluno = 5 then not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) and (na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) else not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) end)) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_nota, case when serie.flg_apon_falta_globalizado is false and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas = true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and fad.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((fad.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_disciplina_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma left join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and flg_aponta_faltas = true) and ((fag.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_global_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and ead.flg_descritor = false and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= periodo.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) and emap.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and am.id_aluno_matr_status = 1 and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_turma = ts.id_turma and aead.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno) and (area.flg_exclusivo_necessidade_esp is false or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) and emad.flg_ativo is true) then 1 else 0 end as pendencia_apont_aval_desc from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso cross join nota_periodo_aluno periodo left join turma_periodo on turma_periodo.id_turma = turma.id_turma and turma_periodo.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno where turma.id_turma_status = 1 and turma.flg_especial is false and (serie.id_forma_avaliacao = 3 or exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and (flg_aponta_notas = true or flg_aponta_faltas = true))) and (turma_periodo.id_nota_periodo_aluno is not null or periodo.id_nota_periodo_aluno = 5);
Date: 2026-06-25 00:14:09 Duration: 4m42s Bind query: yes
-
insert into consulta.apontamento_turma_periodo (id_turma, id_serie, id_nota_periodo_aluno, num_alunos_enturmados, possui_apont_nota, possui_apont_falta_disc, possui_apont_falta_global, possui_apont_aval_desc, pendencia_apont_nota, pendencia_apont_falta_disc, pendencia_apont_falta_global, pendencia_apont_aval_desc) select turma.id_turma, ts.id_serie, periodo.id_nota_periodo_aluno, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as num_alunos_enturmados, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = na.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and coalesce(am.flg_parecer_descritivo, false) is false and (na.nota is not null or na.id_conceito_avaliacao is not null or na.flg_nao_compareceu is true) and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_nota, case when serie.flg_apon_falta_globalizado is false and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = fad.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fad.qtd_faltas is not null and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fag.qtd_faltas is not null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join apontamento_avaliacao_desc aad on aad.id_aluno_matricula = amt.id_aluno_matricula and aad.id_turma = amt.id_turma and aad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_aval_desc, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) or (turma.flg_atividade_avaliativa is true and case when periodo.id_nota_periodo_aluno = 5 then not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) and (na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) else not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) end)) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_nota, case when serie.flg_apon_falta_globalizado is false and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas = true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and fad.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((fad.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_disciplina_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma left join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and flg_aponta_faltas = true) and ((fag.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_global_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and ead.flg_descritor = false and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= periodo.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) and emap.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and am.id_aluno_matr_status = 1 and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_turma = ts.id_turma and aead.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno) and (area.flg_exclusivo_necessidade_esp is false or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) and emad.flg_ativo is true) then 1 else 0 end as pendencia_apont_aval_desc from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso cross join nota_periodo_aluno periodo left join turma_periodo on turma_periodo.id_turma = turma.id_turma and turma_periodo.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno where turma.id_turma_status = 1 and turma.flg_especial is false and (serie.id_forma_avaliacao = 3 or exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and (flg_aponta_notas = true or flg_aponta_faltas = true))) and (turma_periodo.id_nota_periodo_aluno is not null or periodo.id_nota_periodo_aluno = 5);
Date: 2026-06-25 00:02:19 Duration: 39s22ms Bind query: yes
17 5m11s 2 33s802ms 4m37s 2m35s copy log.log_2025_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) to stdout;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Jun 25 20 1 33s802ms 33s802ms 21 1 4m37s 4m37s -
COPY log.log_2025_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 21:14:14 Duration: 4m37s
-
COPY log.log_2025_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 20:39:27 Duration: 33s802ms
18 5m7s 79 1s661ms 9s577ms 3s895ms select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc) tabela;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Jun 25 10 4 11s240ms 2s810ms 11 2 7s735ms 3s867ms 12 17 1m2s 3s684ms 13 17 1m18s 4s613ms 14 36 2m16s 3s782ms 15 3 11s556ms 3s852ms -
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:26:17 Duration: 9s577ms Bind query: yes
-
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:20:53 Duration: 5s415ms Bind query: yes
-
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:21:50 Duration: 5s238ms Bind query: yes
19 5m2s 79 1s585ms 7s354ms 3s830ms select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc limit ?;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Jun 25 10 4 10s894ms 2s723ms 11 2 7s658ms 3s829ms 12 17 1m2s 3s701ms 13 17 1m14s 4s387ms 14 36 2m15s 3s767ms 15 3 10s894ms 3s631ms -
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:26:24 Duration: 7s354ms Bind query: yes
-
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:20:59 Duration: 5s561ms Bind query: yes
-
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:21:55 Duration: 5s194ms Bind query: yes
20 4m57s 2 40s860ms 4m16s 2m28s copy log.log_2026_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) to stdout;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Jun 25 20 1 40s860ms 40s860ms 21 1 4m16s 4m16s -
COPY log.log_2026_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 21:59:53 Duration: 4m16s
-
COPY log.log_2026_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 20:44:20 Duration: 40s860ms
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 1,085 17m54s 500ms 3s827ms 990ms select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and fadd.id_turma in (...) and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = ?) and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and fadd.id_turma in (...) and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = ?);Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Jun 25 00 2 1s584ms 792ms 04 1 1s113ms 1s113ms 05 4 5s621ms 1s405ms 06 5 3s880ms 776ms 07 110 1m34s 860ms 08 126 2m13s 1s61ms 09 76 1m23s 1s101ms 10 53 49s493ms 933ms 11 51 48s150ms 944ms 12 27 25s551ms 946ms 13 123 1m51s 909ms 14 174 3m8s 1s84ms 15 108 1m59s 1s105ms 16 67 1m9s 1s30ms 17 21 15s82ms 718ms 18 36 28s56ms 779ms 19 39 32s702ms 838ms 20 22 16s200ms 736ms 21 25 25s253ms 1s10ms 22 11 13s800ms 1s254ms 23 4 6s898ms 1s724ms -
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260012803', '260012805', '260012806', '260012807', '260012808', '260012809', '260012810', '260012811', '260012812', '260012813', '260012814', '260012815', '260012817') and fadd.id_turma in ('260012803', '260012805', '260012806', '260012807', '260012808', '260012809', '260012810', '260012811', '260012812', '260012813', '260012814', '260012815', '260012817') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1768026') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260012803', '260012805', '260012806', '260012807', '260012808', '260012809', '260012810', '260012811', '260012812', '260012813', '260012814', '260012815', '260012817') and fadd.id_turma in ('260012803', '260012805', '260012806', '260012807', '260012808', '260012809', '260012810', '260012811', '260012812', '260012813', '260012814', '260012815', '260012817') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1768026');
Date: 2026-06-25 09:02:22 Duration: 3s827ms Bind query: yes
-
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and fadd.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1828618') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and fadd.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1828618');
Date: 2026-06-25 14:48:48 Duration: 3s686ms Bind query: yes
-
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260001206', '260001207', '260001208', '260001209', '260001210', '260001211', '260001212', '260001213', '260001214', '260001215', '260001216', '260001217', '260001218', '260001219', '260006499') and fadd.id_turma in ('260001206', '260001207', '260001208', '260001209', '260001210', '260001211', '260001212', '260001213', '260001214', '260001215', '260001216', '260001217', '260001218', '260001219', '260006499') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1565260') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260001206', '260001207', '260001208', '260001209', '260001210', '260001211', '260001212', '260001213', '260001214', '260001215', '260001216', '260001217', '260001218', '260001219', '260006499') and fadd.id_turma in ('260001206', '260001207', '260001208', '260001209', '260001210', '260001211', '260001212', '260001213', '260001214', '260001215', '260001216', '260001217', '260001218', '260001219', '260006499') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1565260');
Date: 2026-06-25 13:20:47 Duration: 3s623ms Bind query: yes
2 826 10m43s 500ms 3s123ms 778ms select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and fadd.id_turma in (...) and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = ?) and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > ? and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and fadd.id_turma in (...) and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = ?) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > ? and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina);Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Jun 25 04 1 965ms 965ms 06 1 2s728ms 2s728ms 07 140 1m50s 789ms 08 113 1m25s 753ms 09 43 31s22ms 721ms 10 122 1m30s 739ms 11 31 22s260ms 718ms 12 2 1s477ms 738ms 13 101 1m23s 831ms 14 82 59s761ms 728ms 15 40 33s310ms 832ms 16 77 58s737ms 762ms 17 25 16s429ms 657ms 18 6 4s807ms 801ms 19 18 16s799ms 933ms 20 3 4s708ms 1s569ms 21 13 12s250ms 942ms 22 5 5s482ms 1s96ms 23 3 2s703ms 901ms -
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and fadd.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '2294095') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-22 15:48:07.499' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and fadd.id_turma in ('260011835', '260011836', '260011837', '260011838', '260011839', '260011840', '260011841', '260011842', '260011843', '260011844', '260011845', '260011846', '260011847', '260011848', '260011849', '260011850') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '2294095') and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-22 15:48:07.499' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina);
Date: 2026-06-25 07:41:01 Duration: 3s123ms Bind query: yes
-
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and fadd.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1713655') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-22 15:31:10.878' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and fadd.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1713655') and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-22 15:31:10.878' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina);
Date: 2026-06-25 07:51:44 Duration: 2s765ms Bind query: yes
-
select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and fadd.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = '1767961') and tc.id_turma = amt.id_turma and d.id_disciplina = fadd.id_disciplina) and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-23 23:05:28.57' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina) union all select fadd.id_aluno_matricula, amt.id_turma, fadd.id_disciplina, fadd.id_nota_periodo_aluno, fadd.data, fadd.id_horario_turma, fadd.flg_justificada, fadd.id_motivo_falta_justificada, fadd.descricao_motivo_falta_justificada from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join falta_aluno_disciplina_diario fadd on fadd.id_turma = condicao_turma.id_turma and fadd.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and fadd.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = amt.id_turma and tras.id_cidadao = '1767961') and exists ( select null from registro_falta_disciplina_diario where data_ref_sincronizacao > '2026-06-23 23:05:28.57' and id_turma = amt.id_turma and data_referencia = fadd.data and id_disciplina = fadd.id_disciplina);
Date: 2026-06-25 06:41:30 Duration: 2s728ms Bind query: yes
3 731 9m43s 500ms 2s599ms 798ms select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and nota_aluno.id_turma in (...) and exists ( select null from registro_lancamento_nota_disciplina registro where registro.data_ref_sincronizacao > ? and registro.id_turma = amt.id_turma and registro.id_disciplina = nota_aluno.id_disciplina and registro.id_nota_periodo_aluno = nota_aluno.id_nota_periodo_aluno) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = ? and tp.id_turma in (...) and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Jun 25 00 13 16s295ms 1s253ms 04 2 1s27ms 513ms 06 1 825ms 825ms 07 28 27s217ms 972ms 08 86 1m11s 827ms 09 97 1m10s 725ms 10 76 53s699ms 706ms 11 63 50s336ms 798ms 12 22 17s765ms 807ms 13 98 1m28s 899ms 14 60 47s962ms 799ms 15 78 1m3s 817ms 16 62 43s948ms 708ms 17 4 2s756ms 689ms 18 2 1s369ms 684ms 19 23 15s21ms 653ms 20 7 5s615ms 802ms 21 8 6s47ms 755ms 23 1 636ms 636ms -
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and nota_aluno.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and exists ( select null from registro_lancamento_nota_disciplina registro where registro.data_ref_sincronizacao > '2026-06-25 14:30:51.733' and registro.id_turma = amt.id_turma and registro.id_disciplina = nota_aluno.id_disciplina and registro.id_nota_periodo_aluno = nota_aluno.id_nota_periodo_aluno) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '1714081' and tp.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 14:31:04 Duration: 2s599ms Bind query: yes
-
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011957', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801') and nota_aluno.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011957', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801') and exists ( select null from registro_lancamento_nota_disciplina registro where registro.data_ref_sincronizacao > '2026-06-25 11:21:37.116' and registro.id_turma = amt.id_turma and registro.id_disciplina = nota_aluno.id_disciplina and registro.id_nota_periodo_aluno = nota_aluno.id_nota_periodo_aluno) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '2703238' and tp.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011957', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 13:25:30 Duration: 2s70ms Bind query: yes
-
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and nota_aluno.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and exists ( select null from registro_lancamento_nota_disciplina registro where registro.data_ref_sincronizacao > '2026-06-25 00:14:58.065' and registro.id_turma = amt.id_turma and registro.id_disciplina = nota_aluno.id_disciplina and registro.id_nota_periodo_aluno = nota_aluno.id_nota_periodo_aluno) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '1710927' and tp.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 00:16:07 Duration: 1s955ms Bind query: yes
4 490 17m20s 1s880ms 3s944ms 2s123ms select id_aluno_matricula, chamada, ? as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, faltas_mes::int, (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = ? then case when s.flg_serie_atividade_complementar is true then ? else ? end when t.id_tipo_turma = ? then ? when t.id_tipo_turma = ? then ? end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma)) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), ?)::int as faltas_mes, coalesce(( select sum(coalesce(falta_justificada, ?) + coalesce(falta_nao_justificada, ?)) from falta_anterior_aluno_globalizada fa where fa.id_aluno_matricula = a.id_aluno_matricula), ?)::int as faltas_anteriores from aluno_turma_diario_impresso a cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = ? left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = ? and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between ? and ? or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Jun 25 06 1 2s150ms 2s150ms 07 42 1m24s 2s10ms 08 92 3m14s 2s116ms 09 65 2m18s 2s129ms 10 42 1m30s 2s154ms 11 40 1m25s 2s128ms 12 10 20s790ms 2s79ms 13 43 1m39s 2s311ms 14 43 1m31s 2s127ms 15 57 1m56s 2s47ms 16 33 1m8s 2s75ms 17 15 31s483ms 2s98ms 18 6 14s697ms 2s449ms 20 1 2s83ms 2s83ms -
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260001324' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2507' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 08:29:58 Duration: 3s944ms Bind query: yes
-
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260000849' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2493' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 18:05:53 Duration: 3s539ms Bind query: yes
-
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260002184' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2559' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 13:22:02 Duration: 3s287ms Bind query: yes
5 432 24m28s 502ms 31s665ms 3s398ms select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then ? when ministrados < total then ? || asterisco else ? || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then ? else ? end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then ? else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo (?, c.serie_duracao = ?, c.id_periodicidade_apontamento = ?) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in (...) and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo (?, c.serie_duracao = ?, c.id_periodicidade_apontamento = ?) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 25 06 1 732ms 732ms 07 9 50s744ms 5s638ms 08 45 1m11s 1s599ms 09 41 1m55s 2s807ms 10 33 1m56s 3s515ms 11 57 2m22s 2s499ms 12 31 2m22s 4s601ms 13 51 2m23s 2s813ms 14 42 1m40s 2s399ms 15 64 2m5s 1s957ms 16 35 6m56s 11s892ms 17 6 18s657ms 3s109ms 18 4 9s151ms 2s287ms 19 8 5s730ms 716ms 21 5 9s289ms 1s857ms -
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:12:32 Duration: 31s665ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('2', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('2', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:23:22 Duration: 31s257ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:20:23 Duration: 31s208ms Bind query: yes
6 166 3m42s 504ms 3s414ms 1s340ms select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join ano_semestre ans on ans.id_ano_semestre = t.id_ano_semestre and ano = ? inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join turma_disciplina on turma_disciplina.id_turma = t.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) cross join nota_periodo_aluno npa where t.id_turma in (...) and npa.id_nota_periodo_aluno = bimestre_para_periodo (?, curso.serie_duracao = ?, curso.id_periodicidade_apontamento = ?) and exists ( select null from aluno_matr_turma amt inner join turma_serie_modelo_avaliacao_desc tsmad on tsmad.id_turma = amt.id_turma and tsmad.id_serie = amt.id_serie_enturmacao inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = tsmad.id_modelo_avaliacao_desc inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie and amt.data_saida is null and mad.id_disciplina = d.id_disciplina and tsmad.id_tipo_modelo_avaliacao_desc = ? and mad.id_categoria_modelo_avaliacao_desc = ? and mad.id_periodicidade_apontamento_avaliacao_desc = ? and ead.flg_descritor = false and emad.flg_ativo is true and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= ?) and (mdp.periodos is null or not mdp.periodos @> array[?]) and emap.id_nota_periodo_aluno = ? and am.id_aluno_matr_status in (...) and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_ficha_acompanhamento aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = ? and aead.id_turma = ts.id_turma) and (area.flg_exclusivo_necessidade_esp is false or (area.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false));Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Jun 25 07 4 5s25ms 1s256ms 08 21 23s966ms 1s141ms 09 16 18s640ms 1s165ms 10 20 29s524ms 1s476ms 11 30 52s606ms 1s753ms 12 18 21s686ms 1s204ms 13 19 20s154ms 1s60ms 14 9 5s752ms 639ms 15 24 41s289ms 1s720ms 16 5 3s840ms 768ms -
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join ano_semestre ans on ans.id_ano_semestre = t.id_ano_semestre and ano = '2026' inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join turma_disciplina on turma_disciplina.id_turma = t.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) cross join nota_periodo_aluno npa where t.id_turma in ('260012271', '260012272', '260012273', '260012274', '260012254', '260012253', '260012261', '260012256', '260012259', '260012247', '260012264', '260012269', '260012706', '260012267', '260012265', '260012258', '260012262', '260012703', '260012270', '260012268', '260012249', '260012248', '260012250', '260012252', '260012251', '260012266', '260012263') and npa.id_nota_periodo_aluno = bimestre_para_periodo ('1', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) and exists ( select null from aluno_matr_turma amt inner join turma_serie_modelo_avaliacao_desc tsmad on tsmad.id_turma = amt.id_turma and tsmad.id_serie = amt.id_serie_enturmacao inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = tsmad.id_modelo_avaliacao_desc inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie and amt.data_saida is null and mad.id_disciplina = d.id_disciplina and tsmad.id_tipo_modelo_avaliacao_desc = '4' and mad.id_categoria_modelo_avaliacao_desc = '1' and mad.id_periodicidade_apontamento_avaliacao_desc = '1' and ead.flg_descritor = false and emad.flg_ativo is true and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= '1') and (mdp.periodos is null or not mdp.periodos @> ARRAY['1']) and emap.id_nota_periodo_aluno = '1' and am.id_aluno_matr_status in ('1', '2', '7') and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_ficha_acompanhamento aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = '1' and aead.id_turma = ts.id_turma) and (area.flg_exclusivo_necessidade_esp is false or (area.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false));
Date: 2026-06-25 15:36:45 Duration: 3s414ms Bind query: yes
-
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join ano_semestre ans on ans.id_ano_semestre = t.id_ano_semestre and ano = '2026' inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join turma_disciplina on turma_disciplina.id_turma = t.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) cross join nota_periodo_aluno npa where t.id_turma in ('260012265', '260012259', '260012253', '260012256', '260012269', '260012706', '260012267', '260012258', '260012262', '260012703', '260012270', '260012252', '260012250', '260012273', '260012274', '260012248', '260012266', '260012268', '260012249', '260012251', '260012263', '260012272', '260012254', '260012261', '260012247', '260012264', '260012271') and npa.id_nota_periodo_aluno = bimestre_para_periodo ('1', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) and exists ( select null from aluno_matr_turma amt inner join turma_serie_modelo_avaliacao_desc tsmad on tsmad.id_turma = amt.id_turma and tsmad.id_serie = amt.id_serie_enturmacao inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = tsmad.id_modelo_avaliacao_desc inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie and amt.data_saida is null and mad.id_disciplina = d.id_disciplina and tsmad.id_tipo_modelo_avaliacao_desc = '4' and mad.id_categoria_modelo_avaliacao_desc = '1' and mad.id_periodicidade_apontamento_avaliacao_desc = '1' and ead.flg_descritor = false and emad.flg_ativo is true and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= '1') and (mdp.periodos is null or not mdp.periodos @> ARRAY['1']) and emap.id_nota_periodo_aluno = '1' and am.id_aluno_matr_status in ('1', '2', '7') and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_ficha_acompanhamento aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = '1' and aead.id_turma = ts.id_turma) and (area.flg_exclusivo_necessidade_esp is false or (area.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false));
Date: 2026-06-25 11:14:33 Duration: 3s336ms Bind query: yes
-
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join ano_semestre ans on ans.id_ano_semestre = t.id_ano_semestre and ano = '2026' inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join turma_disciplina on turma_disciplina.id_turma = t.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) cross join nota_periodo_aluno npa where t.id_turma in ('260012265', '260012259', '260012253', '260012256', '260012269', '260012706', '260012267', '260012258', '260012262', '260012703', '260012270', '260012252', '260012250', '260012273', '260012274', '260012248', '260012266', '260012268', '260012249', '260012251', '260012263', '260012272', '260012254', '260012261', '260012247', '260012264', '260012271') and npa.id_nota_periodo_aluno = bimestre_para_periodo ('1', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) and exists ( select null from aluno_matr_turma amt inner join turma_serie_modelo_avaliacao_desc tsmad on tsmad.id_turma = amt.id_turma and tsmad.id_serie = amt.id_serie_enturmacao inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = tsmad.id_modelo_avaliacao_desc inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie and amt.data_saida is null and mad.id_disciplina = d.id_disciplina and tsmad.id_tipo_modelo_avaliacao_desc = '4' and mad.id_categoria_modelo_avaliacao_desc = '1' and mad.id_periodicidade_apontamento_avaliacao_desc = '1' and ead.flg_descritor = false and emad.flg_ativo is true and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= '1') and (mdp.periodos is null or not mdp.periodos @> ARRAY['1']) and emap.id_nota_periodo_aluno = '1' and am.id_aluno_matr_status in ('1', '2', '7') and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_ficha_acompanhamento aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = '1' and aead.id_turma = ts.id_turma) and (area.flg_exclusivo_necessidade_esp is false or (area.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false));
Date: 2026-06-25 11:04:09 Duration: 3s304ms Bind query: yes
7 135 1m51s 500ms 1s831ms 828ms select id_aluno_matricula, id_nota_periodo_aluno, id_disciplina, flg_apontamento, id_forma_avaliacao, id_expressao_resultado_componente, num_casas_decimais_nota, flg_dispensado_todos_periodos, flg_dispensado, dispensa, nota, greatest (nota, recuperacao_final, nota_conselho) as nota_resultado_final, conceito, conceito_convertido, resultado_final_calculado, resultado_final_apontado, conceito_final, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (id_instituicao, id_serie, resultado_final_calculado::real) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_final_convertido, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (id_instituicao, id_serie, greatest (nota, recuperacao_final, nota_conselho)::real) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_pos_recuperacao_convertido, recuperacao_final, conceito_recuperacao_final, conceito_recuperacao_final_convertido, case when id_nota_periodo_aluno <= ultimo_periodo_apontamento and id_tipo_resultado_final = ? then coalesce(nota < perc_aprovacao * perc_nota_periodo * valor_maximo_nota, false) when id_nota_periodo_aluno <= ultimo_periodo_apontamento and id_tipo_resultado_final = ? then coalesce(nota < valor_maximo_nota * perc_aprovacao, false) else false end as flg_abaixo_da_media, case when id_forma_avaliacao = ? then conceito_final_abaixo_media else coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then ( case when flg_atividade_avaliativa then resultado_final_calculado else resultado_final_apontado end) < valor_maximo_nota * perc_aprovacao else false end, false) end as flg_resultado_final_abaixo_da_media, case when id_forma_avaliacao = ? then conceito_recuperacao_final_abaixo_media else coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then recuperacao_final < valor_maximo_nota * perc_aprovacao else false end, false) end as flg_recuperacao_final_abaixo_da_media, coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then resultado_final < valor_maximo_nota * perc_aprovacao else false end, false) as flg_resultado_final_apontado_abaixo_da_media from ( select amt.id_aluno_matricula, npa.id_nota_periodo_aluno, npa.flg_apontamento, cc.id_disciplina, cc.id_componente_curricular, cc.id_forma_avaliacao_componente as id_forma_avaliacao, cc.id_expressao_resultado_componente, pa.id_tipo_resultado_final, c.id_instituicao, s.id_serie, s.num_casas_decimais_nota, t.flg_atividade_avaliativa, coalesce(amdd.flg_dispensado_todos_periodos, false) as flg_dispensado_todos_periodos, mdp.id_motivo_dispensa_periodo notnull or mdd.id_motivo_dispensa_disciplina notnull as flg_dispensado, coalesce(mdp.descricao, mdd.descricao) as dispensa, na.nota, na.nota_conselho, ca.sigla as conceito, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_periodo (amt.id_aluno_matricula, npa.id_nota_periodo_aluno, na.nota) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_convertido, case when pa.id_tipo_resultado_final = ? then get_soma_notas_aluno (amt.id_turma, amt.id_aluno_matricula, cc.id_disciplina, amt.id_serie_enturmacao) else get_media_notas_aluno (amt.id_turma, amt.id_aluno_matricula, cc.id_disciplina) end as resultado_final_calculado, nf.nota as resultado_final, greatest (nf.nota, nr.nota, nf.nota_conselho)::float as resultado_final_apontado, coalesce(cr.sigla, cf.sigla) as conceito_final, coalesce(cf.flg_aprova, false) = false as conceito_final_abaixo_media, coalesce(nf.nota_conselho, nr.nota)::double precision as recuperacao_final, cr.sigla as conceito_recuperacao_final, coalesce(cr.flg_aprova, false) = false as conceito_recuperacao_final_abaixo_media, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (c.id_instituicao, s.id_serie, nr.nota) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_recuperacao_final_convertido, pa.nota_min_aprovacao / ?.? as perc_aprovacao, vmnp.valor_maximo_nota / s.valor_maximo_nota as perc_nota_periodo, s.valor_maximo_nota, max(npa.id_nota_periodo_aluno) filter (where npa.flg_apontamento) over (partition by amt.id_turma) as ultimo_periodo_turma, max( case when t.flg_atividade_avaliativa then concluido.id_nota_periodo_aluno else na.id_nota_periodo_aluno end) over (partition by amt.id_aluno_matricula, cc.id_disciplina) as ultimo_periodo_apontamento from aluno_turma_diario_impresso a inner join aluno_matr_turma amt on amt.id_aluno_matricula = a.id_aluno_matricula and amt.id_turma = a.id_turma_desempenho inner join turma t on t.id_turma = amt.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = a.id_serie inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno in ( select tp.id_nota_periodo_aluno from turma_periodo tp where tp.id_turma = t.id_turma union select ? as id_nota_periodo_aluno) inner join serie s on s.id_serie = ts.id_serie inner join curso c on s.id_curso = c.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular left join nota_aluno na on na.id_turma = amt.id_turma and na.id_aluno_matricula = amt.id_aluno_matricula and na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina left join conceito_avaliacao ca on na.id_conceito_avaliacao = ca.id_conceito_avaliacao left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.periodos isnull or amdd.flg_dispensado_todos_periodos or npa.id_nota_periodo_aluno = any (amdd.periodos)) left join motivo_dispensa_disciplina mdd on mdd.id_motivo_dispensa_disciplina = amdd.id_motivo_dispensa_disciplina left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = amt.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and npa.id_nota_periodo_aluno = any (mdp.periodos) left join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao left join procedimento_avaliacao_valor_maximo_nota_periodo vmnp on vmnp.id_procedimento_avaliacao = pa.id_procedimento_avaliacao and vmnp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join nota_aluno nf on nf.id_turma = amt.id_turma and nf.id_aluno_matricula = amt.id_aluno_matricula and nf.id_disciplina = cc.id_disciplina and nf.id_nota_periodo_aluno = ? left join conceito_avaliacao cf on cf.id_conceito_avaliacao = nf.id_conceito_avaliacao left join nota_aluno nr on nr.id_turma = amt.id_turma and nr.id_aluno_matricula = amt.id_aluno_matricula and nr.id_disciplina = cc.id_disciplina and nr.id_nota_periodo_aluno = ? left join conceito_avaliacao cr on cr.id_conceito_avaliacao = nr.id_conceito_avaliacao left join nota_aluno_atividade_concluido concluido on concluido.id_turma = ts.id_turma and concluido.id_serie = ts.id_serie and concluido.id_disciplina = cc.id_disciplina and concluido.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where ts.id_turma = ? and ts.id_serie = ? and cc.flg_aponta_notas and s.id_forma_avaliacao in (...)) x order by id_aluno_matricula, id_nota_periodo_aluno, id_componente_curricular;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Jun 25 08 29 19s486ms 671ms 09 9 8s328ms 925ms 10 11 8s903ms 809ms 11 5 3s73ms 614ms 12 36 25s384ms 705ms 13 9 8s981ms 997ms 14 6 6s629ms 1s104ms 15 22 24s163ms 1s98ms 16 7 6s331ms 904ms 18 1 514ms 514ms -
select id_aluno_matricula, id_nota_periodo_aluno, id_disciplina, flg_apontamento, id_forma_avaliacao, id_expressao_resultado_componente, num_casas_decimais_nota, flg_dispensado_todos_periodos, flg_dispensado, dispensa, nota, greatest (nota, recuperacao_final, nota_conselho) as nota_resultado_final, conceito, conceito_convertido, resultado_final_calculado, resultado_final_apontado, conceito_final, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (id_instituicao, id_serie, resultado_final_calculado::real) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_final_convertido, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (id_instituicao, id_serie, greatest (nota, recuperacao_final, nota_conselho)::real) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_pos_recuperacao_convertido, recuperacao_final, conceito_recuperacao_final, conceito_recuperacao_final_convertido, -- abaixo da média somente se o apontamento no período foi concluído case when id_nota_periodo_aluno <= ultimo_periodo_apontamento and id_tipo_resultado_final = 1 then coalesce(nota < perc_aprovacao * perc_nota_periodo * valor_maximo_nota, false) when id_nota_periodo_aluno <= ultimo_periodo_apontamento and id_tipo_resultado_final = 2 then coalesce(nota < valor_maximo_nota * perc_aprovacao, false) else false end as flg_abaixo_da_media, -- abaixo da média final somente se o apontamento de todos os períodos foram concluídos --valor_maximo_nota * perc_aprovacao, case when id_forma_avaliacao = '2' then conceito_final_abaixo_media else coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then ( case when flg_atividade_avaliativa then resultado_final_calculado else resultado_final_apontado end) < valor_maximo_nota * perc_aprovacao else false end, false) end as flg_resultado_final_abaixo_da_media, -- mesmo para recuperação case when id_forma_avaliacao = '2' then conceito_recuperacao_final_abaixo_media else coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then recuperacao_final < valor_maximo_nota * perc_aprovacao else false end, false) end as flg_recuperacao_final_abaixo_da_media, -- relatorio de resultado final mostra tanto o calculado quanto o pós-recuperaçao coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then resultado_final < valor_maximo_nota * perc_aprovacao else false end, false) as flg_resultado_final_apontado_abaixo_da_media from ( select amt.id_aluno_matricula, npa.id_nota_periodo_aluno, npa.flg_apontamento, cc.id_disciplina, cc.id_componente_curricular, cc.id_forma_avaliacao_componente as id_forma_avaliacao, cc.id_expressao_resultado_componente, pa.id_tipo_resultado_final, c.id_instituicao, s.id_serie, s.num_casas_decimais_nota, t.flg_atividade_avaliativa, coalesce(amdd.flg_dispensado_todos_periodos, false) as flg_dispensado_todos_periodos, mdp.id_motivo_dispensa_periodo notnull or mdd.id_motivo_dispensa_disciplina notnull as flg_dispensado, coalesce(mdp.descricao, mdd.descricao) as dispensa, na.nota, na.nota_conselho, ca.sigla as conceito, -- conversao para conceito ( select cac.sigla from sp_obter_conceito_avaliacao_nota_periodo (amt.id_aluno_matricula, npa.id_nota_periodo_aluno, na.nota) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_convertido, case when pa.id_tipo_resultado_final = 1 then get_soma_notas_aluno (amt.id_turma, amt.id_aluno_matricula, cc.id_disciplina, amt.id_serie_enturmacao) else get_media_notas_aluno (amt.id_turma, amt.id_aluno_matricula, cc.id_disciplina) end as resultado_final_calculado, nf.nota as resultado_final, greatest (nf.nota, nr.nota, nf.nota_conselho)::float as resultado_final_apontado, coalesce(cr.sigla, cf.sigla) as conceito_final, coalesce(cf.flg_aprova, false) = false as conceito_final_abaixo_media, -- recuperação final coalesce(nf.nota_conselho, nr.nota)::double precision as recuperacao_final, cr.sigla as conceito_recuperacao_final, coalesce(cr.flg_aprova, false) = false as conceito_recuperacao_final_abaixo_media, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (c.id_instituicao, s.id_serie, nr.nota) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_recuperacao_final_convertido, -- esses são para determinar se está abaixo da média pa.nota_min_aprovacao / 100.0 as perc_aprovacao, vmnp.valor_maximo_nota / s.valor_maximo_nota as perc_nota_periodo, s.valor_maximo_nota, -- esses ajudam a determinar os períodos que já foram apontados max(npa.id_nota_periodo_aluno) filter (where npa.flg_apontamento) over (partition by amt.id_turma) as ultimo_periodo_turma, max( case when t.flg_atividade_avaliativa then concluido.id_nota_periodo_aluno else na.id_nota_periodo_aluno end) over (partition by amt.id_aluno_matricula, cc.id_disciplina) as ultimo_periodo_apontamento from aluno_turma_diario_impresso a -- isso acelera (muito) a query pois o banco está acostumando a juntar com nota_aluno daqui inner join aluno_matr_turma amt on amt.id_aluno_matricula = a.id_aluno_matricula and amt.id_turma = a.id_turma_desempenho inner join turma t on t.id_turma = amt.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = a.id_serie inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno in ( select tp.id_nota_periodo_aluno from turma_periodo tp where tp.id_turma = t.id_turma union select '5' as id_nota_periodo_aluno) inner join serie s on s.id_serie = ts.id_serie inner join curso c on s.id_curso = c.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular -- nota do periodo left join nota_aluno na on na.id_turma = amt.id_turma and na.id_aluno_matricula = amt.id_aluno_matricula and na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina -- conceito left join conceito_avaliacao ca on na.id_conceito_avaliacao = ca.id_conceito_avaliacao -- dispensa de componente left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.periodos isnull or amdd.flg_dispensado_todos_periodos or npa.id_nota_periodo_aluno = any (amdd.periodos)) left join motivo_dispensa_disciplina mdd on mdd.id_motivo_dispensa_disciplina = amdd.id_motivo_dispensa_disciplina -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = amt.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and npa.id_nota_periodo_aluno = any (mdp.periodos) left join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao left join procedimento_avaliacao_valor_maximo_nota_periodo vmnp on vmnp.id_procedimento_avaliacao = pa.id_procedimento_avaliacao and vmnp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno -- resultado final apontado left join nota_aluno nf on nf.id_turma = amt.id_turma and nf.id_aluno_matricula = amt.id_aluno_matricula and nf.id_disciplina = cc.id_disciplina and nf.id_nota_periodo_aluno = 5 -- conceito final left join conceito_avaliacao cf on cf.id_conceito_avaliacao = nf.id_conceito_avaliacao -- recuperação final left join nota_aluno nr on nr.id_turma = amt.id_turma and nr.id_aluno_matricula = amt.id_aluno_matricula and nr.id_disciplina = cc.id_disciplina and nr.id_nota_periodo_aluno = 6 -- conceito final recuperação left join conceito_avaliacao cr on cr.id_conceito_avaliacao = nr.id_conceito_avaliacao -- conclusão das atividades left join nota_aluno_atividade_concluido concluido on concluido.id_turma = ts.id_turma and concluido.id_serie = ts.id_serie and concluido.id_disciplina = cc.id_disciplina and concluido.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where ts.id_turma = '260001153' and ts.id_serie = '104' and cc.flg_aponta_notas and s.id_forma_avaliacao in (1, 2, 4)) x order by id_aluno_matricula, id_nota_periodo_aluno, id_componente_curricular;
Date: 2026-06-25 09:59:05 Duration: 1s831ms Bind query: yes
-
select id_aluno_matricula, id_nota_periodo_aluno, id_disciplina, flg_apontamento, id_forma_avaliacao, id_expressao_resultado_componente, num_casas_decimais_nota, flg_dispensado_todos_periodos, flg_dispensado, dispensa, nota, greatest (nota, recuperacao_final, nota_conselho) as nota_resultado_final, conceito, conceito_convertido, resultado_final_calculado, resultado_final_apontado, conceito_final, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (id_instituicao, id_serie, resultado_final_calculado::real) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_final_convertido, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (id_instituicao, id_serie, greatest (nota, recuperacao_final, nota_conselho)::real) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_pos_recuperacao_convertido, recuperacao_final, conceito_recuperacao_final, conceito_recuperacao_final_convertido, -- abaixo da média somente se o apontamento no período foi concluído case when id_nota_periodo_aluno <= ultimo_periodo_apontamento and id_tipo_resultado_final = 1 then coalesce(nota < perc_aprovacao * perc_nota_periodo * valor_maximo_nota, false) when id_nota_periodo_aluno <= ultimo_periodo_apontamento and id_tipo_resultado_final = 2 then coalesce(nota < valor_maximo_nota * perc_aprovacao, false) else false end as flg_abaixo_da_media, -- abaixo da média final somente se o apontamento de todos os períodos foram concluídos --valor_maximo_nota * perc_aprovacao, case when id_forma_avaliacao = '2' then conceito_final_abaixo_media else coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then ( case when flg_atividade_avaliativa then resultado_final_calculado else resultado_final_apontado end) < valor_maximo_nota * perc_aprovacao else false end, false) end as flg_resultado_final_abaixo_da_media, -- mesmo para recuperação case when id_forma_avaliacao = '2' then conceito_recuperacao_final_abaixo_media else coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then recuperacao_final < valor_maximo_nota * perc_aprovacao else false end, false) end as flg_recuperacao_final_abaixo_da_media, -- relatorio de resultado final mostra tanto o calculado quanto o pós-recuperaçao coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then resultado_final < valor_maximo_nota * perc_aprovacao else false end, false) as flg_resultado_final_apontado_abaixo_da_media from ( select amt.id_aluno_matricula, npa.id_nota_periodo_aluno, npa.flg_apontamento, cc.id_disciplina, cc.id_componente_curricular, cc.id_forma_avaliacao_componente as id_forma_avaliacao, cc.id_expressao_resultado_componente, pa.id_tipo_resultado_final, c.id_instituicao, s.id_serie, s.num_casas_decimais_nota, t.flg_atividade_avaliativa, coalesce(amdd.flg_dispensado_todos_periodos, false) as flg_dispensado_todos_periodos, mdp.id_motivo_dispensa_periodo notnull or mdd.id_motivo_dispensa_disciplina notnull as flg_dispensado, coalesce(mdp.descricao, mdd.descricao) as dispensa, na.nota, na.nota_conselho, ca.sigla as conceito, -- conversao para conceito ( select cac.sigla from sp_obter_conceito_avaliacao_nota_periodo (amt.id_aluno_matricula, npa.id_nota_periodo_aluno, na.nota) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_convertido, case when pa.id_tipo_resultado_final = 1 then get_soma_notas_aluno (amt.id_turma, amt.id_aluno_matricula, cc.id_disciplina, amt.id_serie_enturmacao) else get_media_notas_aluno (amt.id_turma, amt.id_aluno_matricula, cc.id_disciplina) end as resultado_final_calculado, nf.nota as resultado_final, greatest (nf.nota, nr.nota, nf.nota_conselho)::float as resultado_final_apontado, coalesce(cr.sigla, cf.sigla) as conceito_final, coalesce(cf.flg_aprova, false) = false as conceito_final_abaixo_media, -- recuperação final coalesce(nf.nota_conselho, nr.nota)::double precision as recuperacao_final, cr.sigla as conceito_recuperacao_final, coalesce(cr.flg_aprova, false) = false as conceito_recuperacao_final_abaixo_media, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (c.id_instituicao, s.id_serie, nr.nota) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_recuperacao_final_convertido, -- esses são para determinar se está abaixo da média pa.nota_min_aprovacao / 100.0 as perc_aprovacao, vmnp.valor_maximo_nota / s.valor_maximo_nota as perc_nota_periodo, s.valor_maximo_nota, -- esses ajudam a determinar os períodos que já foram apontados max(npa.id_nota_periodo_aluno) filter (where npa.flg_apontamento) over (partition by amt.id_turma) as ultimo_periodo_turma, max( case when t.flg_atividade_avaliativa then concluido.id_nota_periodo_aluno else na.id_nota_periodo_aluno end) over (partition by amt.id_aluno_matricula, cc.id_disciplina) as ultimo_periodo_apontamento from aluno_turma_diario_impresso a -- isso acelera (muito) a query pois o banco está acostumando a juntar com nota_aluno daqui inner join aluno_matr_turma amt on amt.id_aluno_matricula = a.id_aluno_matricula and amt.id_turma = a.id_turma_desempenho inner join turma t on t.id_turma = amt.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = a.id_serie inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno in ( select tp.id_nota_periodo_aluno from turma_periodo tp where tp.id_turma = t.id_turma union select '5' as id_nota_periodo_aluno) inner join serie s on s.id_serie = ts.id_serie inner join curso c on s.id_curso = c.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular -- nota do periodo left join nota_aluno na on na.id_turma = amt.id_turma and na.id_aluno_matricula = amt.id_aluno_matricula and na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina -- conceito left join conceito_avaliacao ca on na.id_conceito_avaliacao = ca.id_conceito_avaliacao -- dispensa de componente left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.periodos isnull or amdd.flg_dispensado_todos_periodos or npa.id_nota_periodo_aluno = any (amdd.periodos)) left join motivo_dispensa_disciplina mdd on mdd.id_motivo_dispensa_disciplina = amdd.id_motivo_dispensa_disciplina -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = amt.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and npa.id_nota_periodo_aluno = any (mdp.periodos) left join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao left join procedimento_avaliacao_valor_maximo_nota_periodo vmnp on vmnp.id_procedimento_avaliacao = pa.id_procedimento_avaliacao and vmnp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno -- resultado final apontado left join nota_aluno nf on nf.id_turma = amt.id_turma and nf.id_aluno_matricula = amt.id_aluno_matricula and nf.id_disciplina = cc.id_disciplina and nf.id_nota_periodo_aluno = 5 -- conceito final left join conceito_avaliacao cf on cf.id_conceito_avaliacao = nf.id_conceito_avaliacao -- recuperação final left join nota_aluno nr on nr.id_turma = amt.id_turma and nr.id_aluno_matricula = amt.id_aluno_matricula and nr.id_disciplina = cc.id_disciplina and nr.id_nota_periodo_aluno = 6 -- conceito final recuperação left join conceito_avaliacao cr on cr.id_conceito_avaliacao = nr.id_conceito_avaliacao -- conclusão das atividades left join nota_aluno_atividade_concluido concluido on concluido.id_turma = ts.id_turma and concluido.id_serie = ts.id_serie and concluido.id_disciplina = cc.id_disciplina and concluido.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where ts.id_turma = '260002781' and ts.id_serie = '102' and cc.flg_aponta_notas and s.id_forma_avaliacao in (1, 2, 4)) x order by id_aluno_matricula, id_nota_periodo_aluno, id_componente_curricular;
Date: 2026-06-25 13:26:05 Duration: 1s455ms Bind query: yes
-
select id_aluno_matricula, id_nota_periodo_aluno, id_disciplina, flg_apontamento, id_forma_avaliacao, id_expressao_resultado_componente, num_casas_decimais_nota, flg_dispensado_todos_periodos, flg_dispensado, dispensa, nota, greatest (nota, recuperacao_final, nota_conselho) as nota_resultado_final, conceito, conceito_convertido, resultado_final_calculado, resultado_final_apontado, conceito_final, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (id_instituicao, id_serie, resultado_final_calculado::real) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_final_convertido, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (id_instituicao, id_serie, greatest (nota, recuperacao_final, nota_conselho)::real) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_pos_recuperacao_convertido, recuperacao_final, conceito_recuperacao_final, conceito_recuperacao_final_convertido, -- abaixo da média somente se o apontamento no período foi concluído case when id_nota_periodo_aluno <= ultimo_periodo_apontamento and id_tipo_resultado_final = 1 then coalesce(nota < perc_aprovacao * perc_nota_periodo * valor_maximo_nota, false) when id_nota_periodo_aluno <= ultimo_periodo_apontamento and id_tipo_resultado_final = 2 then coalesce(nota < valor_maximo_nota * perc_aprovacao, false) else false end as flg_abaixo_da_media, -- abaixo da média final somente se o apontamento de todos os períodos foram concluídos --valor_maximo_nota * perc_aprovacao, case when id_forma_avaliacao = '2' then conceito_final_abaixo_media else coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then ( case when flg_atividade_avaliativa then resultado_final_calculado else resultado_final_apontado end) < valor_maximo_nota * perc_aprovacao else false end, false) end as flg_resultado_final_abaixo_da_media, -- mesmo para recuperação case when id_forma_avaliacao = '2' then conceito_recuperacao_final_abaixo_media else coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then recuperacao_final < valor_maximo_nota * perc_aprovacao else false end, false) end as flg_recuperacao_final_abaixo_da_media, -- relatorio de resultado final mostra tanto o calculado quanto o pós-recuperaçao coalesce( case when ultimo_periodo_apontamento = ultimo_periodo_turma then resultado_final < valor_maximo_nota * perc_aprovacao else false end, false) as flg_resultado_final_apontado_abaixo_da_media from ( select amt.id_aluno_matricula, npa.id_nota_periodo_aluno, npa.flg_apontamento, cc.id_disciplina, cc.id_componente_curricular, cc.id_forma_avaliacao_componente as id_forma_avaliacao, cc.id_expressao_resultado_componente, pa.id_tipo_resultado_final, c.id_instituicao, s.id_serie, s.num_casas_decimais_nota, t.flg_atividade_avaliativa, coalesce(amdd.flg_dispensado_todos_periodos, false) as flg_dispensado_todos_periodos, mdp.id_motivo_dispensa_periodo notnull or mdd.id_motivo_dispensa_disciplina notnull as flg_dispensado, coalesce(mdp.descricao, mdd.descricao) as dispensa, na.nota, na.nota_conselho, ca.sigla as conceito, -- conversao para conceito ( select cac.sigla from sp_obter_conceito_avaliacao_nota_periodo (amt.id_aluno_matricula, npa.id_nota_periodo_aluno, na.nota) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_convertido, case when pa.id_tipo_resultado_final = 1 then get_soma_notas_aluno (amt.id_turma, amt.id_aluno_matricula, cc.id_disciplina, amt.id_serie_enturmacao) else get_media_notas_aluno (amt.id_turma, amt.id_aluno_matricula, cc.id_disciplina) end as resultado_final_calculado, nf.nota as resultado_final, greatest (nf.nota, nr.nota, nf.nota_conselho)::float as resultado_final_apontado, coalesce(cr.sigla, cf.sigla) as conceito_final, coalesce(cf.flg_aprova, false) = false as conceito_final_abaixo_media, -- recuperação final coalesce(nf.nota_conselho, nr.nota)::double precision as recuperacao_final, cr.sigla as conceito_recuperacao_final, coalesce(cr.flg_aprova, false) = false as conceito_recuperacao_final_abaixo_media, ( select cac.sigla from sp_obter_conceito_avaliacao_nota_final (c.id_instituicao, s.id_serie, nr.nota) as id inner join conceito_avaliacao cac on cac.id_conceito_avaliacao = id) as conceito_recuperacao_final_convertido, -- esses são para determinar se está abaixo da média pa.nota_min_aprovacao / 100.0 as perc_aprovacao, vmnp.valor_maximo_nota / s.valor_maximo_nota as perc_nota_periodo, s.valor_maximo_nota, -- esses ajudam a determinar os períodos que já foram apontados max(npa.id_nota_periodo_aluno) filter (where npa.flg_apontamento) over (partition by amt.id_turma) as ultimo_periodo_turma, max( case when t.flg_atividade_avaliativa then concluido.id_nota_periodo_aluno else na.id_nota_periodo_aluno end) over (partition by amt.id_aluno_matricula, cc.id_disciplina) as ultimo_periodo_apontamento from aluno_turma_diario_impresso a -- isso acelera (muito) a query pois o banco está acostumando a juntar com nota_aluno daqui inner join aluno_matr_turma amt on amt.id_aluno_matricula = a.id_aluno_matricula and amt.id_turma = a.id_turma_desempenho inner join turma t on t.id_turma = amt.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = a.id_serie inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno in ( select tp.id_nota_periodo_aluno from turma_periodo tp where tp.id_turma = t.id_turma union select '5' as id_nota_periodo_aluno) inner join serie s on s.id_serie = ts.id_serie inner join curso c on s.id_curso = c.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular -- nota do periodo left join nota_aluno na on na.id_turma = amt.id_turma and na.id_aluno_matricula = amt.id_aluno_matricula and na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina -- conceito left join conceito_avaliacao ca on na.id_conceito_avaliacao = ca.id_conceito_avaliacao -- dispensa de componente left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.periodos isnull or amdd.flg_dispensado_todos_periodos or npa.id_nota_periodo_aluno = any (amdd.periodos)) left join motivo_dispensa_disciplina mdd on mdd.id_motivo_dispensa_disciplina = amdd.id_motivo_dispensa_disciplina -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = amt.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and npa.id_nota_periodo_aluno = any (mdp.periodos) left join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao left join procedimento_avaliacao_valor_maximo_nota_periodo vmnp on vmnp.id_procedimento_avaliacao = pa.id_procedimento_avaliacao and vmnp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno -- resultado final apontado left join nota_aluno nf on nf.id_turma = amt.id_turma and nf.id_aluno_matricula = amt.id_aluno_matricula and nf.id_disciplina = cc.id_disciplina and nf.id_nota_periodo_aluno = 5 -- conceito final left join conceito_avaliacao cf on cf.id_conceito_avaliacao = nf.id_conceito_avaliacao -- recuperação final left join nota_aluno nr on nr.id_turma = amt.id_turma and nr.id_aluno_matricula = amt.id_aluno_matricula and nr.id_disciplina = cc.id_disciplina and nr.id_nota_periodo_aluno = 6 -- conceito final recuperação left join conceito_avaliacao cr on cr.id_conceito_avaliacao = nr.id_conceito_avaliacao -- conclusão das atividades left join nota_aluno_atividade_concluido concluido on concluido.id_turma = ts.id_turma and concluido.id_serie = ts.id_serie and concluido.id_disciplina = cc.id_disciplina and concluido.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where ts.id_turma = '240001185' and ts.id_serie = '102' and cc.flg_aponta_notas and s.id_forma_avaliacao in (1, 2, 4)) x order by id_aluno_matricula, id_nota_periodo_aluno, id_componente_curricular;
Date: 2026-06-25 15:44:02 Duration: 1s426ms Bind query: yes
8 129 1m29s 501ms 1s372ms 695ms select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = ? and turma.flg_organizada is true and amt.id_turma in (...) and nota_aluno.id_turma in (...) and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = ? and tp.id_turma in (...) and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 25 05 1 947ms 947ms 07 4 2s384ms 596ms 08 20 14s204ms 710ms 09 9 6s328ms 703ms 10 9 4s824ms 536ms 11 7 4s433ms 633ms 12 5 2s916ms 583ms 13 12 8s384ms 698ms 14 29 22s764ms 784ms 15 22 15s279ms 694ms 16 6 4s287ms 714ms 19 2 1s256ms 628ms 21 1 545ms 545ms 22 1 604ms 604ms 23 1 591ms 591ms -
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and nota_aluno.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '1714081' and tp.id_turma in ('260011948', '260011949', '260011950', '260011951', '260011952', '260011953', '260011954', '260011955', '260011956', '260011957', '260011958', '260011959', '260011960', '260011961', '260011964', '260011965', '260011966', '260011967', '260012801', '260012819') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 14:27:48 Duration: 1s372ms Bind query: yes
-
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and nota_aluno.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '1710927' and tp.id_turma in ('260011563', '260011564', '260011565', '260011566', '260011567', '260011569', '260011570', '260011571', '260011572', '260011573', '260011574', '260011575', '260011577') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 14:37:09 Duration: 1s260ms Bind query: yes
-
select amt.id_turma, nota_aluno.id_aluno_matricula, nota_aluno.id_disciplina, nota_aluno.id_nota_periodo_aluno, nota_aluno.nota, nota_aluno.flg_nao_compareceu, nota_aluno.id_resultado_final_disciplina, nota_aluno.id_conceito_avaliacao, nota_aluno.nota_conselho, nota_aluno.nota_recuperacao_calculada, nota_aluno.nota_apos_recuperacao from aluno_matr_turma amt inner join turma on turma.id_turma = amt.id_turma inner join lateral ( select case turma.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true inner join nota_aluno on nota_aluno.id_turma = condicao_turma.id_turma and nota_aluno.id_aluno_matricula = amt.id_aluno_matricula where turma.id_turma_status = 1 and turma.flg_organizada is true and amt.id_turma in ('260012823', '260012824', '260012825', '260012826', '260012827', '260012828', '260012830', '260012831', '260012832', '260012833', '260012834', '260012835', '260012836', '260012837', '260012838', '260012855', '260012856', '260014697', '260014698', '260014700', '260014701', '260014707', '260014708', '260014710', '260014711', '260014712') and nota_aluno.id_turma in ('260012823', '260012824', '260012825', '260012826', '260012827', '260012828', '260012830', '260012831', '260012832', '260012833', '260012834', '260012835', '260012836', '260012837', '260012838', '260012855', '260012856', '260014697', '260014698', '260014700', '260014701', '260014707', '260014708', '260014710', '260014711', '260014712') and exists ( select null from turma_professor tp inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tp.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tp.id_cidadao = '2230752' and tp.id_turma in ('260012823', '260012824', '260012825', '260012826', '260012827', '260012828', '260012830', '260012831', '260012832', '260012833', '260012834', '260012835', '260012836', '260012837', '260012838', '260012855', '260012856', '260014697', '260014698', '260014700', '260014701', '260014707', '260014708', '260014710', '260014711', '260014712') and d.id_disciplina = nota_aluno.id_disciplina union all select null from turma_disciplina td inner join componente_curricular cc on cc.id_componente_curricular = td.id_componente_curricular where td.id_turma = nota_aluno.id_turma and cc.id_disciplina = nota_aluno.id_disciplina and cc.flg_media_global);
Date: 2026-06-25 14:35:10 Duration: 1s222ms Bind query: yes
9 129 1m14s 500ms 1s15ms 580ms select id_aluno_matricula, codigo, nome, escola, nome_mae, to_char(nascimento_data, ?) as data_nascimento, curso, situacao from ( select am.id_aluno_matricula, a.codigo, c.nome, uf.codigo || ? || uf.nome as escola, c.nome_mae, c.nascimento_data, curso.sigla as curso, ams.descricao as situacao from cidadao c inner join aluno a on c.id_cidadao = a.id_cidadao inner join aluno_matricula am on c.id_cidadao = am.id_cidadao inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status inner join curso on curso.id_curso = am.id_curso where c.id_instituicao = ? and am.flg_matricula_atual is true and c.fts @@ to_tsquery(?) limit ? offset ? * ?) as alunos order by nome;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Jun 25 08 4 2s457ms 614ms 09 25 14s799ms 591ms 10 39 21s844ms 560ms 11 14 8s220ms 587ms 12 1 520ms 520ms 13 12 7s832ms 652ms 14 9 5s449ms 605ms 15 6 3s196ms 532ms 16 9 5s221ms 580ms 18 1 581ms 581ms 19 8 4s152ms 519ms 20 1 558ms 558ms -
select id_aluno_matricula, codigo, nome, escola, nome_mae, to_char(nascimento_data, 'DD/MM/YYYY') as data_nascimento, curso, situacao from ( select am.id_aluno_matricula, a.codigo, c.nome, uf.codigo || ' - ' || uf.nome as escola, c.nome_mae, c.nascimento_data, curso.sigla as curso, ams.descricao as situacao from cidadao c inner join aluno a on c.id_cidadao = a.id_cidadao inner join aluno_matricula am on c.id_cidadao = am.id_cidadao inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status inner join curso on curso.id_curso = am.id_curso where c.id_instituicao = '82' and am.flg_matricula_atual is true and c.fts @@ to_tsquery('LAVINIA&MIKAELLY&MOREIRA&DA&SILVA') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2026-06-25 13:50:59 Duration: 1s15ms Bind query: yes
-
select id_aluno_matricula, codigo, nome, escola, nome_mae, to_char(nascimento_data, 'DD/MM/YYYY') as data_nascimento, curso, situacao from ( select am.id_aluno_matricula, a.codigo, c.nome, uf.codigo || ' - ' || uf.nome as escola, c.nome_mae, c.nascimento_data, curso.sigla as curso, ams.descricao as situacao from cidadao c inner join aluno a on c.id_cidadao = a.id_cidadao inner join aluno_matricula am on c.id_cidadao = am.id_cidadao inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status inner join curso on curso.id_curso = am.id_curso where c.id_instituicao = '82' and am.flg_matricula_atual is true and c.fts @@ to_tsquery('LAVINIA&MIKAELLY&MOREIRA&DA&SILVA') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2026-06-25 13:50:35 Duration: 916ms Bind query: yes
-
select id_aluno_matricula, codigo, nome, escola, nome_mae, to_char(nascimento_data, 'DD/MM/YYYY') as data_nascimento, curso, situacao from ( select am.id_aluno_matricula, a.codigo, c.nome, uf.codigo || ' - ' || uf.nome as escola, c.nome_mae, c.nascimento_data, curso.sigla as curso, ams.descricao as situacao from cidadao c inner join aluno a on c.id_cidadao = a.id_cidadao inner join aluno_matricula am on c.id_cidadao = am.id_cidadao inner join unidade_funcional uf on am.id_unidade_funcional = uf.id_unidade_funcional inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status inner join curso on curso.id_curso = am.id_curso where c.id_instituicao = '82' and am.flg_matricula_atual is true and c.fts @@ to_tsquery('bernardo&moreira&borges') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2026-06-25 08:46:54 Duration: 807ms Bind query: yes
10 122 3m9s 502ms 4s143ms 1s550ms select id_turma, id_serie, id_disciplina, id_componente_curricular, id_cidadao, id_aluno_matricula, id_forma_avaliacao_componente, valor_nota_min_aprovacao, id_tipo_arredondamento, num_casas_decimais_nota, nota, conceito, flg_media_global, flg_nao_compareceu, exibir_na_recuperacao, case when flg_media_global then sp_media_global_parcial (t.id_aluno_matricula, t.id_condicao_turma, id_tipo_resultado_final) when id_tipo_resultado_final = ? then get_soma_notas_aluno (t.id_condicao_turma, t.id_aluno_matricula, t.id_disciplina, t.id_serie_enturmacao) else get_media_notas_aluno (t.id_condicao_turma, t.id_aluno_matricula, t.id_disciplina) end::float4 as nota_verificar_recuperacao from ( select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, tp.id_cidadao, am.id_aluno_matricula, cc.id_forma_avaliacao_componente, cc.flg_media_global, (s.valor_maximo_nota * pa.nota_min_aprovacao / ?.?)::float4 as valor_nota_min_aprovacao, pa.id_tipo_arredondamento, pa.id_tipo_resultado_final, s.num_casas_decimais_nota, na.nota as nota, ca.sigla as conceito, na.flg_nao_compareceu, case when cc.id_forma_avaliacao_componente = ? then coalesce(( select cf.flg_aprova is false from nota_aluno nf inner join conceito_avaliacao cf on cf.id_conceito_avaliacao = nf.id_conceito_avaliacao where nf.id_aluno_matricula = amt.id_aluno_matricula and nf.id_turma = condicao_turma.id_turma and nf.id_disciplina = d.id_disciplina and nf.id_nota_periodo_aluno = ?), true) end as exibir_na_recuperacao, amt.id_serie_enturmacao, condicao_turma.id_turma as id_condicao_turma from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join ano_semestre ans on ans.id_ano_semestre = t.id_ano_semestre inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true inner join turma_disciplina td on td.id_turma = t.id_turma and td.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, td.id_disciplina) inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao cross join nota_periodo_aluno npa inner join aluno_matr_turma amt on amt.id_turma = t.id_turma and amt.id_serie_enturmacao = ts.id_serie and amt.data_saida is null inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join lateral ( select case t.id_tipo_turma when ? then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = condicao_turma.id_turma and na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and na.id_disciplina = d.id_disciplina left join conceito_avaliacao ca on ca.id_conceito_avaliacao = na.id_conceito_avaliacao left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in (...) and ans.ano = ? and s.id_forma_avaliacao in (...) and npa.id_nota_periodo_aluno = ? and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status in (...) and not exists ( select null from parecer_conclusivo pc where pc.id_aluno_matricula = amt.id_aluno_matricula) and not exists ( select null from parecer_conclusivo_itinerio_formativo pc_if where pc_if.id_turma = amt.id_turma and pc_if.id_aluno_matricula = amt.id_aluno_matricula and pc_if.id_disciplina = d.id_disciplina) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = d.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[npa.id_nota_periodo_aluno]))) t;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Jun 25 07 2 3s554ms 1s777ms 08 20 34s296ms 1s714ms 09 15 23s328ms 1s555ms 10 17 25s229ms 1s484ms 11 11 17s393ms 1s581ms 12 6 9s355ms 1s559ms 13 14 23s821ms 1s701ms 14 12 9s797ms 816ms 15 17 29s566ms 1s739ms 16 6 8s91ms 1s348ms 17 1 2s56ms 2s56ms 19 1 2s658ms 2s658ms -
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_cidadao, id_aluno_matricula, id_forma_avaliacao_componente, valor_nota_min_aprovacao, id_tipo_arredondamento, num_casas_decimais_nota, -- apontamento de recuperação nota, conceito, flg_media_global, flg_nao_compareceu, exibir_na_recuperacao, case when flg_media_global then sp_media_global_parcial (t.id_aluno_matricula, t.id_condicao_turma, id_tipo_resultado_final) when id_tipo_resultado_final = '1' then get_soma_notas_aluno (t.id_condicao_turma, t.id_aluno_matricula, t.id_disciplina, t.id_serie_enturmacao) else get_media_notas_aluno (t.id_condicao_turma, t.id_aluno_matricula, t.id_disciplina) end::float4 as nota_verificar_recuperacao from ( select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, tp.id_cidadao, am.id_aluno_matricula, cc.id_forma_avaliacao_componente, cc.flg_media_global, (s.valor_maximo_nota * pa.nota_min_aprovacao / 100.0)::float4 as valor_nota_min_aprovacao, pa.id_tipo_arredondamento, pa.id_tipo_resultado_final, s.num_casas_decimais_nota, -- apontamento de recuperação na.nota as nota, ca.sigla as conceito, na.flg_nao_compareceu, case -- conceito final reprovado when cc.id_forma_avaliacao_componente = '2' then coalesce(( select cf.flg_aprova is false from nota_aluno nf inner join conceito_avaliacao cf on cf.id_conceito_avaliacao = nf.id_conceito_avaliacao where nf.id_aluno_matricula = amt.id_aluno_matricula and nf.id_turma = condicao_turma.id_turma and nf.id_disciplina = d.id_disciplina and nf.id_nota_periodo_aluno = '5'), true) end as exibir_na_recuperacao, amt.id_serie_enturmacao, condicao_turma.id_turma as id_condicao_turma from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join ano_semestre ans on ans.id_ano_semestre = t.id_ano_semestre inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true inner join turma_disciplina td on td.id_turma = t.id_turma and td.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, td.id_disciplina) inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao cross join nota_periodo_aluno npa inner join aluno_matr_turma amt on amt.id_turma = t.id_turma and amt.id_serie_enturmacao = ts.id_serie and amt.data_saida is null inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join lateral ( select case t.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = condicao_turma.id_turma and na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and na.id_disciplina = d.id_disciplina left join conceito_avaliacao ca on ca.id_conceito_avaliacao = na.id_conceito_avaliacao left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260013172', '260013173', '260013182', '260013185', '260013184', '260013800', '260013187', '260013178', '260013177', '260013171', '260013174', '260013180', '260013183', '260013186', '260013179', '260013196', '260013189', '260013190', '260013197', '260013193', '260013192', '260013194', '260013191', '260013198', '260013199', '260013195', '260013188') and ans.ano = '2026' and s.id_forma_avaliacao in ('1', '2', '4') and npa.id_nota_periodo_aluno = '6' and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status in ('1', '2', '7') and not exists ( select null from parecer_conclusivo pc where pc.id_aluno_matricula = amt.id_aluno_matricula) and not exists ( select null from parecer_conclusivo_itinerio_formativo pc_if where pc_if.id_turma = amt.id_turma and pc_if.id_aluno_matricula = amt.id_aluno_matricula and pc_if.id_disciplina = d.id_disciplina) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = d.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[npa.id_nota_periodo_aluno]))) t;
Date: 2026-06-25 08:12:45 Duration: 4s143ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_cidadao, id_aluno_matricula, id_forma_avaliacao_componente, valor_nota_min_aprovacao, id_tipo_arredondamento, num_casas_decimais_nota, -- apontamento de recuperação nota, conceito, flg_media_global, flg_nao_compareceu, exibir_na_recuperacao, case when flg_media_global then sp_media_global_parcial (t.id_aluno_matricula, t.id_condicao_turma, id_tipo_resultado_final) when id_tipo_resultado_final = '1' then get_soma_notas_aluno (t.id_condicao_turma, t.id_aluno_matricula, t.id_disciplina, t.id_serie_enturmacao) else get_media_notas_aluno (t.id_condicao_turma, t.id_aluno_matricula, t.id_disciplina) end::float4 as nota_verificar_recuperacao from ( select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, tp.id_cidadao, am.id_aluno_matricula, cc.id_forma_avaliacao_componente, cc.flg_media_global, (s.valor_maximo_nota * pa.nota_min_aprovacao / 100.0)::float4 as valor_nota_min_aprovacao, pa.id_tipo_arredondamento, pa.id_tipo_resultado_final, s.num_casas_decimais_nota, -- apontamento de recuperação na.nota as nota, ca.sigla as conceito, na.flg_nao_compareceu, case -- conceito final reprovado when cc.id_forma_avaliacao_componente = '2' then coalesce(( select cf.flg_aprova is false from nota_aluno nf inner join conceito_avaliacao cf on cf.id_conceito_avaliacao = nf.id_conceito_avaliacao where nf.id_aluno_matricula = amt.id_aluno_matricula and nf.id_turma = condicao_turma.id_turma and nf.id_disciplina = d.id_disciplina and nf.id_nota_periodo_aluno = '5'), true) end as exibir_na_recuperacao, amt.id_serie_enturmacao, condicao_turma.id_turma as id_condicao_turma from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join ano_semestre ans on ans.id_ano_semestre = t.id_ano_semestre inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true inner join turma_disciplina td on td.id_turma = t.id_turma and td.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, td.id_disciplina) inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao cross join nota_periodo_aluno npa inner join aluno_matr_turma amt on amt.id_turma = t.id_turma and amt.id_serie_enturmacao = ts.id_serie and amt.data_saida is null inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join lateral ( select case t.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = condicao_turma.id_turma and na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and na.id_disciplina = d.id_disciplina left join conceito_avaliacao ca on ca.id_conceito_avaliacao = na.id_conceito_avaliacao left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260013172', '260013173', '260013182', '260013185', '260013184', '260013800', '260013187', '260013178', '260013177', '260013171', '260013174', '260013180', '260013183', '260013186', '260013179', '260013196', '260013189', '260013190', '260013197', '260013193', '260013192', '260013194', '260013191', '260013198', '260013199', '260013195', '260013188') and ans.ano = '2026' and s.id_forma_avaliacao in ('1', '2', '4') and npa.id_nota_periodo_aluno = '6' and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status in ('1', '2', '7') and not exists ( select null from parecer_conclusivo pc where pc.id_aluno_matricula = amt.id_aluno_matricula) and not exists ( select null from parecer_conclusivo_itinerio_formativo pc_if where pc_if.id_turma = amt.id_turma and pc_if.id_aluno_matricula = amt.id_aluno_matricula and pc_if.id_disciplina = d.id_disciplina) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = d.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[npa.id_nota_periodo_aluno]))) t;
Date: 2026-06-25 08:12:49 Duration: 4s41ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_cidadao, id_aluno_matricula, id_forma_avaliacao_componente, valor_nota_min_aprovacao, id_tipo_arredondamento, num_casas_decimais_nota, -- apontamento de recuperação nota, conceito, flg_media_global, flg_nao_compareceu, exibir_na_recuperacao, case when flg_media_global then sp_media_global_parcial (t.id_aluno_matricula, t.id_condicao_turma, id_tipo_resultado_final) when id_tipo_resultado_final = '1' then get_soma_notas_aluno (t.id_condicao_turma, t.id_aluno_matricula, t.id_disciplina, t.id_serie_enturmacao) else get_media_notas_aluno (t.id_condicao_turma, t.id_aluno_matricula, t.id_disciplina) end::float4 as nota_verificar_recuperacao from ( select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, tp.id_cidadao, am.id_aluno_matricula, cc.id_forma_avaliacao_componente, cc.flg_media_global, (s.valor_maximo_nota * pa.nota_min_aprovacao / 100.0)::float4 as valor_nota_min_aprovacao, pa.id_tipo_arredondamento, pa.id_tipo_resultado_final, s.num_casas_decimais_nota, -- apontamento de recuperação na.nota as nota, ca.sigla as conceito, na.flg_nao_compareceu, case -- conceito final reprovado when cc.id_forma_avaliacao_componente = '2' then coalesce(( select cf.flg_aprova is false from nota_aluno nf inner join conceito_avaliacao cf on cf.id_conceito_avaliacao = nf.id_conceito_avaliacao where nf.id_aluno_matricula = amt.id_aluno_matricula and nf.id_turma = condicao_turma.id_turma and nf.id_disciplina = d.id_disciplina and nf.id_nota_periodo_aluno = '5'), true) end as exibir_na_recuperacao, amt.id_serie_enturmacao, condicao_turma.id_turma as id_condicao_turma from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join ano_semestre ans on ans.id_ano_semestre = t.id_ano_semestre inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true inner join turma_disciplina td on td.id_turma = t.id_turma and td.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, td.id_disciplina) inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao cross join nota_periodo_aluno npa inner join aluno_matr_turma amt on amt.id_turma = t.id_turma and amt.id_serie_enturmacao = ts.id_serie and amt.data_saida is null inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join lateral ( select case t.id_tipo_turma when 4 then amt.id_turma_principal else amt.id_turma end as id_turma) condicao_turma on true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = condicao_turma.id_turma and na.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and na.id_disciplina = d.id_disciplina left join conceito_avaliacao ca on ca.id_conceito_avaliacao = na.id_conceito_avaliacao left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260008245', '260008247', '260008240', '260008248', '260008249', '260008239', '260008258', '260008246', '260008254', '260008243') and ans.ano = '2026' and s.id_forma_avaliacao in ('1', '2', '4') and npa.id_nota_periodo_aluno = '6' and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status in ('1', '2', '7') and not exists ( select null from parecer_conclusivo pc where pc.id_aluno_matricula = amt.id_aluno_matricula) and not exists ( select null from parecer_conclusivo_itinerio_formativo pc_if where pc_if.id_turma = amt.id_turma and pc_if.id_aluno_matricula = amt.id_aluno_matricula and pc_if.id_disciplina = d.id_disciplina) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = d.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[npa.id_nota_periodo_aluno]))) t;
Date: 2026-06-25 10:03:11 Duration: 3s833ms Bind query: yes
11 96 4m7s 508ms 13s873ms 2s577ms 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 #11
Day Hour Count Duration Avg duration Jun 25 08 7 23s265ms 3s323ms 09 10 22s500ms 2s250ms 10 13 37s392ms 2s876ms 11 10 34s721ms 3s472ms 12 4 5s56ms 1s264ms 13 18 40s597ms 2s255ms 14 13 35s863ms 2s758ms 15 12 26s459ms 2s204ms 16 9 21s565ms 2s396ms -
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 = '606134' 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-25 08:01:17 Duration: 13s873ms 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 = '607139' 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-25 13:14:38 Duration: 5s44ms 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 = '607139' 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-25 13:16:03 Duration: 4s564ms Bind query: yes
12 94 6m28s 3s542ms 7s955ms 4s130ms select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc limit ? offset ?) r;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 25 12 3 11s870ms 3s956ms 13 31 2m24s 4s668ms 14 45 2m51s 3s816ms 15 15 59s914ms 3s994ms -
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 10) r;
Date: 2026-06-25 13:26:44 Duration: 7s955ms Bind query: yes
-
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 10) r;
Date: 2026-06-25 13:25:54 Duration: 7s897ms Bind query: yes
-
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 20) r;
Date: 2026-06-25 13:21:16 Duration: 7s720ms Bind query: yes
13 79 5m7s 1s661ms 9s577ms 3s895ms select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc) tabela;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Jun 25 10 4 11s240ms 2s810ms 11 2 7s735ms 3s867ms 12 17 1m2s 3s684ms 13 17 1m18s 4s613ms 14 36 2m16s 3s782ms 15 3 11s556ms 3s852ms -
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:26:17 Duration: 9s577ms Bind query: yes
-
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:20:53 Duration: 5s415ms Bind query: yes
-
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:21:50 Duration: 5s238ms Bind query: yes
14 79 5m2s 1s585ms 7s354ms 3s830ms select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc limit ?;Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Jun 25 10 4 10s894ms 2s723ms 11 2 7s658ms 3s829ms 12 17 1m2s 3s701ms 13 17 1m14s 4s387ms 14 36 2m15s 3s767ms 15 3 10s894ms 3s631ms -
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:26:24 Duration: 7s354ms Bind query: yes
-
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:20:59 Duration: 5s561ms Bind query: yes
-
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:21:55 Duration: 5s194ms Bind query: yes
15 78 2m26s 522ms 12s959ms 1s872ms select coalesce(c.id_cidadao, ?) as id_cidadao, c.nome as professor, t.id_turma, s.id_serie, t.id_turma_status = ? as flg_ativa, t.nome as nome_turma, uf.codigo as codigo_unidade, uf.nome as nome_unidade, curso.sigla as sigla_curso, s.sigla as sigla_serie, u.sigla as sigla_turno, a.descricao as area_conhecimento, npa.id_nota_periodo_aluno, npa.ordem as ordem_apontamento, coalesce(tp.descricao, npa.descricao) as apontamento, not (bool_and(exists ( select null from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and aead.id_turma = amt.id_turma and aead.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc))) as flg_pendente from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join turno u on u.id_turno = t.id_turno inner join unidade_funcional uf on t.id_unidade_funcional = uf.id_unidade_funcional inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on emad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join area_conhecimento_gestao a on a.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emap.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on ead.id_eixo_avaliacao_desc = emad.id_eixo_avaliacao_desc inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = emap.id_nota_periodo_aluno left join turma_periodo tp on tp.id_turma = t.id_turma and tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno inner join aluno_matr_turma amt on amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo left join apontamento_avaliacao_desc aad on aad.id_turma = amt.id_turma and am.id_aluno_matricula = aad.id_aluno_matricula and aad.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join turma_professor tpf on tpf.id_turma = ts.id_turma and tpf.id_serie = ts.id_serie left join cidadao c on c.id_cidadao = tpf.id_cidadao where t.id_turma in (...) and ead.flg_descritor = false and emad.flg_ativo is true and am.id_aluno_matr_status in (...) and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= npa.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> array[npa.id_nota_periodo_aluno]) and (aad.flg_nao_foi_possivel_avaliar is null or aad.flg_nao_foi_possivel_avaliar is false) and amt.data_saida is null and (a.flg_exclusivo_necessidade_esp is false or (a.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(a.necessidade_especial)))) and (a.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) group by c.id_cidadao, c.nome, t.id_turma, t.id_turma_status, uf.id_unidade_funcional, curso.id_curso, s.id_serie, t.nome, s.sigla, u.sigla, a.descricao, npa.id_nota_periodo_aluno, npa.descricao, tp.descricao order by t.id_turma_status, professor, nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Jun 25 07 3 7s100ms 2s366ms 08 7 16s222ms 2s317ms 09 5 6s87ms 1s217ms 10 15 27s848ms 1s856ms 11 16 28s35ms 1s752ms 12 4 5s492ms 1s373ms 13 7 9s676ms 1s382ms 14 3 2s941ms 980ms 15 10 29s861ms 2s986ms 16 4 3s860ms 965ms 19 1 597ms 597ms 20 2 7s771ms 3s885ms 23 1 542ms 542ms -
select coalesce(c.id_cidadao, 0) as id_cidadao, c.nome as professor, t.id_turma, s.id_serie, t.id_turma_status = '1' as flg_ativa, t.nome as nome_turma, uf.codigo as codigo_unidade, uf.nome as nome_unidade, curso.sigla as sigla_curso, s.sigla as sigla_serie, u.sigla as sigla_turno, a.descricao as area_conhecimento, npa.id_nota_periodo_aluno, npa.ordem as ordem_apontamento, coalesce(tp.descricao, npa.descricao) as apontamento, not (bool_and(exists ( select null from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and aead.id_turma = amt.id_turma and aead.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc))) as flg_pendente from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join turno u on u.id_turno = t.id_turno inner join unidade_funcional uf on t.id_unidade_funcional = uf.id_unidade_funcional inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on emad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join area_conhecimento_gestao a on a.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emap.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on ead.id_eixo_avaliacao_desc = emad.id_eixo_avaliacao_desc inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = emap.id_nota_periodo_aluno left join turma_periodo tp on tp.id_turma = t.id_turma and tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno inner join aluno_matr_turma amt on amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo left join apontamento_avaliacao_desc aad on aad.id_turma = amt.id_turma and am.id_aluno_matricula = aad.id_aluno_matricula and aad.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join turma_professor tpf on tpf.id_turma = ts.id_turma and tpf.id_serie = ts.id_serie left join cidadao c on c.id_cidadao = tpf.id_cidadao where t.id_turma in ('260009692', '260002454', '260002449', '260002467', '260002463', '260002460', '260002451', '260002465', '260002475', '260009690', '260002473', '260002455', '260002472', '260002474', '260002452', '260002462', '260002461', '260002453', '260002459', '260002466', '260002468', '260002457', '260002470', '260002469', '260002471', '260002456', '260002458', '260002450') and ead.flg_descritor = false and emad.flg_ativo is true and am.id_aluno_matr_status in ('1', '2', '7') and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= npa.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[npa.id_nota_periodo_aluno]) and (aad.flg_nao_foi_possivel_avaliar is null or aad.flg_nao_foi_possivel_avaliar is false) and amt.data_saida is null and (a.flg_exclusivo_necessidade_esp is false or (a.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(a.necessidade_especial)))) and (a.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) group by c.id_cidadao, c.nome, t.id_turma, t.id_turma_status, uf.id_unidade_funcional, curso.id_curso, s.id_serie, t.nome, s.sigla, u.sigla, a.descricao, npa.id_nota_periodo_aluno, npa.descricao, tp.descricao order by t.id_turma_status, professor, nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2026-06-25 15:26:21 Duration: 12s959ms Bind query: yes
-
select coalesce(c.id_cidadao, 0) as id_cidadao, c.nome as professor, t.id_turma, s.id_serie, t.id_turma_status = '1' as flg_ativa, t.nome as nome_turma, uf.codigo as codigo_unidade, uf.nome as nome_unidade, curso.sigla as sigla_curso, s.sigla as sigla_serie, u.sigla as sigla_turno, a.descricao as area_conhecimento, npa.id_nota_periodo_aluno, npa.ordem as ordem_apontamento, coalesce(tp.descricao, npa.descricao) as apontamento, not (bool_and(exists ( select null from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and aead.id_turma = amt.id_turma and aead.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc))) as flg_pendente from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join turno u on u.id_turno = t.id_turno inner join unidade_funcional uf on t.id_unidade_funcional = uf.id_unidade_funcional inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on emad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join area_conhecimento_gestao a on a.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emap.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on ead.id_eixo_avaliacao_desc = emad.id_eixo_avaliacao_desc inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = emap.id_nota_periodo_aluno left join turma_periodo tp on tp.id_turma = t.id_turma and tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno inner join aluno_matr_turma amt on amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo left join apontamento_avaliacao_desc aad on aad.id_turma = amt.id_turma and am.id_aluno_matricula = aad.id_aluno_matricula and aad.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join turma_professor tpf on tpf.id_turma = ts.id_turma and tpf.id_serie = ts.id_serie left join cidadao c on c.id_cidadao = tpf.id_cidadao where t.id_turma in ('260007131', '260007130', '260007149', '260007123', '260007145', '260007136', '260007151', '260007138', '260007121', '260007127', '260007150', '260007124', '260007135', '260007122', '260007134', '260007139', '260007129', '260007144', '260007140', '260007126', '260007142', '260007141', '260007133', '260007132', '260007137', '260007125', '260007120', '260007147', '260007146', '260007148', '260007143', '260007128') and ead.flg_descritor = false and emad.flg_ativo is true and am.id_aluno_matr_status in ('1', '2', '7') and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= npa.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[npa.id_nota_periodo_aluno]) and (aad.flg_nao_foi_possivel_avaliar is null or aad.flg_nao_foi_possivel_avaliar is false) and amt.data_saida is null and (a.flg_exclusivo_necessidade_esp is false or (a.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(a.necessidade_especial)))) and (a.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) group by c.id_cidadao, c.nome, t.id_turma, t.id_turma_status, uf.id_unidade_funcional, curso.id_curso, s.id_serie, t.nome, s.sigla, u.sigla, a.descricao, npa.id_nota_periodo_aluno, npa.descricao, tp.descricao order by t.id_turma_status, professor, nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2026-06-25 08:42:45 Duration: 8s913ms Bind query: yes
-
select coalesce(c.id_cidadao, 0) as id_cidadao, c.nome as professor, t.id_turma, s.id_serie, t.id_turma_status = '1' as flg_ativa, t.nome as nome_turma, uf.codigo as codigo_unidade, uf.nome as nome_unidade, curso.sigla as sigla_curso, s.sigla as sigla_serie, u.sigla as sigla_turno, a.descricao as area_conhecimento, npa.id_nota_periodo_aluno, npa.ordem as ordem_apontamento, coalesce(tp.descricao, npa.descricao) as apontamento, not (bool_and(exists ( select null from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and aead.id_turma = amt.id_turma and aead.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc))) as flg_pendente from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join turno u on u.id_turno = t.id_turno inner join unidade_funcional uf on t.id_unidade_funcional = uf.id_unidade_funcional inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on emad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join area_conhecimento_gestao a on a.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emap.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on ead.id_eixo_avaliacao_desc = emad.id_eixo_avaliacao_desc inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = emap.id_nota_periodo_aluno left join turma_periodo tp on tp.id_turma = t.id_turma and tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno inner join aluno_matr_turma amt on amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo left join apontamento_avaliacao_desc aad on aad.id_turma = amt.id_turma and am.id_aluno_matricula = aad.id_aluno_matricula and aad.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join turma_professor tpf on tpf.id_turma = ts.id_turma and tpf.id_serie = ts.id_serie left join cidadao c on c.id_cidadao = tpf.id_cidadao where t.id_turma in ('260006416', '260006422', '260006420', '260006425', '260006411', '260006423', '260006421', '260006419', '260006413', '260006410', '260006415', '260006408', '260006412', '260006417', '260006409', '260006429', '260006426', '260007438', '260006428', '260006414', '260006418') and ead.flg_descritor = false and emad.flg_ativo is true and am.id_aluno_matr_status in ('1', '2', '7') and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= npa.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[npa.id_nota_periodo_aluno]) and (aad.flg_nao_foi_possivel_avaliar is null or aad.flg_nao_foi_possivel_avaliar is false) and amt.data_saida is null and (a.flg_exclusivo_necessidade_esp is false or (a.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(a.necessidade_especial)))) and (a.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) group by c.id_cidadao, c.nome, t.id_turma, t.id_turma_status, uf.id_unidade_funcional, curso.id_curso, s.id_serie, t.nome, s.sigla, u.sigla, a.descricao, npa.id_nota_periodo_aluno, npa.descricao, tp.descricao order by t.id_turma_status, professor, nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2026-06-25 15:10:16 Duration: 5s740ms Bind query: yes
16 45 39s805ms 505ms 1s603ms 884ms select aluno.codigo as matricula, am.id_aluno_matricula, amt.id_turma as id_turma, cidadao.nome, coalesce(dc.numero_nis, ?) as nis, to_char(cidadao.nascimento_data, ?) as nasc, raca_cor.descricao as raca_cor, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_jan, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, ?) else null end as perc_freq_fev, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_mar, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_abr, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_mai, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_jun, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_jul, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_ago, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_set, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_out, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_nov, case when concat(?, ?)::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat(?, ?)::date, concat(?, ?)::date) else null end as perc_freq_dez, sp_percentual_frequencia (am.id_aluno_matricula, ?) as perc_frequencia, coalesce(faltas.motivos || ?, ?) as motivos from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join raca_cor on raca_cor.id_raca_cor = cidadao.id_raca_cor left join documentos_cidadao dc on dc.id_cidadao = cidadao.id_cidadao inner join aluno on aluno.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = am.id_aluno_matr_status inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join lateral ( select fadd.id_aluno_matricula, fadd.id_turma, string_agg(distinct mfj.descricao, ? order by mfj.descricao) as motivos, count(*) as total from falta_aluno_disciplina_diario fadd left join motivo_falta_justificada mfj on mfj.id_motivo_falta_justificada = fadd.id_motivo_falta_justificada inner join dia_semana ds on ds.dia_semana_postgresql = extract(dow from fadd.data) where fadd.id_turma = ? and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = fadd.id_aluno_matricula and disp.id_turma = fadd.id_turma and disp.id_disciplina = fadd.id_disciplina and (disp.flg_dispensado_todos_periodos or disp.periodos @> array[fadd.id_nota_periodo_aluno])) and exists ( select null from calendario_periodo_data cpd where cpd.id_calendario = ? and cpd.data = fadd.data and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = fadd.id_aluno_matricula and (mdp.periodos @> array[cpd.bimestre]) is true)) group by fadd.id_aluno_matricula, fadd.id_turma) as faltas on faltas.id_aluno_matricula = amt.id_aluno_matricula and faltas.id_turma = amt.id_turma where cidadao.id_instituicao = ? and amt.id_turma = ? and aluno_matr_status.flg_status_ativo is true order by cidadao.nome;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Jun 25 07 2 1s442ms 721ms 08 8 11s224ms 1s403ms 09 2 1s822ms 911ms 11 3 1s730ms 576ms 12 3 1s911ms 637ms 13 4 3s914ms 978ms 14 11 7s371ms 670ms 15 9 8s255ms 917ms 16 2 1s157ms 578ms 17 1 975ms 975ms -
select aluno.codigo as matricula, am.id_aluno_matricula, amt.id_turma as id_turma, cidadao.nome, coalesce(dc.numero_nis, '') as nis, to_char(cidadao.nascimento_data, 'dd/MM/yyyy') as nasc, raca_cor.descricao as raca_cor, case when concat('2026', '-01-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date) else null end as perc_freq_jan, case when concat('2026', '-02-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28') else null end as perc_freq_fev, case when concat('2026', '-03-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date) else null end as perc_freq_mar, case when concat('2026', '-04-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date) else null end as perc_freq_abr, case when concat('2026', '-05-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date) else null end as perc_freq_mai, case when concat('2026', '-06-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date) else null end as perc_freq_jun, case when concat('2026', '-07-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date) else null end as perc_freq_jul, case when concat('2026', '-08-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date) else null end as perc_freq_ago, case when concat('2026', '-09-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date) else null end as perc_freq_set, case when concat('2026', '-10-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date) else null end as perc_freq_out, case when concat('2026', '-11-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date) else null end as perc_freq_nov, case when concat('2026', '-12-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date) else null end as perc_freq_dez, sp_percentual_frequencia (am.id_aluno_matricula, '260008999') as perc_frequencia, coalesce(faltas.motivos || '.', '') as motivos from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join raca_cor on raca_cor.id_raca_cor = cidadao.id_raca_cor left join documentos_cidadao dc on dc.id_cidadao = cidadao.id_cidadao inner join aluno on aluno.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = am.id_aluno_matr_status inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join lateral ( select fadd.id_aluno_matricula, fadd.id_turma, string_agg(distinct mfj.descricao, '; ' order by mfj.descricao) as motivos, count(*) as total from falta_aluno_disciplina_diario fadd left join motivo_falta_justificada mfj on mfj.id_motivo_falta_justificada = fadd.id_motivo_falta_justificada inner join dia_semana ds on ds.dia_semana_postgresql = extract(dow from fadd.data) where fadd.id_turma = '260008999' and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = fadd.id_aluno_matricula and disp.id_turma = fadd.id_turma and disp.id_disciplina = fadd.id_disciplina and (disp.flg_dispensado_todos_periodos or disp.periodos @> ARRAY[fadd.id_nota_periodo_aluno])) and exists ( select null from calendario_periodo_data cpd where cpd.id_calendario = '32676' and cpd.data = fadd.data and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = fadd.id_aluno_matricula and (mdp.periodos @> ARRAY[cpd.bimestre]) is true)) group by fadd.id_aluno_matricula, fadd.id_turma) as faltas on faltas.id_aluno_matricula = amt.id_aluno_matricula and faltas.id_turma = amt.id_turma where cidadao.id_instituicao = '97' and amt.id_turma = '260008999' and aluno_matr_status.flg_status_ativo is true order by cidadao.nome;
Date: 2026-06-25 08:10:51 Duration: 1s603ms Bind query: yes
-
select aluno.codigo as matricula, am.id_aluno_matricula, amt.id_turma as id_turma, cidadao.nome, coalesce(dc.numero_nis, '') as nis, to_char(cidadao.nascimento_data, 'dd/MM/yyyy') as nasc, raca_cor.descricao as raca_cor, case when concat('2026', '-01-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date) else null end as perc_freq_jan, case when concat('2026', '-02-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28') else null end as perc_freq_fev, case when concat('2026', '-03-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date) else null end as perc_freq_mar, case when concat('2026', '-04-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date) else null end as perc_freq_abr, case when concat('2026', '-05-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date) else null end as perc_freq_mai, case when concat('2026', '-06-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date) else null end as perc_freq_jun, case when concat('2026', '-07-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date) else null end as perc_freq_jul, case when concat('2026', '-08-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date) else null end as perc_freq_ago, case when concat('2026', '-09-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date) else null end as perc_freq_set, case when concat('2026', '-10-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date) else null end as perc_freq_out, case when concat('2026', '-11-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date) else null end as perc_freq_nov, case when concat('2026', '-12-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date) else null end as perc_freq_dez, sp_percentual_frequencia (am.id_aluno_matricula, '260009006') as perc_frequencia, coalesce(faltas.motivos || '.', '') as motivos from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join raca_cor on raca_cor.id_raca_cor = cidadao.id_raca_cor left join documentos_cidadao dc on dc.id_cidadao = cidadao.id_cidadao inner join aluno on aluno.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = am.id_aluno_matr_status inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join lateral ( select fadd.id_aluno_matricula, fadd.id_turma, string_agg(distinct mfj.descricao, '; ' order by mfj.descricao) as motivos, count(*) as total from falta_aluno_disciplina_diario fadd left join motivo_falta_justificada mfj on mfj.id_motivo_falta_justificada = fadd.id_motivo_falta_justificada inner join dia_semana ds on ds.dia_semana_postgresql = extract(dow from fadd.data) where fadd.id_turma = '260009006' and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = fadd.id_aluno_matricula and disp.id_turma = fadd.id_turma and disp.id_disciplina = fadd.id_disciplina and (disp.flg_dispensado_todos_periodos or disp.periodos @> ARRAY[fadd.id_nota_periodo_aluno])) and exists ( select null from calendario_periodo_data cpd where cpd.id_calendario = '32676' and cpd.data = fadd.data and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = fadd.id_aluno_matricula and (mdp.periodos @> ARRAY[cpd.bimestre]) is true)) group by fadd.id_aluno_matricula, fadd.id_turma) as faltas on faltas.id_aluno_matricula = amt.id_aluno_matricula and faltas.id_turma = amt.id_turma where cidadao.id_instituicao = '97' and amt.id_turma = '260009006' and aluno_matr_status.flg_status_ativo is true order by cidadao.nome;
Date: 2026-06-25 08:10:36 Duration: 1s585ms Bind query: yes
-
select aluno.codigo as matricula, am.id_aluno_matricula, amt.id_turma as id_turma, cidadao.nome, coalesce(dc.numero_nis, '') as nis, to_char(cidadao.nascimento_data, 'dd/MM/yyyy') as nasc, raca_cor.descricao as raca_cor, case when concat('2026', '-01-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-01-01')::date, concat('2026', '-01-31')::date) else null end as perc_freq_jan, case when concat('2026', '-02-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-02-01')::date, '2026-02-28') else null end as perc_freq_fev, case when concat('2026', '-03-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-03-01')::date, concat('2026', '-03-31')::date) else null end as perc_freq_mar, case when concat('2026', '-04-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-04-01')::date, concat('2026', '-04-30')::date) else null end as perc_freq_abr, case when concat('2026', '-05-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-05-01')::date, concat('2026', '-05-31')::date) else null end as perc_freq_mai, case when concat('2026', '-06-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-06-01')::date, concat('2026', '-06-30')::date) else null end as perc_freq_jun, case when concat('2026', '-07-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-07-01')::date, concat('2026', '-07-31')::date) else null end as perc_freq_jul, case when concat('2026', '-08-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-08-01')::date, concat('2026', '-08-31')::date) else null end as perc_freq_ago, case when concat('2026', '-09-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-09-01')::date, concat('2026', '-09-30')::date) else null end as perc_freq_set, case when concat('2026', '-10-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-10-01')::date, concat('2026', '-10-31')::date) else null end as perc_freq_out, case when concat('2026', '-11-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-11-01')::date, concat('2026', '-11-30')::date) else null end as perc_freq_nov, case when concat('2026', '-12-01')::date <= now() then sp_percentual_frequencia_mes (am.id_aluno_matricula, amt.id_turma, null, concat('2026', '-12-01')::date, concat('2026', '-12-31')::date) else null end as perc_freq_dez, sp_percentual_frequencia (am.id_aluno_matricula, '260009003') as perc_frequencia, coalesce(faltas.motivos || '.', '') as motivos from aluno_matricula am inner join cidadao on cidadao.id_cidadao = am.id_cidadao inner join raca_cor on raca_cor.id_raca_cor = cidadao.id_raca_cor left join documentos_cidadao dc on dc.id_cidadao = cidadao.id_cidadao inner join aluno on aluno.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = am.id_aluno_matr_status inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre left join lateral ( select fadd.id_aluno_matricula, fadd.id_turma, string_agg(distinct mfj.descricao, '; ' order by mfj.descricao) as motivos, count(*) as total from falta_aluno_disciplina_diario fadd left join motivo_falta_justificada mfj on mfj.id_motivo_falta_justificada = fadd.id_motivo_falta_justificada inner join dia_semana ds on ds.dia_semana_postgresql = extract(dow from fadd.data) where fadd.id_turma = '260009003' and not exists ( select null from aluno_matr_dispensa_disciplina disp where disp.id_aluno_matricula = fadd.id_aluno_matricula and disp.id_turma = fadd.id_turma and disp.id_disciplina = fadd.id_disciplina and (disp.flg_dispensado_todos_periodos or disp.periodos @> ARRAY[fadd.id_nota_periodo_aluno])) and exists ( select null from calendario_periodo_data cpd where cpd.id_calendario = '32676' and cpd.data = fadd.data and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = fadd.id_aluno_matricula and (mdp.periodos @> ARRAY[cpd.bimestre]) is true)) group by fadd.id_aluno_matricula, fadd.id_turma) as faltas on faltas.id_aluno_matricula = amt.id_aluno_matricula and faltas.id_turma = amt.id_turma where cidadao.id_instituicao = '97' and amt.id_turma = '260009003' and aluno_matr_status.flg_status_ativo is true order by cidadao.nome;
Date: 2026-06-25 08:23:52 Duration: 1s531ms Bind query: yes
17 44 1m55s 512ms 18s249ms 2s627ms select f.id_aluno_matricula, f.id_disciplina, f.data, to_char(f.data, ?) as data_formatada, f.id_horario_turma, f.flg_justificada, upper(m.sigla) as motivo from falta_aluno_disciplina_diario f inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = f.id_aluno_matricula left join motivo_falta_justificada m on m.id_motivo_falta_justificada = f.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = f.id_turma and rfdd.id_disciplina = f.id_disciplina and rfdd.data_referencia = f.data where f.data <= coalesce(a.data_primeira_saida, f.data) and rfdd.flg_concluido is true union select fh.id_aluno_matricula, fh.id_disciplina, fh.data, to_char(fh.data, ?) as data_formatada, fh.id_horario_turma, fh.flg_justificada, coalesce(fh.descricao_motivo_falta_justificada, upper(mh.sigla)) as motivo from aluno_lancamento.falta_aluno_disciplina_diario_hist fh inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = fh.id_aluno_matricula left join motivo_falta_justificada mh on mh.id_motivo_falta_justificada = fh.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = fh.id_turma and rfdd.id_disciplina = fh.id_disciplina and rfdd.data_referencia = fh.data where fh.data <= coalesce(a.data_primeira_saida, fh.data) and rfdd.flg_concluido is true order by id_aluno_matricula, id_disciplina, data;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Jun 25 06 1 2s344ms 2s344ms 08 4 25s473ms 6s368ms 09 9 21s421ms 2s380ms 10 4 7s982ms 1s995ms 11 2 4s903ms 2s451ms 12 9 23s875ms 2s652ms 13 1 512ms 512ms 14 5 8s619ms 1s723ms 15 1 516ms 516ms 16 1 2s801ms 2s801ms 17 6 15s444ms 2s574ms 21 1 1s700ms 1s700ms -
select f.id_aluno_matricula, f.id_disciplina, f.data, to_char(f.data, 'DD/MM/YYYY') as data_formatada, f.id_horario_turma, f.flg_justificada, upper(m.sigla) as motivo from falta_aluno_disciplina_diario f inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = f.id_aluno_matricula left join motivo_falta_justificada m on m.id_motivo_falta_justificada = f.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = f.id_turma and rfdd.id_disciplina = f.id_disciplina and rfdd.data_referencia = f.data where f.data <= coalesce(a.data_primeira_saida, f.data) and rfdd.flg_concluido is true union select fh.id_aluno_matricula, fh.id_disciplina, fh.data, to_char(fh.data, 'DD/MM/YYYY') as data_formatada, fh.id_horario_turma, fh.flg_justificada, coalesce(fh.descricao_motivo_falta_justificada, upper(mh.sigla)) as motivo from aluno_lancamento.falta_aluno_disciplina_diario_hist fh inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = fh.id_aluno_matricula left join motivo_falta_justificada mh on mh.id_motivo_falta_justificada = fh.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = fh.id_turma and rfdd.id_disciplina = fh.id_disciplina and rfdd.data_referencia = fh.data where fh.data <= coalesce(a.data_primeira_saida, fh.data) and rfdd.flg_concluido is true order by id_aluno_matricula, id_disciplina, data;
Date: 2026-06-25 08:30:49 Duration: 18s249ms Bind query: yes
-
select f.id_aluno_matricula, f.id_disciplina, f.data, to_char(f.data, 'DD/MM/YYYY') as data_formatada, f.id_horario_turma, f.flg_justificada, upper(m.sigla) as motivo from falta_aluno_disciplina_diario f inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = f.id_aluno_matricula left join motivo_falta_justificada m on m.id_motivo_falta_justificada = f.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = f.id_turma and rfdd.id_disciplina = f.id_disciplina and rfdd.data_referencia = f.data where f.data <= coalesce(a.data_primeira_saida, f.data) and rfdd.flg_concluido is true union select fh.id_aluno_matricula, fh.id_disciplina, fh.data, to_char(fh.data, 'DD/MM/YYYY') as data_formatada, fh.id_horario_turma, fh.flg_justificada, coalesce(fh.descricao_motivo_falta_justificada, upper(mh.sigla)) as motivo from aluno_lancamento.falta_aluno_disciplina_diario_hist fh inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = fh.id_aluno_matricula left join motivo_falta_justificada mh on mh.id_motivo_falta_justificada = fh.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = fh.id_turma and rfdd.id_disciplina = fh.id_disciplina and rfdd.data_referencia = fh.data where fh.data <= coalesce(a.data_primeira_saida, fh.data) and rfdd.flg_concluido is true order by id_aluno_matricula, id_disciplina, data;
Date: 2026-06-25 12:29:49 Duration: 5s165ms Bind query: yes
-
select f.id_aluno_matricula, f.id_disciplina, f.data, to_char(f.data, 'DD/MM/YYYY') as data_formatada, f.id_horario_turma, f.flg_justificada, upper(m.sigla) as motivo from falta_aluno_disciplina_diario f inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = f.id_aluno_matricula left join motivo_falta_justificada m on m.id_motivo_falta_justificada = f.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = f.id_turma and rfdd.id_disciplina = f.id_disciplina and rfdd.data_referencia = f.data where f.data <= coalesce(a.data_primeira_saida, f.data) and rfdd.flg_concluido is true union select fh.id_aluno_matricula, fh.id_disciplina, fh.data, to_char(fh.data, 'DD/MM/YYYY') as data_formatada, fh.id_horario_turma, fh.flg_justificada, coalesce(fh.descricao_motivo_falta_justificada, upper(mh.sigla)) as motivo from aluno_lancamento.falta_aluno_disciplina_diario_hist fh inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = fh.id_aluno_matricula left join motivo_falta_justificada mh on mh.id_motivo_falta_justificada = fh.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = fh.id_turma and rfdd.id_disciplina = fh.id_disciplina and rfdd.data_referencia = fh.data where fh.data <= coalesce(a.data_primeira_saida, fh.data) and rfdd.flg_concluido is true order by id_aluno_matricula, id_disciplina, data;
Date: 2026-06-25 17:44:21 Duration: 4s560ms Bind query: yes
18 43 8m48s 1s70ms 35s244ms 12s287ms with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = ?)) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> ? then to_char(max(data_ocorrencia), ?) else to_char(am.data_matricula, ?) end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then ? else ? end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, ?) as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, ?) as login_aluno, coalesce(procedencia_rendimento.descricao, ?) as procedencia_rendimento, coalesce(procedencia_escola.descricao, ?) as procedencia_escola, coalesce(procedencia_modalidade.descricao, ?) as procedencia_modalidade, coalesce(dc.numero_cns, ?) as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || ? || dc.dv_rg else dc.numero_rg end else ? end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, ?) as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> ? then coalesce(?| | ct.telefone_ddd || ?, ?) || ct.telefone_numero || ?| | ct.telefone_recado_para else coalesce(?| | ct.telefone_ddd || ?, ?) || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ?)) as telefones_contato, to_char(cid.nascimento_data, ?) as data_nascimento_aluno, coalesce(dc.numero_nis, ?) as nis_aluno, coalesce(cid.email, ?) as email_aluno, coalesce(cid.email_instituicional, ?) as email_institucional_aluno, coalesce(u.email_autenticacao_externa, ?) as email_autenticacao_externa, coalesce(m.nome, ?) as municipio_nascimento, coalesce(estado_nascimento.sigla, ?) as uf_nascimento, coalesce(cid.sexo, ?) as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, ?) as raca_cor, case when cid.flg_necessidade_especial is true then ? when cid.flg_necessidade_especial is false then ? end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then ? else ? end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ? order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), ?) as tipo_necessidade, case when cidadao_saude.flg_disturbio then ? else ? end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ? order by descricao) from disturbio inner join cidadao_disturbio on cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then ? when cid.flg_atendimento_especializado is false then ? end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ? || case when cae.flg_publico then ? else ? end, ? order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), ?) as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then ? when aluno_observacoes_familia.flg_recebe_bolsa_familia then ? else ? end as bolsa_familia, coalesce(cid.nome_mae, ?) as nome_mae, coalesce( case when a.id_responsavel_tipo = ? then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, ?) as cpf_mae, coalesce(ge_mae.descricao, ?) as escolaridade_mae, coalesce(cid.profissao_mae, ?) as profissao_mae, coalesce(cid.nome_pai, ?) as nome_pai, coalesce( case when a.id_responsavel_tipo = ? then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, ?) as cpf_pai, coalesce(ge_pai.descricao, ?) as escolaridade_pai, coalesce(cid.profissao_pai, ?) as profissao_pai, coalesce(rt.descricao, ?) as responsavel, coalesce(tro.sigla, ?) as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, ?) as nome_responsavel, coalesce(usuario_responsavel.login, ?) as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, ?) as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, ?) as nis_responsavel, coalesce(resp.email, ?) as email_responsavel, coalesce(ce.endereco, ?) as logradouro, coalesce(ce.numero, ?) as numero_logradouro, coalesce(ce.bairro, ?) as bairro_logradouro, coalesce(ce.complemento, ?) as complemento_logradouro, coalesce(mun.nome, ?) as municipio_logradouro, coalesce(dis.nome, ?) as distrito_logradouro, coalesce(estado.sigla, ?) as uf_logradouro, coalesce(formatar_cep (ce.cep), ?) as cep_logradouro, coalesce(cid.numero_conta_energia, ?) as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, ?) as localizacao_diferenciada, coalesce(unidade_localizacao.nome, ?) as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = ? and uf.id_unidade_funcional = medoa.id_unidade_funcional), ?) as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, ?) as turno, coalesce(t.codigo, ?) as turma, coalesce(t.nome, ?) as nome_turma, coalesce(mp.descricao, ?) as nome_programa, case when t.flg_especial = true then ? when t.flg_especial = false then ? else ? end as tipo_turma, case when t.flg_multietapa is true then ? else ? end turma_multietapa, case when t.flg_multiseriada is true then ? else ? end as turma_multsseriada, coalesce(turma_status.descricao, ?) as situacao_turma, coalesce(ambiente_turma.num_sala::text, ?) as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else ? end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else ? end as nome_anexo, coalesce(dc.numero_matricula_cn, ?) numero_matricula_certidao, coalesce(nac.nome, ?) nacionalidade, case when a.flg_remanescente_quilombo then ? else ? end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then ? else ? end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia on aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude on cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae on ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai on ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, ?) as data_realizacao, case when amsh.flg_transferencia_interna is null then ? when amsh.flg_transferencia_interna is true then ? else ? end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit ?) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = ? and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.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 uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Jun 25 07 1 35s244ms 35s244ms 09 6 1m11s 11s917ms 10 10 2m18s 13s829ms 11 1 3s629ms 3s629ms 12 3 11s413ms 3s804ms 13 6 1m30s 15s43ms 14 12 2m18s 11s547ms 15 2 17s830ms 8s915ms 19 2 21s589ms 10s794ms -
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '98')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '98' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '607078' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607078' and id_assunto_hierarquia_unidade = '81') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 07:09:48 Duration: 35s244ms Bind query: yes
-
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '92')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '92' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '606178' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 10:27:26 Duration: 21s209ms Bind query: yes
-
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '97')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '97' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '607358' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607358' and id_assunto_hierarquia_unidade = '80') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 13:46:54 Duration: 21s149ms Bind query: yes
19 41 23s264ms 500ms 721ms 567ms select scb.id_servidor_cargo_base, scb.cl, scb.flg_aberto, scb.id_cargo, scb.id_situacao_funcional, scb.data_posse, ca.descricao, ca.sigla, ca.flg_controlado_no_quadro and sf.flg_controle_quadro_cargo as flg_controlado_no_quadro, sf.descricao, sf.sigla, sie.data_inicio_exercicio, aht.descricao, us.nome as unidade_sede, ul.nome as unidade_lotacao, ul.codigo as codigo_unidade_lotacao, lo.flg_definitiva, scb.matricula_cargo, ( select jtt.sigla as sigla_jornada 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 inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo 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, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ?) as funcao, case when ato_historico.contador notnull then ? else ? end as situacao_atual, turno.sigla as turno from servidor_cargo_base scb inner join cargo ca on (ca.id_cargo = scb.id_cargo) inner join situacao_funcional sf on (sf.id_situacao_funcional = scb.id_situacao_funcional) left join turno on turno.id_turno = scb.id_turno left join srv_cb_inicio_exercicio sie on (sie.id_servidor_cargo_base = scb.id_servidor_cargo_base) left join ato_historico_tipo aht on (scb.id_ato_inicio = aht.id_ato_historico_tipo) left join unidade_funcional us on (us.id_unidade_funcional = scb.id_unidade_sede) left join lotacao lo on (lo.id_servidor_cargo_base = scb.id_servidor_cargo_base and lo.flg_aberto) left join unidade_funcional ul on (ul.id_unidade_funcional = lo.id_unidade_lotacao) left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = ? and sah.data_referencia <= to_timestamp(?, ?) and (sah.data_fim isnull or sah.data_fim >= to_timestamp(?, ?)) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = scb.id_servidor_cargo_base where ? = ? and (scb.id_cidadao = ?) and (scb.flg_aberto = true) and (ca.id_instituicao = ?) order by ca.descricao;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Jun 25 08 5 2s860ms 572ms 09 3 1s724ms 574ms 10 7 4s13ms 573ms 11 1 585ms 585ms 13 14 8s108ms 579ms 14 5 2s777ms 555ms 15 3 1s518ms 506ms 16 1 519ms 519ms 19 1 580ms 580ms 21 1 576ms 576ms -
select scb.id_servidor_cargo_base, scb.cl, scb.flg_aberto, scb.id_cargo, scb.id_situacao_funcional, scb.data_posse, ca.descricao, ca.sigla, ca.flg_controlado_no_quadro and sf.flg_controle_quadro_cargo as flg_controlado_no_quadro, sf.descricao, sf.sigla, sie.data_inicio_exercicio, aht.descricao, us.nome as unidade_sede, ul.nome as unidade_lotacao, ul.codigo as codigo_unidade_lotacao, lo.flg_definitiva, scb.matricula_cargo, ( select jtt.sigla as sigla_jornada 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 inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo where jtos.flg_opcao_desligada is false and jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base order by ano desc limit 1) as jornada, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, turno.sigla as turno from servidor_cargo_base scb inner join cargo ca on (ca.id_cargo = scb.id_cargo) inner join situacao_funcional sf on (sf.id_situacao_funcional = scb.id_situacao_funcional) left join turno on turno.id_turno = scb.id_turno left join srv_cb_inicio_exercicio sie on (sie.id_servidor_cargo_base = scb.id_servidor_cargo_base) left join ato_historico_tipo aht on (scb.id_ato_inicio = aht.id_ato_historico_tipo) left join unidade_funcional us on (us.id_unidade_funcional = scb.id_unidade_sede) left join lotacao lo on (lo.id_servidor_cargo_base = scb.id_servidor_cargo_base and lo.flg_aberto) left join unidade_funcional ul on (ul.id_unidade_funcional = lo.id_unidade_lotacao) left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = 7 and sah.data_referencia <= to_timestamp('25/06/2026 10:07:13', 'DD/MM/YYYY HH24:MI:SS') and (sah.data_fim isnull or sah.data_fim >= to_timestamp('25/06/2026 10:07:13', 'DD/MM/YYYY HH24:MI:SS')) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = scb.id_servidor_cargo_base WHERE 1 = 1 AND (scb.id_cidadao = 86135) AND (scb.flg_aberto = true) AND (ca.id_instituicao = 82) ORDER BY ca.descricao;
Date: 2026-06-25 10:07:13 Duration: 721ms Bind query: yes
-
select scb.id_servidor_cargo_base, scb.cl, scb.flg_aberto, scb.id_cargo, scb.id_situacao_funcional, scb.data_posse, ca.descricao, ca.sigla, ca.flg_controlado_no_quadro and sf.flg_controle_quadro_cargo as flg_controlado_no_quadro, sf.descricao, sf.sigla, sie.data_inicio_exercicio, aht.descricao, us.nome as unidade_sede, ul.nome as unidade_lotacao, ul.codigo as codigo_unidade_lotacao, lo.flg_definitiva, scb.matricula_cargo, ( select jtt.sigla as sigla_jornada 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 inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo where jtos.flg_opcao_desligada is false and jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base order by ano desc limit 1) as jornada, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, turno.sigla as turno from servidor_cargo_base scb inner join cargo ca on (ca.id_cargo = scb.id_cargo) inner join situacao_funcional sf on (sf.id_situacao_funcional = scb.id_situacao_funcional) left join turno on turno.id_turno = scb.id_turno left join srv_cb_inicio_exercicio sie on (sie.id_servidor_cargo_base = scb.id_servidor_cargo_base) left join ato_historico_tipo aht on (scb.id_ato_inicio = aht.id_ato_historico_tipo) left join unidade_funcional us on (us.id_unidade_funcional = scb.id_unidade_sede) left join lotacao lo on (lo.id_servidor_cargo_base = scb.id_servidor_cargo_base and lo.flg_aberto) left join unidade_funcional ul on (ul.id_unidade_funcional = lo.id_unidade_lotacao) left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = 7 and sah.data_referencia <= to_timestamp('25/06/2026 13:54:24', 'DD/MM/YYYY HH24:MI:SS') and (sah.data_fim isnull or sah.data_fim >= to_timestamp('25/06/2026 13:54:24', 'DD/MM/YYYY HH24:MI:SS')) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = scb.id_servidor_cargo_base WHERE 1 = 1 AND (scb.id_cidadao = 89609) AND (scb.flg_aberto = true) AND (ca.id_instituicao = 82) ORDER BY ca.descricao;
Date: 2026-06-25 13:54:24 Duration: 692ms Bind query: yes
-
select scb.id_servidor_cargo_base, scb.cl, scb.flg_aberto, scb.id_cargo, scb.id_situacao_funcional, scb.data_posse, ca.descricao, ca.sigla, ca.flg_controlado_no_quadro and sf.flg_controle_quadro_cargo as flg_controlado_no_quadro, sf.descricao, sf.sigla, sie.data_inicio_exercicio, aht.descricao, us.nome as unidade_sede, ul.nome as unidade_lotacao, ul.codigo as codigo_unidade_lotacao, lo.flg_definitiva, scb.matricula_cargo, ( select jtt.sigla as sigla_jornada 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 inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo where jtos.flg_opcao_desligada is false and jtocb.id_servidor_cargo_base = scb.id_servidor_cargo_base order by ano desc limit 1) as jornada, sp_funcao_atividade_servidor (scb.id_servidor_cargo_base, ', ') as funcao, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, turno.sigla as turno from servidor_cargo_base scb inner join cargo ca on (ca.id_cargo = scb.id_cargo) inner join situacao_funcional sf on (sf.id_situacao_funcional = scb.id_situacao_funcional) left join turno on turno.id_turno = scb.id_turno left join srv_cb_inicio_exercicio sie on (sie.id_servidor_cargo_base = scb.id_servidor_cargo_base) left join ato_historico_tipo aht on (scb.id_ato_inicio = aht.id_ato_historico_tipo) left join unidade_funcional us on (us.id_unidade_funcional = scb.id_unidade_sede) left join lotacao lo on (lo.id_servidor_cargo_base = scb.id_servidor_cargo_base and lo.flg_aberto) left join unidade_funcional ul on (ul.id_unidade_funcional = lo.id_unidade_lotacao) left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = 7 and sah.data_referencia <= to_timestamp('25/06/2026 14:02:31', 'DD/MM/YYYY HH24:MI:SS') and (sah.data_fim isnull or sah.data_fim >= to_timestamp('25/06/2026 14:02:31', 'DD/MM/YYYY HH24:MI:SS')) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = scb.id_servidor_cargo_base WHERE 1 = 1 AND (scb.id_cidadao = 458112) AND (scb.flg_aberto = true) AND (ca.id_instituicao = 82) ORDER BY ca.descricao;
Date: 2026-06-25 14:02:31 Duration: 683ms Bind query: yes
20 29 24s616ms 501ms 7s851ms 848ms select uf.codigo as codigo, uf.nome as unidade, s.registro_funcional as rf, cid.nome, sf.descricao as situacao_funcional, scb.matricula_cargo as matricula, c.sigla as sigla_cargo, c.descricao as descricao_cargo, p.funcoes as funcao, q.atividades as atividade, escolaridade.descricao as escolaridade, r.cursos as curso, t.tipos as tipo, u.habilitacoes as habilitacao, r.formacao, atribuicao.aulas from cidadao cid inner join servidor s on s.id_cidadao = cid.id_cidadao inner join servidor_cargo_base scb on scb.id_cidadao = cid.id_cidadao inner join unidade_funcional uf on (uf.id_unidade_funcional = ? or uf.id_unidade_funcional in ( select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = ? and hue.id_assunto_hierarquia_unidade = ? and uf.id_municipio = ?)) inner join cargo c on c.id_cargo = scb.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = scb.id_situacao_funcional left join srv_cb_inicio_exercicio sie on sie.id_servidor_cargo_base = scb.id_servidor_cargo_base left join srv_cargo_base_desligamento scbd on scbd.id_servidor_cargo_base = scb.id_servidor_cargo_base left join ( select funcao.id_unidade_funcional, funcao.id_servidor_cargo_base, string_agg(distinct fas.descricao, ?) as funcoes from servidor_funcao funcao inner join funcao_atividade_servidor fas on fas.id_funcao_atividade_servidor = funcao.id_funcao_atividade_servidor left join servidor_funcao_fim sff on sff.id_servidor_funcao = funcao.id_servidor_funcao where funcao.data_inicio::date <= ?::date and (sff.data_fim is null or (sff.data_fim is not null and sff.data_fim::date >= ?::date)) group by funcao.id_unidade_funcional, funcao.id_servidor_cargo_base) p on p.id_unidade_funcional = uf.id_unidade_funcional and p.id_servidor_cargo_base = scb.id_servidor_cargo_base left join ( select atividade.id_unidade_funcional_servico, atividade.id_servidor_cargo_base, string_agg(distinct fas.descricao, ?) as atividades from servidor_atividade atividade inner join funcao_atividade_servidor fas on fas.id_funcao_atividade_servidor = atividade.id_funcao_atividade_servidor where atividade.data_inicio::date <= ?::date and (atividade.data_fim is null or atividade.data_fim::date >= ?::date) group by atividade.id_unidade_funcional_servico, atividade.id_servidor_cargo_base) q on q.id_unidade_funcional_servico = uf.id_unidade_funcional and q.id_servidor_cargo_base = scb.id_servidor_cargo_base left join grau_escolaridade escolaridade on escolaridade.id_grau_escolaridade = s.id_grau_escolaridade left join ( select c.id_cidadao, string_agg(c.descricao, ? order by c.data_conclusao nulls last) as cursos, string_agg(c.formacao, ? order by c.data_conclusao nulls last) as formacao from ( select distinct sct.id_cidadao, sct.data_conclusao, coalesce(mcs.descricao, sct.descricao) as descricao, md.descricao as formacao from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior left join mec_disciplina md on md.id_mec_disciplina = sct.id_mec_disciplina) c group by c.id_cidadao) r on r.id_cidadao = s.id_cidadao left join ( select t.id_cidadao, string_agg(t.tipo, ? order by t.data_conclusao nulls last) as tipos from ( select distinct sct.id_cidadao, sct.data_conclusao, cgt.descricao as tipo from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior) t group by t.id_cidadao) t on t.id_cidadao = s.id_cidadao left join ( select u.id_cidadao, string_agg(u.habilitacao, ? order by u.data_conclusao nulls last) as habilitacoes from ( select distinct sct.id_cidadao, sct.data_conclusao, habilitacao.descricao as habilitacao from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior) u group by u.id_cidadao) u on u.id_cidadao = s.id_cidadao left join ( select aulas.id_servidor_cargo_base, aulas.id_unidade_funcional, string_agg(aulas.disciplina, ? order by aulas.disciplina) as aulas from ( select distinct atribuicao.id_servidor_cargo_base, turma.id_unidade_funcional, d.descricao as disciplina from turma_componente_historico_atribuicao atribuicao inner join turma on turma.id_turma = atribuicao.id_turma inner join componente_curricular cc on cc.id_componente_curricular = atribuicao.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join periodo_letivo pl on pl.id_ano_semestre = turma.id_ano_semestre and pl.id_unidade_funcional = turma.id_unidade_funcional and pl.id_curso = turma.id_curso where turma.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 atribuicao.data_inicio::date <= ?::date and case turma.id_turma_status = ? when true then (atribuicao.data_fim::date >= ?::date or atribuicao.data_fim is null) else (coalesce(atribuicao.data_fim::date, pl.data_encerramento::date) >= ?::date) end union all select distinct atribuicao.id_servidor_cargo_base, turma.id_unidade_funcional, d.descricao as disciplina from turma_regencia_historico_atribuicao atribuicao inner join turma on turma.id_turma = atribuicao.id_turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc2 on cc2.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on d.id_disciplina = cc2.id_disciplina inner join periodo_letivo pl on pl.id_ano_semestre = turma.id_ano_semestre and pl.id_unidade_funcional = turma.id_unidade_funcional and pl.id_curso = turma.id_curso where turma.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 atribuicao.data_inicio::date <= ?::date and case turma.id_turma_status = ? when true then (atribuicao.data_fim::date >= ?::date or atribuicao.data_fim is null) else (coalesce(atribuicao.data_fim::date, pl.data_encerramento::date) >= ?::date) end and cc2.id_tipo_atribuicao_componente = ?) as aulas group by aulas.id_servidor_cargo_base, aulas.id_unidade_funcional) as atribuicao on atribuicao.id_servidor_cargo_base = scb.id_servidor_cargo_base and atribuicao.id_unidade_funcional = uf.id_unidade_funcional left join ( select distinct l.id_servidor_cargo_base, l.id_unidade_lotacao from lotacao l left join lotacao_historico lh on lh.id_lotacao = l.id_lotacao where (l.data_inicio::date <= ?::date) and (lh.data_fim is null or lh.data_fim::date >= ?::date) and l.id_unidade_lotacao = ?) as lotacao on lotacao.id_servidor_cargo_base = scb.id_servidor_cargo_base and lotacao.id_unidade_lotacao = uf.id_unidade_funcional left join ( select sus.id_servidor_cargo_base, sus.id_unidade_sede from servidor_unidade_sede sus where id_unidade_sede = ? and sus.data_inicio::date <= ?::date and (sus.data_fim is null or sus.data_fim::date >= ?::date)) as unidade_sede on unidade_sede.id_unidade_sede = uf.id_unidade_funcional and unidade_sede.id_servidor_cargo_base = scb.id_servidor_cargo_base where (sie.data_inicio_exercicio is null or sie.data_inicio_exercicio::date <= ?::date) and (scb.flg_aberto is true or scbd.data_fim::date >= ?::date) and (p.funcoes is not null or q.atividades is not null or atribuicao.aulas is not null or unidade_sede.id_unidade_sede is not null or lotacao.id_unidade_lotacao is not null) order by uf.nome, cid.nome;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Jun 25 06 1 815ms 815ms 07 1 742ms 742ms 08 7 4s111ms 587ms 09 4 2s153ms 538ms 10 2 1s61ms 530ms 11 1 592ms 592ms 12 1 551ms 551ms 13 5 3s589ms 717ms 14 2 1s57ms 528ms 15 3 1s542ms 514ms 16 1 545ms 545ms 21 1 7s851ms 7s851ms -
select uf.codigo as codigo, uf.nome as unidade, s.registro_funcional as rf, cid.nome, sf.descricao as situacao_funcional, scb.matricula_cargo as matricula, c.sigla as sigla_cargo, c.descricao as descricao_cargo, p.funcoes as funcao, q.atividades as atividade, escolaridade.descricao as escolaridade, r.cursos as curso, t.tipos as tipo, u.habilitacoes as habilitacao, r.formacao, atribuicao.aulas from cidadao cid inner join servidor s on s.id_cidadao = cid.id_cidadao inner join servidor_cargo_base scb on scb.id_cidadao = cid.id_cidadao inner join unidade_funcional uf on (uf.id_unidade_funcional = '606395' or uf.id_unidade_funcional in ( select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = '606395' and hue.id_assunto_hierarquia_unidade = '76' and uf.id_municipio = '260960')) inner join cargo c on c.id_cargo = scb.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = scb.id_situacao_funcional left join srv_cb_inicio_exercicio sie on sie.id_servidor_cargo_base = scb.id_servidor_cargo_base left join srv_cargo_base_desligamento scbd on scbd.id_servidor_cargo_base = scb.id_servidor_cargo_base -- Funções left join ( select funcao.id_unidade_funcional, funcao.id_servidor_cargo_base, string_agg(distinct fas.descricao, ', ') as funcoes from servidor_funcao funcao inner join funcao_atividade_servidor fas on fas.id_funcao_atividade_servidor = funcao.id_funcao_atividade_servidor left join servidor_funcao_fim sff on sff.id_servidor_funcao = funcao.id_servidor_funcao where funcao.data_inicio::date <= '2026-06-25'::date --em função até a data de referência and (sff.data_fim is null or (sff.data_fim is not null and sff.data_fim::date >= '2026-06-25'::date)) group by funcao.id_unidade_funcional, funcao.id_servidor_cargo_base) p on p.id_unidade_funcional = uf.id_unidade_funcional and p.id_servidor_cargo_base = scb.id_servidor_cargo_base -- Atividades left join ( select atividade.id_unidade_funcional_servico, atividade.id_servidor_cargo_base, string_agg(distinct fas.descricao, ', ') as atividades from servidor_atividade atividade inner join funcao_atividade_servidor fas on fas.id_funcao_atividade_servidor = atividade.id_funcao_atividade_servidor where atividade.data_inicio::date <= '2026-06-25'::date --em atividade até a data de referência and (atividade.data_fim is null or atividade.data_fim::date >= '2026-06-25'::date) group by atividade.id_unidade_funcional_servico, atividade.id_servidor_cargo_base) q on q.id_unidade_funcional_servico = uf.id_unidade_funcional and q.id_servidor_cargo_base = scb.id_servidor_cargo_base left join grau_escolaridade escolaridade on escolaridade.id_grau_escolaridade = s.id_grau_escolaridade -- Cursos left join ( select c.id_cidadao, string_agg(c.descricao, ', ' order by c.data_conclusao nulls last) as cursos, string_agg(c.formacao, ', ' order by c.data_conclusao nulls last) as formacao from ( select distinct sct.id_cidadao, sct.data_conclusao, coalesce(mcs.descricao, sct.descricao) as descricao, md.descricao as formacao from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior left join mec_disciplina md on md.id_mec_disciplina = sct.id_mec_disciplina) c group by c.id_cidadao) r on r.id_cidadao = s.id_cidadao -- Tipos de curso left join ( select t.id_cidadao, string_agg(t.tipo, ', ' order by t.data_conclusao nulls last) as tipos from ( select distinct sct.id_cidadao, sct.data_conclusao, cgt.descricao as tipo from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior) t group by t.id_cidadao) t on t.id_cidadao = s.id_cidadao -- Habilitações left join ( select u.id_cidadao, string_agg(u.habilitacao, ', ' order by u.data_conclusao nulls last) as habilitacoes from ( select distinct sct.id_cidadao, sct.data_conclusao, habilitacao.descricao as habilitacao from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior) u group by u.id_cidadao) u on u.id_cidadao = s.id_cidadao --Atribuição de aulas left join ( select aulas.id_servidor_cargo_base, aulas.id_unidade_funcional, string_agg(aulas.disciplina, ', ' order by aulas.disciplina) as aulas from ( -- atribuição por Componente curricular select distinct atribuicao.id_servidor_cargo_base, turma.id_unidade_funcional, d.descricao as disciplina from turma_componente_historico_atribuicao atribuicao inner join turma on turma.id_turma = atribuicao.id_turma inner join componente_curricular cc on cc.id_componente_curricular = atribuicao.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join periodo_letivo pl on pl.id_ano_semestre = turma.id_ano_semestre and pl.id_unidade_funcional = turma.id_unidade_funcional and pl.id_curso = turma.id_curso where turma.id_unidade_funcional in ( select '606395' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606395' and id_assunto_hierarquia_unidade = '76') and atribuicao.data_inicio::date <= '2026-06-25'::date and case turma.id_turma_status = '1' when true then (atribuicao.data_fim::date >= '2026-06-25'::date or atribuicao.data_fim is null) else (coalesce(atribuicao.data_fim::date, pl.data_encerramento::date) >= '2026-06-25'::date) end union all -- atribuição por regência de classe select distinct atribuicao.id_servidor_cargo_base, turma.id_unidade_funcional, d.descricao as disciplina from turma_regencia_historico_atribuicao atribuicao inner join turma on turma.id_turma = atribuicao.id_turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc2 on cc2.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on d.id_disciplina = cc2.id_disciplina inner join periodo_letivo pl on pl.id_ano_semestre = turma.id_ano_semestre and pl.id_unidade_funcional = turma.id_unidade_funcional and pl.id_curso = turma.id_curso where turma.id_unidade_funcional in ( select '606395' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606395' and id_assunto_hierarquia_unidade = '76') and atribuicao.data_inicio::date <= '2026-06-25'::date and case turma.id_turma_status = '1' when true then (atribuicao.data_fim::date >= '2026-06-25'::date or atribuicao.data_fim is null) else (coalesce(atribuicao.data_fim::date, pl.data_encerramento::date) >= '2026-06-25'::date) end and cc2.id_tipo_atribuicao_componente = '1') as aulas group by aulas.id_servidor_cargo_base, aulas.id_unidade_funcional) as atribuicao on atribuicao.id_servidor_cargo_base = scb.id_servidor_cargo_base and atribuicao.id_unidade_funcional = uf.id_unidade_funcional --- lotacao left join ( select distinct l.id_servidor_cargo_base, l.id_unidade_lotacao from lotacao l left join lotacao_historico lh on lh.id_lotacao = l.id_lotacao where (l.data_inicio::date <= '2026-06-25'::date) and (lh.data_fim is null or lh.data_fim::date >= '2026-06-25'::date) and l.id_unidade_lotacao = '606395') as lotacao on lotacao.id_servidor_cargo_base = scb.id_servidor_cargo_base and lotacao.id_unidade_lotacao = uf.id_unidade_funcional -- unidade sede left join ( select sus.id_servidor_cargo_base, sus.id_unidade_sede from servidor_unidade_sede sus where id_unidade_sede = '606395' and sus.data_inicio::date <= '2026-06-25'::date and (sus.data_fim is null or sus.data_fim::date >= '2026-06-25'::date)) as unidade_sede on unidade_sede.id_unidade_sede = uf.id_unidade_funcional and unidade_sede.id_servidor_cargo_base = scb.id_servidor_cargo_base where (sie.data_inicio_exercicio is null or sie.data_inicio_exercicio::date <= '2026-06-25'::date) --início do exercicio antes da data de referência and (scb.flg_aberto is true or scbd.data_fim::date >= '2026-06-25'::date) --cargo fechado depois da data de referência and (p.funcoes is not null or q.atividades is not null or atribuicao.aulas is not null or unidade_sede.id_unidade_sede is not null or lotacao.id_unidade_lotacao is not null) order by uf.nome, cid.nome;
Date: 2026-06-25 21:44:39 Duration: 7s851ms Bind query: yes
-
select uf.codigo as codigo, uf.nome as unidade, s.registro_funcional as rf, cid.nome, sf.descricao as situacao_funcional, scb.matricula_cargo as matricula, c.sigla as sigla_cargo, c.descricao as descricao_cargo, p.funcoes as funcao, q.atividades as atividade, escolaridade.descricao as escolaridade, r.cursos as curso, t.tipos as tipo, u.habilitacoes as habilitacao, r.formacao, atribuicao.aulas from cidadao cid inner join servidor s on s.id_cidadao = cid.id_cidadao inner join servidor_cargo_base scb on scb.id_cidadao = cid.id_cidadao inner join unidade_funcional uf on (uf.id_unidade_funcional = '372' or uf.id_unidade_funcional in ( select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = '372' and hue.id_assunto_hierarquia_unidade = '10' and uf.id_municipio = '310670')) inner join cargo c on c.id_cargo = scb.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = scb.id_situacao_funcional left join srv_cb_inicio_exercicio sie on sie.id_servidor_cargo_base = scb.id_servidor_cargo_base left join srv_cargo_base_desligamento scbd on scbd.id_servidor_cargo_base = scb.id_servidor_cargo_base -- Funções left join ( select funcao.id_unidade_funcional, funcao.id_servidor_cargo_base, string_agg(distinct fas.descricao, ', ') as funcoes from servidor_funcao funcao inner join funcao_atividade_servidor fas on fas.id_funcao_atividade_servidor = funcao.id_funcao_atividade_servidor left join servidor_funcao_fim sff on sff.id_servidor_funcao = funcao.id_servidor_funcao where funcao.data_inicio::date <= '2026-06-25'::date --em função até a data de referência and (sff.data_fim is null or (sff.data_fim is not null and sff.data_fim::date >= '2026-06-25'::date)) group by funcao.id_unidade_funcional, funcao.id_servidor_cargo_base) p on p.id_unidade_funcional = uf.id_unidade_funcional and p.id_servidor_cargo_base = scb.id_servidor_cargo_base -- Atividades left join ( select atividade.id_unidade_funcional_servico, atividade.id_servidor_cargo_base, string_agg(distinct fas.descricao, ', ') as atividades from servidor_atividade atividade inner join funcao_atividade_servidor fas on fas.id_funcao_atividade_servidor = atividade.id_funcao_atividade_servidor where atividade.data_inicio::date <= '2026-06-25'::date --em atividade até a data de referência and (atividade.data_fim is null or atividade.data_fim::date >= '2026-06-25'::date) group by atividade.id_unidade_funcional_servico, atividade.id_servidor_cargo_base) q on q.id_unidade_funcional_servico = uf.id_unidade_funcional and q.id_servidor_cargo_base = scb.id_servidor_cargo_base left join grau_escolaridade escolaridade on escolaridade.id_grau_escolaridade = s.id_grau_escolaridade -- Cursos left join ( select c.id_cidadao, string_agg(c.descricao, ', ' order by c.data_conclusao nulls last) as cursos, string_agg(c.formacao, ', ' order by c.data_conclusao nulls last) as formacao from ( select distinct sct.id_cidadao, sct.data_conclusao, coalesce(mcs.descricao, sct.descricao) as descricao, md.descricao as formacao from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior left join mec_disciplina md on md.id_mec_disciplina = sct.id_mec_disciplina) c group by c.id_cidadao) r on r.id_cidadao = s.id_cidadao -- Tipos de curso left join ( select t.id_cidadao, string_agg(t.tipo, ', ' order by t.data_conclusao nulls last) as tipos from ( select distinct sct.id_cidadao, sct.data_conclusao, cgt.descricao as tipo from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior) t group by t.id_cidadao) t on t.id_cidadao = s.id_cidadao -- Habilitações left join ( select u.id_cidadao, string_agg(u.habilitacao, ', ' order by u.data_conclusao nulls last) as habilitacoes from ( select distinct sct.id_cidadao, sct.data_conclusao, habilitacao.descricao as habilitacao from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior) u group by u.id_cidadao) u on u.id_cidadao = s.id_cidadao --Atribuição de aulas left join ( select aulas.id_servidor_cargo_base, aulas.id_unidade_funcional, string_agg(aulas.disciplina, ', ' order by aulas.disciplina) as aulas from ( -- atribuição por Componente curricular select distinct atribuicao.id_servidor_cargo_base, turma.id_unidade_funcional, d.descricao as disciplina from turma_componente_historico_atribuicao atribuicao inner join turma on turma.id_turma = atribuicao.id_turma inner join componente_curricular cc on cc.id_componente_curricular = atribuicao.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join periodo_letivo pl on pl.id_ano_semestre = turma.id_ano_semestre and pl.id_unidade_funcional = turma.id_unidade_funcional and pl.id_curso = turma.id_curso where turma.id_unidade_funcional in ( select '372' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '372' and id_assunto_hierarquia_unidade = '10') and atribuicao.data_inicio::date <= '2026-06-25'::date and case turma.id_turma_status = '1' when true then (atribuicao.data_fim::date >= '2026-06-25'::date or atribuicao.data_fim is null) else (coalesce(atribuicao.data_fim::date, pl.data_encerramento::date) >= '2026-06-25'::date) end union all -- atribuição por regência de classe select distinct atribuicao.id_servidor_cargo_base, turma.id_unidade_funcional, d.descricao as disciplina from turma_regencia_historico_atribuicao atribuicao inner join turma on turma.id_turma = atribuicao.id_turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc2 on cc2.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on d.id_disciplina = cc2.id_disciplina inner join periodo_letivo pl on pl.id_ano_semestre = turma.id_ano_semestre and pl.id_unidade_funcional = turma.id_unidade_funcional and pl.id_curso = turma.id_curso where turma.id_unidade_funcional in ( select '372' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '372' and id_assunto_hierarquia_unidade = '10') and atribuicao.data_inicio::date <= '2026-06-25'::date and case turma.id_turma_status = '1' when true then (atribuicao.data_fim::date >= '2026-06-25'::date or atribuicao.data_fim is null) else (coalesce(atribuicao.data_fim::date, pl.data_encerramento::date) >= '2026-06-25'::date) end and cc2.id_tipo_atribuicao_componente = '1') as aulas group by aulas.id_servidor_cargo_base, aulas.id_unidade_funcional) as atribuicao on atribuicao.id_servidor_cargo_base = scb.id_servidor_cargo_base and atribuicao.id_unidade_funcional = uf.id_unidade_funcional --- lotacao left join ( select distinct l.id_servidor_cargo_base, l.id_unidade_lotacao from lotacao l left join lotacao_historico lh on lh.id_lotacao = l.id_lotacao where (l.data_inicio::date <= '2026-06-25'::date) and (lh.data_fim is null or lh.data_fim::date >= '2026-06-25'::date) and l.id_unidade_lotacao = '372') as lotacao on lotacao.id_servidor_cargo_base = scb.id_servidor_cargo_base and lotacao.id_unidade_lotacao = uf.id_unidade_funcional -- unidade sede left join ( select sus.id_servidor_cargo_base, sus.id_unidade_sede from servidor_unidade_sede sus where id_unidade_sede = '372' and sus.data_inicio::date <= '2026-06-25'::date and (sus.data_fim is null or sus.data_fim::date >= '2026-06-25'::date)) as unidade_sede on unidade_sede.id_unidade_sede = uf.id_unidade_funcional and unidade_sede.id_servidor_cargo_base = scb.id_servidor_cargo_base where (sie.data_inicio_exercicio is null or sie.data_inicio_exercicio::date <= '2026-06-25'::date) --início do exercicio antes da data de referência and (scb.flg_aberto is true or scbd.data_fim::date >= '2026-06-25'::date) --cargo fechado depois da data de referência and (p.funcoes is not null or q.atividades is not null or atribuicao.aulas is not null or unidade_sede.id_unidade_sede is not null or lotacao.id_unidade_lotacao is not null) order by uf.nome, cid.nome;
Date: 2026-06-25 13:26:03 Duration: 972ms Bind query: yes
-
select uf.codigo as codigo, uf.nome as unidade, s.registro_funcional as rf, cid.nome, sf.descricao as situacao_funcional, scb.matricula_cargo as matricula, c.sigla as sigla_cargo, c.descricao as descricao_cargo, p.funcoes as funcao, q.atividades as atividade, escolaridade.descricao as escolaridade, r.cursos as curso, t.tipos as tipo, u.habilitacoes as habilitacao, r.formacao, atribuicao.aulas from cidadao cid inner join servidor s on s.id_cidadao = cid.id_cidadao inner join servidor_cargo_base scb on scb.id_cidadao = cid.id_cidadao inner join unidade_funcional uf on (uf.id_unidade_funcional = '413' or uf.id_unidade_funcional in ( select hue.id_unidade_funcional_filha from hierarquia_unidade_extendida hue where hue.id_unidade_funcional_mae = '413' and hue.id_assunto_hierarquia_unidade = '10' and uf.id_municipio = '310670')) inner join cargo c on c.id_cargo = scb.id_cargo inner join situacao_funcional sf on sf.id_situacao_funcional = scb.id_situacao_funcional left join srv_cb_inicio_exercicio sie on sie.id_servidor_cargo_base = scb.id_servidor_cargo_base left join srv_cargo_base_desligamento scbd on scbd.id_servidor_cargo_base = scb.id_servidor_cargo_base -- Funções left join ( select funcao.id_unidade_funcional, funcao.id_servidor_cargo_base, string_agg(distinct fas.descricao, ', ') as funcoes from servidor_funcao funcao inner join funcao_atividade_servidor fas on fas.id_funcao_atividade_servidor = funcao.id_funcao_atividade_servidor left join servidor_funcao_fim sff on sff.id_servidor_funcao = funcao.id_servidor_funcao where funcao.data_inicio::date <= '2026-06-25'::date --em função até a data de referência and (sff.data_fim is null or (sff.data_fim is not null and sff.data_fim::date >= '2026-06-25'::date)) group by funcao.id_unidade_funcional, funcao.id_servidor_cargo_base) p on p.id_unidade_funcional = uf.id_unidade_funcional and p.id_servidor_cargo_base = scb.id_servidor_cargo_base -- Atividades left join ( select atividade.id_unidade_funcional_servico, atividade.id_servidor_cargo_base, string_agg(distinct fas.descricao, ', ') as atividades from servidor_atividade atividade inner join funcao_atividade_servidor fas on fas.id_funcao_atividade_servidor = atividade.id_funcao_atividade_servidor where atividade.data_inicio::date <= '2026-06-25'::date --em atividade até a data de referência and (atividade.data_fim is null or atividade.data_fim::date >= '2026-06-25'::date) group by atividade.id_unidade_funcional_servico, atividade.id_servidor_cargo_base) q on q.id_unidade_funcional_servico = uf.id_unidade_funcional and q.id_servidor_cargo_base = scb.id_servidor_cargo_base left join grau_escolaridade escolaridade on escolaridade.id_grau_escolaridade = s.id_grau_escolaridade -- Cursos left join ( select c.id_cidadao, string_agg(c.descricao, ', ' order by c.data_conclusao nulls last) as cursos, string_agg(c.formacao, ', ' order by c.data_conclusao nulls last) as formacao from ( select distinct sct.id_cidadao, sct.data_conclusao, coalesce(mcs.descricao, sct.descricao) as descricao, md.descricao as formacao from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior left join mec_disciplina md on md.id_mec_disciplina = sct.id_mec_disciplina) c group by c.id_cidadao) r on r.id_cidadao = s.id_cidadao -- Tipos de curso left join ( select t.id_cidadao, string_agg(t.tipo, ', ' order by t.data_conclusao nulls last) as tipos from ( select distinct sct.id_cidadao, sct.data_conclusao, cgt.descricao as tipo from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior) t group by t.id_cidadao) t on t.id_cidadao = s.id_cidadao -- Habilitações left join ( select u.id_cidadao, string_agg(u.habilitacao, ', ' order by u.data_conclusao nulls last) as habilitacoes from ( select distinct sct.id_cidadao, sct.data_conclusao, habilitacao.descricao as habilitacao from servidor_curso_titulo sct inner join curso_geral_tipo cgt on cgt.id_curso_geral_tipo = sct.id_curso_geral_tipo left join servidor_habilitacao sh on sh.id_servidor_curso_titulo = sct.id_servidor_curso_titulo and sh.id_cidadao = sct.id_cidadao left join habilitacao_servidor habilitacao on habilitacao.id_habilitacao_servidor = sh.id_habilitacao_servidor left join mec_curso_superior mcs on mcs.id_mec_curso_superior = sct.id_mec_curso_superior) u group by u.id_cidadao) u on u.id_cidadao = s.id_cidadao --Atribuição de aulas left join ( select aulas.id_servidor_cargo_base, aulas.id_unidade_funcional, string_agg(aulas.disciplina, ', ' order by aulas.disciplina) as aulas from ( -- atribuição por Componente curricular select distinct atribuicao.id_servidor_cargo_base, turma.id_unidade_funcional, d.descricao as disciplina from turma_componente_historico_atribuicao atribuicao inner join turma on turma.id_turma = atribuicao.id_turma inner join componente_curricular cc on cc.id_componente_curricular = atribuicao.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join periodo_letivo pl on pl.id_ano_semestre = turma.id_ano_semestre and pl.id_unidade_funcional = turma.id_unidade_funcional and pl.id_curso = turma.id_curso where turma.id_unidade_funcional in ( select '413' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '413' and id_assunto_hierarquia_unidade = '10') and atribuicao.data_inicio::date <= '2026-06-25'::date and case turma.id_turma_status = '1' when true then (atribuicao.data_fim::date >= '2026-06-25'::date or atribuicao.data_fim is null) else (coalesce(atribuicao.data_fim::date, pl.data_encerramento::date) >= '2026-06-25'::date) end union all -- atribuição por regência de classe select distinct atribuicao.id_servidor_cargo_base, turma.id_unidade_funcional, d.descricao as disciplina from turma_regencia_historico_atribuicao atribuicao inner join turma on turma.id_turma = atribuicao.id_turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc2 on cc2.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on d.id_disciplina = cc2.id_disciplina inner join periodo_letivo pl on pl.id_ano_semestre = turma.id_ano_semestre and pl.id_unidade_funcional = turma.id_unidade_funcional and pl.id_curso = turma.id_curso where turma.id_unidade_funcional in ( select '413' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '413' and id_assunto_hierarquia_unidade = '10') and atribuicao.data_inicio::date <= '2026-06-25'::date and case turma.id_turma_status = '1' when true then (atribuicao.data_fim::date >= '2026-06-25'::date or atribuicao.data_fim is null) else (coalesce(atribuicao.data_fim::date, pl.data_encerramento::date) >= '2026-06-25'::date) end and cc2.id_tipo_atribuicao_componente = '1') as aulas group by aulas.id_servidor_cargo_base, aulas.id_unidade_funcional) as atribuicao on atribuicao.id_servidor_cargo_base = scb.id_servidor_cargo_base and atribuicao.id_unidade_funcional = uf.id_unidade_funcional --- lotacao left join ( select distinct l.id_servidor_cargo_base, l.id_unidade_lotacao from lotacao l left join lotacao_historico lh on lh.id_lotacao = l.id_lotacao where (l.data_inicio::date <= '2026-06-25'::date) and (lh.data_fim is null or lh.data_fim::date >= '2026-06-25'::date) and l.id_unidade_lotacao = '413') as lotacao on lotacao.id_servidor_cargo_base = scb.id_servidor_cargo_base and lotacao.id_unidade_lotacao = uf.id_unidade_funcional -- unidade sede left join ( select sus.id_servidor_cargo_base, sus.id_unidade_sede from servidor_unidade_sede sus where id_unidade_sede = '413' and sus.data_inicio::date <= '2026-06-25'::date and (sus.data_fim is null or sus.data_fim::date >= '2026-06-25'::date)) as unidade_sede on unidade_sede.id_unidade_sede = uf.id_unidade_funcional and unidade_sede.id_servidor_cargo_base = scb.id_servidor_cargo_base where (sie.data_inicio_exercicio is null or sie.data_inicio_exercicio::date <= '2026-06-25'::date) --início do exercicio antes da data de referência and (scb.flg_aberto is true or scbd.data_fim::date >= '2026-06-25'::date) --cargo fechado depois da data de referência and (p.funcoes is not null or q.atividades is not null or atribuicao.aulas is not null or unidade_sede.id_unidade_sede is not null or lotacao.id_unidade_lotacao is not null) order by uf.nome, cid.nome;
Date: 2026-06-25 06:53:28 Duration: 815ms Bind query: yes
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 9m26s 1h39m50s 54m38s 2 1h49m16s 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, ?) as frequencia_ate_data_atual on true 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 in (...) and (am.id_aluno_matr_status = ? or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= current_date) 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 #1
Day Hour Count Duration Avg duration Jun 25 00 1 9m26s 9m26s 01 1 1h39m50s 1h39m50s -
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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) 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-25 01:45:03 Duration: 1h39m50s Bind query: yes
-
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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 (82) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) 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-25 00:12:17 Duration: 9m26s Bind query: yes
2 13m17s 13m17s 13m17s 1 13m17s insert into consulta.conteudo_curricular_ministrado (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, planejado, planejado_analise_ling, realizado, realizado_analise_ling, realizado_bimestre_1, realizado_bimestre_2, realizado_bimestre_3, realizado_bimestre_4) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional as rf_professor, cidadao.nome as nome_professor, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = ?) as integer) as planejado, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = ?) as integer) as planejado_analise_ling, coalesce(realizado.conteudo_ministrado, ?) as realizado, coalesce(realizado.conteudo_analise_ling_ministrado, ?) as realizado_analise_ling, coalesce(realizado_bimestre.ministrado_bimestre_1, ?) as realizado_bimestre_1, coalesce(realizado_bimestre.ministrado_bimestre_2, ?) as realizado_bimestre_2, coalesce(realizado_bimestre.ministrado_bimestre_3, ?) as realizado_bimestre_3, coalesce(realizado_bimestre.ministrado_bimestre_4, ?) as realizado_bimestre_4 from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina on cc.id_disciplina = disciplina.id_disciplina inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo on calendario_periodo.id_calendario = escola_calendario.id_calendario left join turma_componente tc on tc.id_turma = turma.id_turma and tc.id_componente_curricular = cc.id_componente_curricular left join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente left join cidadao on tcs.id_cidadao = cidadao.id_cidadao left join servidor on servidor.id_cidadao = cidadao.id_cidadao left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento, cast(count(distinct case when ccmd.id_conteudo_analise_ling is null then ccmd.id_conteudo_curricular else null end) as integer) as conteudo_ministrado, cast(count(distinct ccmd.id_conteudo_curricular || ? || ccmd.id_conteudo_analise_ling) as integer) as conteudo_analise_ling_ministrado from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento) as realizado on realizado.id_turma = ts.id_turma and realizado.id_serie = ts.id_serie and realizado.id_componente_curricular = cc.id_componente_curricular and realizado.id_periodo_planejamento = calendario_periodo.ordem left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno, sum( case when ccmd.id_periodo_planejamento = ? then ? else ? end) as ministrado_bimestre_1, sum( case when ccmd.id_periodo_planejamento = ? then ? else ? end) as ministrado_bimestre_2, sum( case when ccmd.id_periodo_planejamento = ? then ? else ? end) as ministrado_bimestre_3, sum( case when ccmd.id_periodo_planejamento = ? then ? else ? end) as ministrado_bimestre_4 from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno) as realizado_bimestre on realizado_bimestre.id_turma = ts.id_turma and realizado_bimestre.id_serie = ts.id_serie and realizado_bimestre.id_componente_curricular = cc.id_componente_curricular and realizado_bimestre.id_nota_periodo_aluno = calendario_periodo.ordem where disciplina.flg_conteudo_curricular is true and cc.flg_aponta_conteudo_curricular is true and exists ( select null from conteudo_curricular_componente where id_componente_curricular = cc.id_componente_curricular);Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Jun 25 01 1 13m17s 13m17s -
insert into consulta.conteudo_curricular_ministrado (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, planejado, planejado_analise_ling, realizado, realizado_analise_ling, realizado_bimestre_1, realizado_bimestre_2, realizado_bimestre_3, realizado_bimestre_4) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional as rf_professor, cidadao.nome as nome_professor, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = 2) as integer) as planejado, cast(( select count(ccc.id_conteudo_curricular_componente) from conteudo_curricular_componente ccc inner join conteudo_curricular ct on ccc.id_conteudo_curricular = ct.id_conteudo_curricular where ccc.id_componente_curricular = cc.id_componente_curricular and ccc.flg_ativo and ccc.id_nota_periodo_aluno = calendario_periodo.ordem and ct.id_tipo_conteudo_curricular = 4) as integer) as planejado_analise_ling, coalesce(realizado.conteudo_ministrado, 0) as realizado, coalesce(realizado.conteudo_analise_ling_ministrado, 0) as realizado_analise_ling, coalesce(realizado_bimestre.ministrado_bimestre_1, 0) as realizado_bimestre_1, coalesce(realizado_bimestre.ministrado_bimestre_2, 0) as realizado_bimestre_2, coalesce(realizado_bimestre.ministrado_bimestre_3, 0) as realizado_bimestre_3, coalesce(realizado_bimestre.ministrado_bimestre_4, 0) as realizado_bimestre_4 from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina on cc.id_disciplina = disciplina.id_disciplina inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo on calendario_periodo.id_calendario = escola_calendario.id_calendario left join turma_componente tc on tc.id_turma = turma.id_turma and tc.id_componente_curricular = cc.id_componente_curricular left join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente left join cidadao on tcs.id_cidadao = cidadao.id_cidadao left join servidor on servidor.id_cidadao = cidadao.id_cidadao left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento, cast(count(distinct case when ccmd.id_conteudo_analise_ling is null then ccmd.id_conteudo_curricular else null end) as integer) as conteudo_ministrado, cast(count(distinct ccmd.id_conteudo_curricular || '_' || ccmd.id_conteudo_analise_ling) as integer) as conteudo_analise_ling_ministrado from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_periodo_planejamento) as realizado on realizado.id_turma = ts.id_turma and realizado.id_serie = ts.id_serie and realizado.id_componente_curricular = cc.id_componente_curricular and realizado.id_periodo_planejamento = calendario_periodo.ordem left join ( select ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno, sum( case when ccmd.id_periodo_planejamento = 1 then 1 else 0 end) as ministrado_bimestre_1, sum( case when ccmd.id_periodo_planejamento = 2 then 1 else 0 end) as ministrado_bimestre_2, sum( case when ccmd.id_periodo_planejamento = 3 then 1 else 0 end) as ministrado_bimestre_3, sum( case when ccmd.id_periodo_planejamento = 4 then 1 else 0 end) as ministrado_bimestre_4 from consulta.conteudo_curric_ministrado_detalhe ccmd group by ccmd.id_turma, ccmd.id_serie, ccmd.id_componente_curricular, ccmd.id_nota_periodo_aluno) as realizado_bimestre on realizado_bimestre.id_turma = ts.id_turma and realizado_bimestre.id_serie = ts.id_serie and realizado_bimestre.id_componente_curricular = cc.id_componente_curricular and realizado_bimestre.id_nota_periodo_aluno = calendario_periodo.ordem where disciplina.flg_conteudo_curricular is true and cc.flg_aponta_conteudo_curricular is true and exists ( select null from conteudo_curricular_componente where id_componente_curricular = cc.id_componente_curricular);
Date: 2026-06-25 01:20:11 Duration: 13m17s Bind query: yes
3 5m35s 5m35s 5m35s 1 5m35s 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 cc.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 = ? inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo periodo1 on periodo1.id_calendario = escola_calendario.id_calendario and periodo1.ordem = ? inner join calendario_periodo periodo2 on periodo2.id_calendario = escola_calendario.id_calendario and periodo2.ordem = ? inner join calendario_periodo periodo3 on periodo3.id_calendario = escola_calendario.id_calendario and periodo3.ordem = ? inner join calendario_periodo periodo4 on periodo4.id_calendario = escola_calendario.id_calendario and periodo4.ordem = ? inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso left join lateral ( select case when ano.semestre = ? then periodo3.data_inicio else periodo1.data_inicio end as inicio, case when ano.semestre = ? then periodo2.data_final else periodo4.data_final end as fim) datas on ? = ? inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario and calendario_periodo_data.data between datas.inicio and datas.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 turma_periodo on turma_periodo.id_turma = amt.id_turma and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim 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 cc on cc.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 = cc.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 serie.flg_apon_falta_globalizado is false and cc.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 = cc.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 #3
Day Hour Count Duration Avg duration Jun 25 01 1 5m35s 5m35s -
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 cc.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 inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = ano.ano inner join calendario_periodo periodo1 on periodo1.id_calendario = escola_calendario.id_calendario and periodo1.ordem = 1 inner join calendario_periodo periodo2 on periodo2.id_calendario = escola_calendario.id_calendario and periodo2.ordem = 2 inner join calendario_periodo periodo3 on periodo3.id_calendario = escola_calendario.id_calendario and periodo3.ordem = 3 inner join calendario_periodo periodo4 on periodo4.id_calendario = escola_calendario.id_calendario and periodo4.ordem = 4 inner join serie on serie.id_serie = amt.id_serie_enturmacao inner join curso on curso.id_curso = serie.id_curso left join lateral ( select case when ano.semestre = 2 then periodo3.data_inicio else periodo1.data_inicio end as inicio, case when ano.semestre = 1 then periodo2.data_final else periodo4.data_final end as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario and calendario_periodo_data.data between datas.inicio and datas.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 turma_periodo on turma_periodo.id_turma = amt.id_turma and calendario_periodo_data.bimestre between turma_periodo.periodo_calendario_inicio and turma_periodo.periodo_calendario_fim 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 cc on cc.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 = cc.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 (72) and am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false and cc.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 = cc.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-25 01:29:17 Duration: 5m35s Bind query: yes
4 57s823ms 7m49s 4m23s 2 8m47s copy log.log_2025_12 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) to stdout;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Jun 25 20 1 57s823ms 57s823ms 21 1 7m49s 7m49s -
COPY log.log_2025_12 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 21:51:08 Duration: 7m49s
-
COPY log.log_2025_12 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 20:43:00 Duration: 57s823ms
5 1m2s 7m8s 3m9s 3 9m29s insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, ?) as integer) as fnj, case when dias_letivos.dias_letivos > ? then (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = ? and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, ?) as integer) as fnj, case when aulas.aulas > ? then (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = ? and serie.flg_apon_falta_globalizado is false;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 25 00 2 8m27s 4m13s 01 1 1m2s 1m2s -
insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, 0) as integer) as fnj, case when dias_letivos.dias_letivos > 0 then (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, 0) as integer) as fnj, case when aulas.aulas > 0 then (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false;
Date: 2026-06-25 00:24:27 Duration: 7m8s Bind query: yes
-
insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, 0) as integer) as fnj, case when dias_letivos.dias_letivos > 0 then (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, 0) as integer) as fnj, case when aulas.aulas > 0 then (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false;
Date: 2026-06-25 00:05:29 Duration: 1m19s Bind query: yes
-
insert into consulta.frequencia_aluno (id_aluno_matricula, id_turma, falta_nao_justificada, perc_falta_nao_justificada) select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_gloabl.fnj, 0) as integer) as fnj, case when dias_letivos.dias_letivos > 0 then (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is true union all select am.id_aluno_matricula, turma.id_turma, cast(coalesce(faltas_disc.fnj, 0) as integer) as fnj, case when aulas.aulas > 0 then (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 else null end as perc_fnj 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 aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join unidade_funcional uf on uf.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre 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 = ano_semestre.ano), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ano_semestre.ano)) as id_calendario) as calendario on true 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 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 left join lateral ( select falta.id_aluno_matricula, falta.id_turma, 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 amdd where amdd.id_aluno_matricula = falta.id_aluno_matricula and amdd.id_turma = falta.id_turma and amdd.id_disciplina = falta.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.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 where am.id_aluno_matr_status = 1 and serie.flg_apon_falta_globalizado is false;
Date: 2026-06-25 01:21:14 Duration: 1m2s Bind query: yes
6 1m50s 4m12s 3m1s 2 6m3s 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) select cidadao.id_instituicao, true 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, ? as aulas, case when falta.id_aluno_matricula is null then ? else ? end as falta 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, ?) as frequencia_ate_data_atual on true 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 left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false where cidadao.id_instituicao in (...) and am.id_aluno_matr_status in (...) and (am.id_aluno_matr_status = ? or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= current_date) and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is true and calendario_data.id_motivo_dia_nao_letivo is null and (calendario_periodo_data.dia_semana between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Jun 25 00 2 6m3s 3m1s -
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) select cidadao.id_instituicao, true 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, 1 as aulas, case when falta.id_aluno_matricula is null then 0 else 1 end as falta 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false where cidadao.id_instituicao in (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is true and calendario_data.id_motivo_dia_nao_letivo is null and (calendario_periodo_data.dia_semana between 0 and 4 or calendario_data.id_motivo_dia_letivo_extra is not null);
Date: 2026-06-25 00:05:13 Duration: 4m12s Bind query: yes
-
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) select cidadao.id_instituicao, true 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, 1 as aulas, case when falta.id_aluno_matricula is null then 0 else 1 end as falta 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 inner join lateral get_valor_parametro_logico (cidadao.id_instituicao, 'percentualFrequenciaDataAtual') as frequencia_ate_data_atual on true 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 left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false where cidadao.id_instituicao in (82) and am.id_aluno_matr_status in (1, 3) and (am.id_aluno_matr_status = 1 or calendario_periodo_data.data < abandono.data_ocorrencia::date) and (frequencia_ate_data_atual is false or calendario_periodo_data.data <= CURRENT_DATE) and am.flg_matricula_atual and serie.flg_apon_falta_globalizado is true and calendario_data.id_motivo_dia_nao_letivo is null and (calendario_periodo_data.dia_semana between 0 and 4 or calendario_data.id_motivo_dia_letivo_extra is not null);
Date: 2026-06-25 00:02:50 Duration: 1m50s Bind query: yes
7 19s627ms 5m1s 2m40s 2 5m21s copy log.log_2025_07 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) to stdout;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Jun 25 20 1 19s627ms 19s627ms 21 1 5m1s 5m1s -
COPY log.log_2025_07 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 21:27:13 Duration: 5m1s
-
COPY log.log_2025_07 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 20:40:26 Duration: 19s627ms
8 39s22ms 4m42s 2m40s 2 5m21s insert into consulta.apontamento_turma_periodo (id_turma, id_serie, id_nota_periodo_aluno, num_alunos_enturmados, possui_apont_nota, possui_apont_falta_disc, possui_apont_falta_global, possui_apont_aval_desc, pendencia_apont_nota, pendencia_apont_falta_disc, pendencia_apont_falta_global, pendencia_apont_aval_desc) select turma.id_turma, ts.id_serie, periodo.id_nota_periodo_aluno, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as num_alunos_enturmados, case when serie.id_forma_avaliacao in (...) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = na.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and coalesce(am.flg_parecer_descritivo, false) is false and (na.nota is not null or na.id_conceito_avaliacao is not null or na.flg_nao_compareceu is true) and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as possui_apont_nota, case when serie.flg_apon_falta_globalizado is false and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = fad.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and fad.qtd_faltas is not null and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as possui_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and fag.qtd_faltas is not null and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as possui_apont_falta_global, case when serie.id_forma_avaliacao = ? and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join apontamento_avaliacao_desc aad on aad.id_aluno_matricula = amt.id_aluno_matricula and aad.id_turma = amt.id_turma and aad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as possui_apont_aval_desc, case when serie.id_forma_avaliacao in (...) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status = ? and amdd.id_disciplina is null and ((na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) or (turma.flg_atividade_avaliativa is true and case when periodo.id_nota_periodo_aluno = ? then not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) and (na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) else not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) end)) and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as pendencia_apont_nota, case when serie.flg_apon_falta_globalizado is false and periodo.id_nota_periodo_aluno <> ? and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas = true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and fad.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and amdd.id_disciplina is null and ((fad.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_disciplina_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina))) and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as pendencia_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and periodo.id_nota_periodo_aluno <> ? and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma left join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> array[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = ? and exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and flg_aponta_faltas = true) and ((fag.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_global_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno))) and mdp.id_motivo_dispensa_periodo is null) then ? else ? end as pendencia_apont_falta_global, case when serie.id_forma_avaliacao = ? and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and ead.flg_descritor = false and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= periodo.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> array[periodo.id_nota_periodo_aluno]) and emap.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and am.id_aluno_matr_status = ? and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_turma = ts.id_turma and aead.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno) and (area.flg_exclusivo_necessidade_esp is false or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) and emad.flg_ativo is true) then ? else ? end as pendencia_apont_aval_desc from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso cross join nota_periodo_aluno periodo left join turma_periodo on turma_periodo.id_turma = turma.id_turma and turma_periodo.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno where turma.id_turma_status = ? and turma.flg_especial is false and (serie.id_forma_avaliacao = ? or exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and (flg_aponta_notas = true or flg_aponta_faltas = true))) and (turma_periodo.id_nota_periodo_aluno is not null or periodo.id_nota_periodo_aluno = ?);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 25 00 2 5m21s 2m40s -
insert into consulta.apontamento_turma_periodo (id_turma, id_serie, id_nota_periodo_aluno, num_alunos_enturmados, possui_apont_nota, possui_apont_falta_disc, possui_apont_falta_global, possui_apont_aval_desc, pendencia_apont_nota, pendencia_apont_falta_disc, pendencia_apont_falta_global, pendencia_apont_aval_desc) select turma.id_turma, ts.id_serie, periodo.id_nota_periodo_aluno, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as num_alunos_enturmados, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = na.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and coalesce(am.flg_parecer_descritivo, false) is false and (na.nota is not null or na.id_conceito_avaliacao is not null or na.flg_nao_compareceu is true) and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_nota, case when serie.flg_apon_falta_globalizado is false and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = fad.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fad.qtd_faltas is not null and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fag.qtd_faltas is not null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join apontamento_avaliacao_desc aad on aad.id_aluno_matricula = amt.id_aluno_matricula and aad.id_turma = amt.id_turma and aad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_aval_desc, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) or (turma.flg_atividade_avaliativa is true and case when periodo.id_nota_periodo_aluno = 5 then not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) and (na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) else not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) end)) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_nota, case when serie.flg_apon_falta_globalizado is false and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas = true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and fad.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((fad.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_disciplina_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma left join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and flg_aponta_faltas = true) and ((fag.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_global_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and ead.flg_descritor = false and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= periodo.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) and emap.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and am.id_aluno_matr_status = 1 and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_turma = ts.id_turma and aead.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno) and (area.flg_exclusivo_necessidade_esp is false or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) and emad.flg_ativo is true) then 1 else 0 end as pendencia_apont_aval_desc from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso cross join nota_periodo_aluno periodo left join turma_periodo on turma_periodo.id_turma = turma.id_turma and turma_periodo.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno where turma.id_turma_status = 1 and turma.flg_especial is false and (serie.id_forma_avaliacao = 3 or exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and (flg_aponta_notas = true or flg_aponta_faltas = true))) and (turma_periodo.id_nota_periodo_aluno is not null or periodo.id_nota_periodo_aluno = 5);
Date: 2026-06-25 00:14:09 Duration: 4m42s Bind query: yes
-
insert into consulta.apontamento_turma_periodo (id_turma, id_serie, id_nota_periodo_aluno, num_alunos_enturmados, possui_apont_nota, possui_apont_falta_disc, possui_apont_falta_global, possui_apont_aval_desc, pendencia_apont_nota, pendencia_apont_falta_disc, pendencia_apont_falta_global, pendencia_apont_aval_desc) select turma.id_turma, ts.id_serie, periodo.id_nota_periodo_aluno, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as num_alunos_enturmados, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = na.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and coalesce(am.flg_parecer_descritivo, false) is false and (na.nota is not null or na.id_conceito_avaliacao is not null or na.flg_nao_compareceu is true) and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_nota, case when serie.flg_apon_falta_globalizado is false and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = fad.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fad.qtd_faltas is not null and amdd.id_disciplina is null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and fag.qtd_faltas is not null and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join apontamento_avaliacao_desc aad on aad.id_aluno_matricula = amt.id_aluno_matricula and aad.id_turma = amt.id_turma and aad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as possui_apont_aval_desc, case when serie.id_forma_avaliacao in (1, 2) and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas = true left join nota_aluno na on na.id_aluno_matricula = amt.id_aluno_matricula and na.id_turma = amt.id_turma and na.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and na.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and coalesce(am.flg_parecer_descritivo, false) is false and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) or (turma.flg_atividade_avaliativa is true and case when periodo.id_nota_periodo_aluno = 5 then not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) and (na.nota is null and na.id_conceito_avaliacao is null and na.flg_nao_compareceu is not true) else not exists ( select null from nota_aluno_atividade_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina) end)) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_nota, case when serie.flg_apon_falta_globalizado is false and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_faltas = true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = amt.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and fad.id_disciplina = cc.id_disciplina left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = am.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and amdd.id_disciplina is null and ((fad.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_disciplina_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and id_disciplina = cc.id_disciplina))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_disc, case when serie.flg_apon_falta_globalizado is true and periodo.id_nota_periodo_aluno <> 5 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma left join falta_aluno_globalizada fag on fag.id_aluno_matricula = amt.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno] where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and am.id_aluno_matr_status = 1 and exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and flg_aponta_faltas = true) and ((fag.qtd_faltas is null and t.flg_frequencia_diaria is false) or (turma.flg_frequencia_diaria is true and not exists ( select null from falta_global_diario_concluido where id_turma = turma.id_turma and id_nota_periodo_aluno = periodo.id_nota_periodo_aluno))) and mdp.id_motivo_dispensa_periodo is null) then 1 else 0 end as pendencia_apont_falta_global, case when serie.id_forma_avaliacao = 3 and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on mad.id_modelo_avaliacao_desc = emad.id_modelo_avaliacao_desc inner join area_conhecimento_gestao area on area.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emad.id_eixo_modelo_avaliacao_desc = emap.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on emad.id_eixo_avaliacao_desc = ead.id_eixo_avaliacao_desc left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo where amt.id_turma = turma.id_turma and amt.id_serie_enturmacao = serie.id_serie and ead.flg_descritor = false and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= periodo.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[periodo.id_nota_periodo_aluno]) and emap.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno and am.id_aluno_matr_status = 1 and emad.id_eixo_modelo_avaliacao_desc not in ( select id_eixo_modelo_avaliacao_desc from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_turma = ts.id_turma and aead.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno) and (area.flg_exclusivo_necessidade_esp is false or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(area.necessidade_especial)))) and (area.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) and emad.flg_ativo is true) then 1 else 0 end as pendencia_apont_aval_desc from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso cross join nota_periodo_aluno periodo left join turma_periodo on turma_periodo.id_turma = turma.id_turma and turma_periodo.id_nota_periodo_aluno = periodo.id_nota_periodo_aluno where turma.id_turma_status = 1 and turma.flg_especial is false and (serie.id_forma_avaliacao = 3 or exists ( select null from componente_curricular where id_grade_curricular = ts.id_grade_curricular and (flg_aponta_notas = true or flg_aponta_faltas = true))) and (turma_periodo.id_nota_periodo_aluno is not null or periodo.id_nota_periodo_aluno = 5);
Date: 2026-06-25 00:02:19 Duration: 39s22ms Bind query: yes
9 33s802ms 4m37s 2m35s 2 5m11s copy log.log_2025_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) to stdout;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Jun 25 20 1 33s802ms 33s802ms 21 1 4m37s 4m37s -
COPY log.log_2025_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 21:14:14 Duration: 4m37s
-
COPY log.log_2025_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 20:39:27 Duration: 33s802ms
10 40s860ms 4m16s 2m28s 2 4m57s copy log.log_2026_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) to stdout;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Jun 25 20 1 40s860ms 40s860ms 21 1 4m16s 4m16s -
COPY log.log_2026_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 21:59:53 Duration: 4m16s
-
COPY log.log_2026_04 (data, id_instituicao, id_recurso, nome_recurso, id_usuario, login_usuario, nome_usuario, json, fts) TO stdout;
Date: 2026-06-25 20:44:20 Duration: 40s860ms
11 34s131ms 1m34s 55s993ms 7 6m31s select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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 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 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 unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 ? and unidade_funcional.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 unidade_funcional.id_municipio = ? union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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])) 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])) 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 unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.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 unidade_funcional.id_municipio = ? order by escola, aluno;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Jun 25 10 1 54s118ms 54s118ms 13 1 37s478ms 37s478ms 14 1 34s131ms 34s131ms 15 1 1m34s 1m34s 19 3 2m51s 57s285ms -
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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 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 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 unidade_funcional.id_instituicao = '97' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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' and unidade_funcional.id_unidade_funcional in ( select '607418' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607418' and id_assunto_hierarquia_unidade = '80') and unidade_funcional.id_municipio = '330170' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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])) 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])) 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 unidade_funcional.id_instituicao = '97' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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' and unidade_funcional.id_unidade_funcional in ( select '607418' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607418' and id_assunto_hierarquia_unidade = '80') and unidade_funcional.id_municipio = '330170' order by escola, aluno;
Date: 2026-06-25 15:41:18 Duration: 1m34s Bind query: yes
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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 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 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 unidade_funcional.id_instituicao = '98' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 '30' and '100' and unidade_funcional.id_unidade_funcional in ( select '607136' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607136' and id_assunto_hierarquia_unidade = '81') and unidade_funcional.id_municipio = '330350' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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])) 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])) 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 unidade_funcional.id_instituicao = '98' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 '30' and '100' and unidade_funcional.id_unidade_funcional in ( select '607136' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607136' and id_assunto_hierarquia_unidade = '81') and unidade_funcional.id_municipio = '330350' order by escola, aluno;
Date: 2026-06-25 19:07:04 Duration: 1m1s Bind query: yes
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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 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 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 unidade_funcional.id_instituicao = '98' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '607136' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607136' and id_assunto_hierarquia_unidade = '81') and unidade_funcional.id_municipio = '330350' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome 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, 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 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 inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional 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])) 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])) 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 unidade_funcional.id_instituicao = '98' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where 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 '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '607136' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607136' and id_assunto_hierarquia_unidade = '81') and unidade_funcional.id_municipio = '330350' order by escola, aluno;
Date: 2026-06-25 19:10:50 Duration: 56s8ms Bind query: yes
12 1s70ms 35s244ms 12s287ms 43 8m48s with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = ?)) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> ? then to_char(max(data_ocorrencia), ?) else to_char(am.data_matricula, ?) end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then ? else ? end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, ?) as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, ?) as login_aluno, coalesce(procedencia_rendimento.descricao, ?) as procedencia_rendimento, coalesce(procedencia_escola.descricao, ?) as procedencia_escola, coalesce(procedencia_modalidade.descricao, ?) as procedencia_modalidade, coalesce(dc.numero_cns, ?) as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || ? || dc.dv_rg else dc.numero_rg end else ? end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, ?) as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> ? then coalesce(?| | ct.telefone_ddd || ?, ?) || ct.telefone_numero || ?| | ct.telefone_recado_para else coalesce(?| | ct.telefone_ddd || ?, ?) || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ?)) as telefones_contato, to_char(cid.nascimento_data, ?) as data_nascimento_aluno, coalesce(dc.numero_nis, ?) as nis_aluno, coalesce(cid.email, ?) as email_aluno, coalesce(cid.email_instituicional, ?) as email_institucional_aluno, coalesce(u.email_autenticacao_externa, ?) as email_autenticacao_externa, coalesce(m.nome, ?) as municipio_nascimento, coalesce(estado_nascimento.sigla, ?) as uf_nascimento, coalesce(cid.sexo, ?) as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, ?) as raca_cor, case when cid.flg_necessidade_especial is true then ? when cid.flg_necessidade_especial is false then ? end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then ? else ? end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ? order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), ?) as tipo_necessidade, case when cidadao_saude.flg_disturbio then ? else ? end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ? order by descricao) from disturbio inner join cidadao_disturbio on cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then ? when cid.flg_atendimento_especializado is false then ? end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ? || case when cae.flg_publico then ? else ? end, ? order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), ?) as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then ? when aluno_observacoes_familia.flg_recebe_bolsa_familia then ? else ? end as bolsa_familia, coalesce(cid.nome_mae, ?) as nome_mae, coalesce( case when a.id_responsavel_tipo = ? then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, ?) as cpf_mae, coalesce(ge_mae.descricao, ?) as escolaridade_mae, coalesce(cid.profissao_mae, ?) as profissao_mae, coalesce(cid.nome_pai, ?) as nome_pai, coalesce( case when a.id_responsavel_tipo = ? then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, ?) as cpf_pai, coalesce(ge_pai.descricao, ?) as escolaridade_pai, coalesce(cid.profissao_pai, ?) as profissao_pai, coalesce(rt.descricao, ?) as responsavel, coalesce(tro.sigla, ?) as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, ?) as nome_responsavel, coalesce(usuario_responsavel.login, ?) as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, ?) as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, ?) as nis_responsavel, coalesce(resp.email, ?) as email_responsavel, coalesce(ce.endereco, ?) as logradouro, coalesce(ce.numero, ?) as numero_logradouro, coalesce(ce.bairro, ?) as bairro_logradouro, coalesce(ce.complemento, ?) as complemento_logradouro, coalesce(mun.nome, ?) as municipio_logradouro, coalesce(dis.nome, ?) as distrito_logradouro, coalesce(estado.sigla, ?) as uf_logradouro, coalesce(formatar_cep (ce.cep), ?) as cep_logradouro, coalesce(cid.numero_conta_energia, ?) as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, ?) as localizacao_diferenciada, coalesce(unidade_localizacao.nome, ?) as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = ? and uf.id_unidade_funcional = medoa.id_unidade_funcional), ?) as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, ?) as turno, coalesce(t.codigo, ?) as turma, coalesce(t.nome, ?) as nome_turma, coalesce(mp.descricao, ?) as nome_programa, case when t.flg_especial = true then ? when t.flg_especial = false then ? else ? end as tipo_turma, case when t.flg_multietapa is true then ? else ? end turma_multietapa, case when t.flg_multiseriada is true then ? else ? end as turma_multsseriada, coalesce(turma_status.descricao, ?) as situacao_turma, coalesce(ambiente_turma.num_sala::text, ?) as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else ? end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else ? end as nome_anexo, coalesce(dc.numero_matricula_cn, ?) numero_matricula_certidao, coalesce(nac.nome, ?) nacionalidade, case when a.flg_remanescente_quilombo then ? else ? end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then ? else ? end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia on aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude on cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae on ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai on ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, ?) as data_realizacao, case when amsh.flg_transferencia_interna is null then ? when amsh.flg_transferencia_interna is true then ? else ? end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit ?) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = ? and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.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 uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 25 07 1 35s244ms 35s244ms 09 6 1m11s 11s917ms 10 10 2m18s 13s829ms 11 1 3s629ms 3s629ms 12 3 11s413ms 3s804ms 13 6 1m30s 15s43ms 14 12 2m18s 11s547ms 15 2 17s830ms 8s915ms 19 2 21s589ms 10s794ms -
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '98')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '98' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '607078' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607078' and id_assunto_hierarquia_unidade = '81') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 07:09:48 Duration: 35s244ms Bind query: yes
-
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '92')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '92' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '606178' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 10:27:26 Duration: 21s209ms Bind query: yes
-
with ultima_matricula as ( select id_cidadao, id_aluno_matricula from ( select id_cidadao, id_aluno_matricula, data_inclusao, max(data_inclusao) over (partition by id_cidadao) as ultima_data from aluno_matricula where id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2026') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '97')) matricula where ultima_data = data_inclusao ) select a.codigo as matricula_aluno, ams.descricao as situacao, ( select case when am.id_aluno_matr_status <> 1 then to_char(max(data_ocorrencia), 'DD/MM/YYYY') else to_char(am.data_matricula, 'DD/MM/YYYY') end from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula) as data_situacao, historico.data_realizacao, case when coalesce(am.flg_renovacao_matricula, true) then 'Sim' else 'Não' end as flg_renovacao_matricula, historico.tipo_transferencia, historico.motivo_transferencia, coalesce(a.codigo_inep, '') as codigo_inep, coalesce(cid.nome_social) as nome_social, cid.nome as nome_aluno, coalesce(u.login, '') as login_aluno, coalesce(procedencia_rendimento.descricao, '') as procedencia_rendimento, coalesce(procedencia_escola.descricao, '') as procedencia_escola, coalesce(procedencia_modalidade.descricao, '') as procedencia_modalidade, coalesce(dc.numero_cns, '') as numero_cns, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf_aluno, case when dc.numero_rg is not null then case when dc.dv_rg is not null then dc.numero_rg || '-' || dc.dv_rg else dc.numero_rg end else '' end rg, orgao_emissor_rg.descricao as orgao_emissor, uf_emisso_rg.sigla as sigla_uf_emisso_rg, to_char(dc.data_emissao_rg, 'dd/MM/YYYY') as data_emissao_rg, (array_to_string(array ( select case when trim(ct.telefone_recado_para) is not null and trim(ct.telefone_recado_para) <> '' then coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else coalesce('(' || ct.telefone_ddd || ') ', '') || ct.telefone_numero end from cidadao c inner join cidadao_telefone ct on ct.id_cidadao = c.id_cidadao where c.id_cidadao = cid.id_cidadao), ', ')) as telefones_contato, to_char(cid.nascimento_data, 'dd/MM/yyyy') as data_nascimento_aluno, coalesce(dc.numero_nis, '') as nis_aluno, coalesce(cid.email, '') as email_aluno, coalesce(cid.email_instituicional, '') as email_institucional_aluno, coalesce(u.email_autenticacao_externa, '') as email_autenticacao_externa, coalesce(m.nome, '') as municipio_nascimento, coalesce(estado_nascimento.sigla, '') as uf_nascimento, coalesce(cid.sexo, '') as sexo, tte.descricao as utiliza_transporte_escolar, coalesce(rc.descricao, '') as raca_cor, case when cid.flg_necessidade_especial is true then 'Sim' when cid.flg_necessidade_especial is false then 'Não' end as possui_necessidade_especial, case when cid.flg_laudo_medico_necessidade_esp then 'Sim' else 'Não' end as possui_laudo_medico, coalesce(( select string_agg(distinct mne.descricao, ', ' order by mne.descricao) from mec_necessidade_especial mne inner join necessidade_especial ne on ne.id_mec_necessidade_especial = mne.id_mec_necessidade_especial inner join cidadao_necessidade_especial cne on cne.id_necessidade_especial = ne.id_necessidade_especial inner join cidadao on cidadao.id_cidadao = cne.id_cidadao where cid.id_cidadao = cidadao.id_cidadao), '') as tipo_necessidade, case when cidadao_saude.flg_disturbio then 'Sim' else 'Não' end as possui_laudo_medico, ( select string_agg(disturbio.descricao, ', ' order by descricao) from disturbio inner join cidadao_disturbio ON cidadao_disturbio.id_disturbio = disturbio.id_disturbio where cidadao_disturbio.id_cidadao = cid.id_cidadao) as disturbios, case when cid.flg_atendimento_especializado is true then 'Sim' when cid.flg_atendimento_especializado is false then 'Não' end as recebe_atendimento_especializado, coalesce(( select string_agg(ae.descricao || ': ' || case when cae.flg_publico then 'Público' else 'Particular' end, ', ' order by ae.descricao) from cidadao_atendimento_especializado cae inner join atendimento_especializado ae on ae.id_atendimento_especializado = cae.id_atendimento_especializado where cae.id_cidadao = cid.id_cidadao), '') as atendimento_especializado, case when aluno_observacoes_familia.flg_recebe_bolsa_familia isnull then '' when aluno_observacoes_familia.flg_recebe_bolsa_familia then 'Sim' else 'Não' end as bolsa_familia, coalesce(cid.nome_mae, '') as nome_mae, coalesce( case when a.id_responsavel_tipo = 2 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_mae, coalesce(ge_mae.descricao, '') as escolaridade_mae, coalesce(cid.profissao_mae, '') as profissao_mae, coalesce(cid.nome_pai, '') as nome_pai, coalesce( case when a.id_responsavel_tipo = 1 then formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) else null end, '') as cpf_pai, coalesce(ge_pai.descricao, '') as escolaridade_pai, coalesce(cid.profissao_pai, '') as profissao_pai, coalesce(rt.descricao, '') as responsavel, coalesce(tro.sigla, '') as tipo_responsavel, coalesce( case when a.id_responsavel is not null then resp.nome when a.nome_responsavel is not null then a.nome_responsavel end, '') as nome_responsavel, coalesce(usuario_responsavel.login, '') as login_responsavel, formatar_cpf (doc_cid.numero_cpf, doc_cid.digito_cpf) as cpf_responsavel, to_char(resp.nascimento_data, 'dd/MM/YYYY') as data_nascimento_responsavel, coalesce(doc_cid.numero_nis, '') as nis_responsavel, coalesce(resp.email, '') as email_responsavel, coalesce(ce.endereco, '') as logradouro, coalesce(ce.numero, '') as numero_logradouro, coalesce(ce.bairro, '') as bairro_logradouro, coalesce(ce.complemento, '') as complemento_logradouro, coalesce(mun.nome, '') as municipio_logradouro, coalesce(dis.nome, '') as distrito_logradouro, coalesce(estado.sigla, '') as uf_logradouro, coalesce(formatar_cep (ce.cep), '') as cep_logradouro, coalesce(cid.numero_conta_energia, '') as numero_conta_energia, ce.latitude as latitude, ce.longitude as longitude, coalesce(mld.descricao, '') as localizacao_diferenciada, coalesce(unidade_localizacao.nome, '') as unidade_localizacao, uf.codigo as codigo_escola, uf.nome as nome_escola, coalesce(( select meoa.nome from mec_escola_dados_opcao_atributo medoa inner join mec_escola_opcao_atributo meoa on medoa.id_mec_escola_opcao_atributo = meoa.id_mec_escola_opcao_atributo where meoa.id_mec_escola_atributo = 2 and uf.id_unidade_funcional = medoa.id_unidade_funcional), '') as localizacao_zona, ee.sigla as etapa_ensino, mod.descricao as modalidade, c.sigla as curso, s.sigla as serie_etapa, coalesce(tu.descricao, '') as turno, coalesce(t.codigo, '') as turma, coalesce(t.nome, '') as nome_turma, coalesce(mp.descricao, '') as nome_programa, case when t.flg_especial = true then 'Especial' when t.flg_especial = false then 'Regular' else '' end as tipo_turma, case when t.flg_multietapa is true then 'Sim' else 'Não' end turma_multietapa, case when t.flg_multiseriada is true then 'Sim' else 'Não' end as turma_multsseriada, coalesce(turma_status.descricao, '') as situacao_turma, coalesce(ambiente_turma.num_sala::text, '') as numero_sala, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then cast(uf_ambiente.codigo as varchar) else '' end as codigo_anexo, case when uf_ambiente.id_unidade_funcional <> t.id_unidade_funcional then uf_ambiente.nome else '' end as nome_anexo, coalesce(dc.numero_matricula_cn, '') numero_matricula_certidao, coalesce(nac.nome, '') nacionalidade, case when a.flg_remanescente_quilombo then 'Sim' else 'Não' end as remanescente_quilombo, case when a.flg_pertence_povo_cigano then 'Sim' else 'Não' end as pertence_povo_cigano from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao left join tipo_transporte_escolar tte on tte.id_tipo_transporte_escolar = a.id_tipo_transporte_escolar inner join aluno_matricula am on am.id_cidadao = cid.id_cidadao inner join aluno_matr_status ams on am.id_aluno_matr_status = ams.id_aluno_matr_status left join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula left join turma t on t.id_turma = amt.id_turma left join aluno_observacoes_familia ON aluno_observacoes_familia.id_cidadao = a.id_cidadao left join procedencia_rendimento on procedencia_rendimento.id_procedencia_rendimento = am.id_procedencia_rendimento left join procedencia_escola on procedencia_escola.id_procedencia_escola = am.id_procedencia_escola left join procedencia_modalidade on procedencia_modalidade.id_procedencia_modalidade = am.id_procedencia_modalidade inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre left join municipio m on m.id_municipio = cid.id_municipio_nascimento left join uf estado_nascimento on estado_nascimento.id_uf = m.id_uf left join nacionalidade nac on nac.id_nacionalidade = cid.id_nacionalidade left join raca_cor rc on rc.id_raca_cor = cid.id_raca_cor left join cidadao_saude ON cidadao_saude.id_cidadao = cid.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = cid.id_cidadao left join municipio mun on mun.id_municipio = ce.id_municipio left join uf estado on mun.id_uf = estado.id_uf left join distrito dis on dis.id_distrito = ce.id_distrito left join documentos_cidadao dc on cid.id_cidadao = dc.id_cidadao left join cidadao resp on a.id_responsavel = resp.id_cidadao left join responsavel_tipo rt on a.id_responsavel_tipo = rt.id_responsavel_tipo left join tipo_responsavel_outro tro on tro.id_tipo_responsavel_outro = a.id_tipo_responsavel_outro left join documentos_cidadao doc_cid on doc_cid.id_cidadao = resp.id_cidadao inner join unidade_funcional uf on coalesce(t.id_unidade_funcional, am.id_unidade_funcional) = uf.id_unidade_funcional inner join escola on escola.id_unidade_funcional = uf.id_unidade_funcional left join unidade_funcional unidade_localizacao on unidade_localizacao.id_unidade_funcional = escola.id_unidade_localizacao inner join curso c on c.id_curso = am.id_curso inner join modalidade mod on c.id_modalidade = mod.id_modalidade inner join serie s on s.id_serie = am.id_serie left join turno tu on t.id_turno = tu.id_turno left join turma_status on turma_status.id_turma_status = t.id_turma_status left join turma_especial te on t.id_turma = te.id_turma left join mec_programa mp on mp.id_mec_programa = t.id_mec_programa left join grau_escolaridade ge_mae ON ge_mae.id_grau_escolaridade = cid.id_grau_escolaridade_mae left join grau_escolaridade ge_pai ON ge_pai.id_grau_escolaridade = cid.id_grau_escolaridade_pai -- Anexo left join ambiente ambiente_turma on ambiente_turma.id_ambiente = t.id_ambiente left join unidade_funcional uf_ambiente on uf_ambiente.id_unidade_funcional = ambiente_turma.id_unidade_referencia left join lateral ( select to_char(amsh.data_cadastro, 'dd/MM/YYYY') as data_realizacao, case when amsh.flg_transferencia_interna is null then '' when amsh.flg_transferencia_interna is true then 'Transferência interna' else 'Transferência externa' end as tipo_transferencia, tm.descricao as motivo_transferencia from aluno_matr_status_hist amsh left join transferencia_motivo tm on tm.id_transferencia_motivo = amsh.id_transferencia_motivo where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.id_aluno_matr_status = am.id_aluno_matr_status order by amsh.data_cadastro desc, amsh.id_aluno_matr_status_hist desc limit 1) as historico on true left join cidadao_usuario cu on cu.id_cidadao = am.id_cidadao left join usuario u on u.id_usuario = cu.id_usuario left join cidadao_usuario cidadao_responsavel on cidadao_responsavel.id_cidadao = a.id_responsavel left join usuario usuario_responsavel on usuario_responsavel.id_usuario = cidadao_responsavel.id_usuario left join mec_localizacao_diferenciada mld on mld.id_mec_localizacao_diferenciada = cid.id_mec_localizacao_diferenciada left join ensino_etapa ee on ee.id_ensino_etapa = mod.id_ensino_etapa left join uf uf_emisso_rg on uf_emisso_rg.id_uf = dc.id_uf_emissor_rg left join orgao_emissor_rg on orgao_emissor_rg.id_orgao_emissor_rg = dc.id_orgao_emissor_rg where cid.id_instituicao = '97' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2026' and uf.id_unidade_funcional in ( select '607358' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607358' and id_assunto_hierarquia_unidade = '80') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2026-06-25 13:46:54 Duration: 21s149ms Bind query: yes
13 3s542ms 7s955ms 4s130ms 94 6m28s select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc limit ? offset ?) r;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Jun 25 12 3 11s870ms 3s956ms 13 31 2m24s 4s668ms 14 45 2m51s 3s816ms 15 15 59s914ms 3s994ms -
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 10) r;
Date: 2026-06-25 13:26:44 Duration: 7s955ms Bind query: yes
-
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 10) r;
Date: 2026-06-25 13:25:54 Duration: 7s897ms Bind query: yes
-
select json_agg(r.*)::text as r from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10 offset 20) r;
Date: 2026-06-25 13:21:16 Duration: 7s720ms Bind query: yes
14 1s661ms 9s577ms 3s895ms 79 5m7s select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc) tabela;Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Jun 25 10 4 11s240ms 2s810ms 11 2 7s735ms 3s867ms 12 17 1m2s 3s684ms 13 17 1m18s 4s613ms 14 36 2m16s 3s782ms 15 3 11s556ms 3s852ms -
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:26:17 Duration: 9s577ms Bind query: yes
-
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:20:53 Duration: 5s415ms Bind query: yes
-
select count(*) as contagem from ( select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc) tabela;
Date: 2026-06-25 13:21:50 Duration: 5s238ms Bind query: yes
15 1s585ms 7s354ms 3s830ms 79 5m2s select odta.id_observacao_documento_turma_aluno AS "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then ? else ? end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = ? and odta.id_instituicao = ? and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where array[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = ?) or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where array[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = ?)) order by "titulo" asc limit ?;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Jun 25 10 4 10s894ms 2s723ms 11 2 7s658ms 3s829ms 12 17 1m2s 3s701ms 13 17 1m14s 4s387ms 14 36 2m15s 3s767ms 15 3 10s894ms 3s631ms -
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:26:24 Duration: 7s354ms Bind query: yes
-
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:20:59 Duration: 5s561ms Bind query: yes
-
select odta.id_observacao_documento_turma_aluno as "idObservacaoDocumentoTurmaAluno", odta.ano, odta.titulo, case when odta.flg_destinado_turma then 'Turma' else 'Aluno' end as destinado, odta.flg_ativo, odta.id_aluno_matricula, odta.id_turma from observacao_documento_turma_aluno odta where odta.ano = '2025' and odta.id_instituicao = '97' and (exists ( select null from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where ARRAY[t.id_turma] <@ odta.id_turma and t.id_unidade_funcional = '607425') or exists ( select null from aluno_matricula am inner join aluno a on a.id_cidadao = am.id_cidadao inner join cidadao c on c.id_cidadao = am.id_cidadao inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where ARRAY[am.id_aluno_matricula] <@ odta.id_aluno_matricula and am.id_unidade_funcional = '607425')) order by "titulo" asc limit 10;
Date: 2026-06-25 13:21:55 Duration: 5s194ms Bind query: yes
16 502ms 31s665ms 3s398ms 432 24m28s select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then ? when ministrados < total then ? || asterisco else ? || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then ? else ? end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then ? else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo (?, c.serie_duracao = ?, c.id_periodicidade_apontamento = ?) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in (...) and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo (?, c.serie_duracao = ?, c.id_periodicidade_apontamento = ?) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Jun 25 06 1 732ms 732ms 07 9 50s744ms 5s638ms 08 45 1m11s 1s599ms 09 41 1m55s 2s807ms 10 33 1m56s 3s515ms 11 57 2m22s 2s499ms 12 31 2m22s 4s601ms 13 51 2m23s 2s813ms 14 42 1m40s 2s399ms 15 64 2m5s 1s957ms 16 35 6m56s 11s892ms 17 6 18s657ms 3s109ms 18 4 9s151ms 2s287ms 19 8 5s730ms 716ms 21 5 9s289ms 1s857ms -
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:12:32 Duration: 31s665ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('2', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('2', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:23:22 Duration: 31s257ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_professor, ministrados < total as pendente, case when pendencia_planejamento then 'Não planejado' when ministrados < total then 'Pendente' || asterisco else 'Concluído' || asterisco end as descricao_pendencia, case when pendencia_planejamento then null::int else ministrados::int end as apontados, case when pendencia_planejamento then null::int else total::int end as total from ( select t.id_turma, ts.id_serie, d.id_disciplina, d.descricao, cc.id_componente_curricular, oc.id_organizador_curricular, tp.id_cidadao as id_professor, case when oc.flg_conteudo_por_periodo or oc.flg_conteudo_somente_planejados then '' else '*' end as asterisco, case when oc.flg_conteudo_somente_planejados then p.id_planejamento_bimestral_organizado isnull else false end as pendencia_planejamento, -- total, count( case when oc.flg_conteudo_somente_planejados then poc.id_planejamento_bimestral_organizado else ct.id_conteudo_curricular end) as total, -- ministrados count( case when exists ( select null from conteudo_organizado_aula_conteudo coac inner join conteudo_organizado_aula coa on coa.id_conteudo_organizado_aula = coac.id_conteudo_organizado_aula inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = coa.id_situacao_didatica_aula where sda.id_turma = ts.id_turma and sda.id_serie = ts.id_serie and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and case when oc.flg_conteudo_somente_planejados then coac.id_conteudo_matriz_conteudo = poc.id_conteudo_matriz_conteudo else coac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo end) then 1 else null end) as ministrados from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre inner join serie s on s.id_serie = ts.id_serie inner join curso c on c.id_curso = s.id_curso inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina d on cc.id_disciplina = d.id_disciplina inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = gc.id_grade_curricular and a.id_ano_semestre between ogc.id_ano_semestre_inicio and coalesce(ogc.id_ano_semestre_termino, a.id_ano_semestre) and (ogc.id_componente_curricular = cc.id_componente_curricular or ogc.id_componente_curricular is null) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular inner join matriz_conteudo_curricular mcc on mcc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mcc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mcc.id_matriz_conteudo_curricular inner join conteudo_curricular ct on ct.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = ct.id_tipo_conteudo_curricular and ec.id_organizador_curricular = oc.id_organizador_curricular and ec.flg_apontamento left join planejamento_bimestral_organizado p on p.id_turma = t.id_turma and p.id_serie = ts.id_serie and coalesce(p.id_disciplina, d.id_disciplina) = cc.id_disciplina and p.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo left join turma_professor tp on tp.id_turma = ts.id_turma and tp.id_serie = ts.id_serie and tp.id_componente_curricular = cc.id_componente_curricular where t.id_turma in ('260005532', '260005535', '260005536', '260005537', '260005538', '260005539', '260005540', '260005541', '260005542', '260005543', '260005544', '260005545', '260005546', '260005547', '260005548', '260005549', '260005550', '260005551', '260005552', '260005553', '260005554', '260005555', '260005556', '260005557', '260005558', '260005559', '260005560', '260005561', '260005562', '260005563', '260005564', '260005565', '260005566', '260005567', '260015240', '260015241') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('4', c.serie_duracao = 2, c.id_periodicidade_apontamento = 3) or not oc.flg_conteudo_por_periodo) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, oc.id_organizador_curricular, p.id_planejamento_bimestral_organizado, tp.id_cidadao) x;
Date: 2026-06-25 16:20:23 Duration: 31s208ms Bind query: yes
17 512ms 18s249ms 2s627ms 44 1m55s select f.id_aluno_matricula, f.id_disciplina, f.data, to_char(f.data, ?) as data_formatada, f.id_horario_turma, f.flg_justificada, upper(m.sigla) as motivo from falta_aluno_disciplina_diario f inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = f.id_aluno_matricula left join motivo_falta_justificada m on m.id_motivo_falta_justificada = f.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = f.id_turma and rfdd.id_disciplina = f.id_disciplina and rfdd.data_referencia = f.data where f.data <= coalesce(a.data_primeira_saida, f.data) and rfdd.flg_concluido is true union select fh.id_aluno_matricula, fh.id_disciplina, fh.data, to_char(fh.data, ?) as data_formatada, fh.id_horario_turma, fh.flg_justificada, coalesce(fh.descricao_motivo_falta_justificada, upper(mh.sigla)) as motivo from aluno_lancamento.falta_aluno_disciplina_diario_hist fh inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = fh.id_aluno_matricula left join motivo_falta_justificada mh on mh.id_motivo_falta_justificada = fh.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = fh.id_turma and rfdd.id_disciplina = fh.id_disciplina and rfdd.data_referencia = fh.data where fh.data <= coalesce(a.data_primeira_saida, fh.data) and rfdd.flg_concluido is true order by id_aluno_matricula, id_disciplina, data;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Jun 25 06 1 2s344ms 2s344ms 08 4 25s473ms 6s368ms 09 9 21s421ms 2s380ms 10 4 7s982ms 1s995ms 11 2 4s903ms 2s451ms 12 9 23s875ms 2s652ms 13 1 512ms 512ms 14 5 8s619ms 1s723ms 15 1 516ms 516ms 16 1 2s801ms 2s801ms 17 6 15s444ms 2s574ms 21 1 1s700ms 1s700ms -
select f.id_aluno_matricula, f.id_disciplina, f.data, to_char(f.data, 'DD/MM/YYYY') as data_formatada, f.id_horario_turma, f.flg_justificada, upper(m.sigla) as motivo from falta_aluno_disciplina_diario f inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = f.id_aluno_matricula left join motivo_falta_justificada m on m.id_motivo_falta_justificada = f.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = f.id_turma and rfdd.id_disciplina = f.id_disciplina and rfdd.data_referencia = f.data where f.data <= coalesce(a.data_primeira_saida, f.data) and rfdd.flg_concluido is true union select fh.id_aluno_matricula, fh.id_disciplina, fh.data, to_char(fh.data, 'DD/MM/YYYY') as data_formatada, fh.id_horario_turma, fh.flg_justificada, coalesce(fh.descricao_motivo_falta_justificada, upper(mh.sigla)) as motivo from aluno_lancamento.falta_aluno_disciplina_diario_hist fh inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = fh.id_aluno_matricula left join motivo_falta_justificada mh on mh.id_motivo_falta_justificada = fh.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = fh.id_turma and rfdd.id_disciplina = fh.id_disciplina and rfdd.data_referencia = fh.data where fh.data <= coalesce(a.data_primeira_saida, fh.data) and rfdd.flg_concluido is true order by id_aluno_matricula, id_disciplina, data;
Date: 2026-06-25 08:30:49 Duration: 18s249ms Bind query: yes
-
select f.id_aluno_matricula, f.id_disciplina, f.data, to_char(f.data, 'DD/MM/YYYY') as data_formatada, f.id_horario_turma, f.flg_justificada, upper(m.sigla) as motivo from falta_aluno_disciplina_diario f inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = f.id_aluno_matricula left join motivo_falta_justificada m on m.id_motivo_falta_justificada = f.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = f.id_turma and rfdd.id_disciplina = f.id_disciplina and rfdd.data_referencia = f.data where f.data <= coalesce(a.data_primeira_saida, f.data) and rfdd.flg_concluido is true union select fh.id_aluno_matricula, fh.id_disciplina, fh.data, to_char(fh.data, 'DD/MM/YYYY') as data_formatada, fh.id_horario_turma, fh.flg_justificada, coalesce(fh.descricao_motivo_falta_justificada, upper(mh.sigla)) as motivo from aluno_lancamento.falta_aluno_disciplina_diario_hist fh inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = fh.id_aluno_matricula left join motivo_falta_justificada mh on mh.id_motivo_falta_justificada = fh.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = fh.id_turma and rfdd.id_disciplina = fh.id_disciplina and rfdd.data_referencia = fh.data where fh.data <= coalesce(a.data_primeira_saida, fh.data) and rfdd.flg_concluido is true order by id_aluno_matricula, id_disciplina, data;
Date: 2026-06-25 12:29:49 Duration: 5s165ms Bind query: yes
-
select f.id_aluno_matricula, f.id_disciplina, f.data, to_char(f.data, 'DD/MM/YYYY') as data_formatada, f.id_horario_turma, f.flg_justificada, upper(m.sigla) as motivo from falta_aluno_disciplina_diario f inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = f.id_aluno_matricula left join motivo_falta_justificada m on m.id_motivo_falta_justificada = f.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = f.id_turma and rfdd.id_disciplina = f.id_disciplina and rfdd.data_referencia = f.data where f.data <= coalesce(a.data_primeira_saida, f.data) and rfdd.flg_concluido is true union select fh.id_aluno_matricula, fh.id_disciplina, fh.data, to_char(fh.data, 'DD/MM/YYYY') as data_formatada, fh.id_horario_turma, fh.flg_justificada, coalesce(fh.descricao_motivo_falta_justificada, upper(mh.sigla)) as motivo from aluno_lancamento.falta_aluno_disciplina_diario_hist fh inner join aluno_turma_diario_impresso a on a.id_aluno_matricula = fh.id_aluno_matricula left join motivo_falta_justificada mh on mh.id_motivo_falta_justificada = fh.id_motivo_falta_justificada inner join registro_falta_disciplina_diario rfdd on rfdd.id_turma = fh.id_turma and rfdd.id_disciplina = fh.id_disciplina and rfdd.data_referencia = fh.data where fh.data <= coalesce(a.data_primeira_saida, fh.data) and rfdd.flg_concluido is true order by id_aluno_matricula, id_disciplina, data;
Date: 2026-06-25 17:44:21 Duration: 4s560ms Bind query: yes
18 508ms 13s873ms 2s577ms 96 4m7s 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 #18
Day Hour Count Duration Avg duration Jun 25 08 7 23s265ms 3s323ms 09 10 22s500ms 2s250ms 10 13 37s392ms 2s876ms 11 10 34s721ms 3s472ms 12 4 5s56ms 1s264ms 13 18 40s597ms 2s255ms 14 13 35s863ms 2s758ms 15 12 26s459ms 2s204ms 16 9 21s565ms 2s396ms -
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 = '606134' 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-25 08:01:17 Duration: 13s873ms 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 = '607139' 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-25 13:14:38 Duration: 5s44ms 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 = '607139' 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-25 13:16:03 Duration: 4s564ms Bind query: yes
19 1s880ms 3s944ms 2s123ms 490 17m20s select id_aluno_matricula, chamada, ? as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, faltas_mes::int, (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = ? then case when s.flg_serie_atividade_complementar is true then ? else ? end when t.id_tipo_turma = ? then ? when t.id_tipo_turma = ? then ? end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma)) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), ?)::int as faltas_mes, coalesce(( select sum(coalesce(falta_justificada, ?) + coalesce(falta_nao_justificada, ?)) from falta_anterior_aluno_globalizada fa where fa.id_aluno_matricula = a.id_aluno_matricula), ?)::int as faltas_anteriores from aluno_turma_diario_impresso a cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = ? left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = ? and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between ? and ? or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Jun 25 06 1 2s150ms 2s150ms 07 42 1m24s 2s10ms 08 92 3m14s 2s116ms 09 65 2m18s 2s129ms 10 42 1m30s 2s154ms 11 40 1m25s 2s128ms 12 10 20s790ms 2s79ms 13 43 1m39s 2s311ms 14 43 1m31s 2s127ms 15 57 1m56s 2s47ms 16 33 1m8s 2s75ms 17 15 31s483ms 2s98ms 18 6 14s697ms 2s449ms 20 1 2s83ms 2s83ms -
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260001324' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2507' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 08:29:58 Duration: 3s944ms Bind query: yes
-
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260000849' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2493' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 18:05:53 Duration: 3s539ms Bind query: yes
-
select id_aluno_matricula, chamada, 0 as id_disciplina, data_saida, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, -- todas as faltas anteriores + faltas mensais até esse mês - faltas desse mês (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes) - faltas_mes)::int as faltas_anteriores, -- somente faltas desse mês faltas_mes::int, -- todas faltas anteriores + faltas de todos os meses (faltas_anteriores + sum(faltas_mes) over (partition by id_aluno_matricula, chamada order by ano, id_mes))::int as faltas_total from ( select a.id_turma, a.id_aluno_matricula, a.chamada, a.data_primeira_saida as data_saida, mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(f.data) from falta_aluno_globalizada_diario f inner join registro_falta_global_diario rfgd on rfgd.id_turma = f.id_turma and rfgd.data_referencia = f.data where f.id_aluno_matricula = a.id_aluno_matricula -- as turmas da frequência que sejam do mesmo tipo de enturmação que a turma do diário de classe and f.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = f.id_aluno_matricula and amt.id_tipo_enturmacao in ( select case when t.id_tipo_turma = '1' then case when s.flg_serie_atividade_complementar is true then '5' else '1' end when t.id_tipo_turma = '2' then '2' when t.id_tipo_turma = '3' then '4' end from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join serie s on ts.id_serie = s.id_serie where t.id_turma = a.id_turma --a turma do diário )) and extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), 0)::int as faltas_mes, -- cadastro de faltas anteriores - TODAS do ano coalesce(( select sum(coalesce(falta_justificada, 0) + coalesce(falta_nao_justificada, 0)) from falta_anterior_aluno_globalizada fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula), 0)::int as faltas_anteriores from aluno_turma_diario_impresso a -- meses do calendário cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = '260002184' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '2559' and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between 0 and 4 or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m -- dispensa de periodo left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;
Date: 2026-06-25 13:22:02 Duration: 3s287ms Bind query: yes
20 522ms 12s959ms 1s872ms 78 2m26s select coalesce(c.id_cidadao, ?) as id_cidadao, c.nome as professor, t.id_turma, s.id_serie, t.id_turma_status = ? as flg_ativa, t.nome as nome_turma, uf.codigo as codigo_unidade, uf.nome as nome_unidade, curso.sigla as sigla_curso, s.sigla as sigla_serie, u.sigla as sigla_turno, a.descricao as area_conhecimento, npa.id_nota_periodo_aluno, npa.ordem as ordem_apontamento, coalesce(tp.descricao, npa.descricao) as apontamento, not (bool_and(exists ( select null from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and aead.id_turma = amt.id_turma and aead.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc))) as flg_pendente from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join turno u on u.id_turno = t.id_turno inner join unidade_funcional uf on t.id_unidade_funcional = uf.id_unidade_funcional inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on emad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join area_conhecimento_gestao a on a.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emap.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on ead.id_eixo_avaliacao_desc = emad.id_eixo_avaliacao_desc inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = emap.id_nota_periodo_aluno left join turma_periodo tp on tp.id_turma = t.id_turma and tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno inner join aluno_matr_turma amt on amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo left join apontamento_avaliacao_desc aad on aad.id_turma = amt.id_turma and am.id_aluno_matricula = aad.id_aluno_matricula and aad.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join turma_professor tpf on tpf.id_turma = ts.id_turma and tpf.id_serie = ts.id_serie left join cidadao c on c.id_cidadao = tpf.id_cidadao where t.id_turma in (...) and ead.flg_descritor = false and emad.flg_ativo is true and am.id_aluno_matr_status in (...) and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= npa.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> array[npa.id_nota_periodo_aluno]) and (aad.flg_nao_foi_possivel_avaliar is null or aad.flg_nao_foi_possivel_avaliar is false) and amt.data_saida is null and (a.flg_exclusivo_necessidade_esp is false or (a.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(a.necessidade_especial)))) and (a.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) group by c.id_cidadao, c.nome, t.id_turma, t.id_turma_status, uf.id_unidade_funcional, curso.id_curso, s.id_serie, t.nome, s.sigla, u.sigla, a.descricao, npa.id_nota_periodo_aluno, npa.descricao, tp.descricao order by t.id_turma_status, professor, nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Jun 25 07 3 7s100ms 2s366ms 08 7 16s222ms 2s317ms 09 5 6s87ms 1s217ms 10 15 27s848ms 1s856ms 11 16 28s35ms 1s752ms 12 4 5s492ms 1s373ms 13 7 9s676ms 1s382ms 14 3 2s941ms 980ms 15 10 29s861ms 2s986ms 16 4 3s860ms 965ms 19 1 597ms 597ms 20 2 7s771ms 3s885ms 23 1 542ms 542ms -
select coalesce(c.id_cidadao, 0) as id_cidadao, c.nome as professor, t.id_turma, s.id_serie, t.id_turma_status = '1' as flg_ativa, t.nome as nome_turma, uf.codigo as codigo_unidade, uf.nome as nome_unidade, curso.sigla as sigla_curso, s.sigla as sigla_serie, u.sigla as sigla_turno, a.descricao as area_conhecimento, npa.id_nota_periodo_aluno, npa.ordem as ordem_apontamento, coalesce(tp.descricao, npa.descricao) as apontamento, not (bool_and(exists ( select null from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and aead.id_turma = amt.id_turma and aead.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc))) as flg_pendente from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join turno u on u.id_turno = t.id_turno inner join unidade_funcional uf on t.id_unidade_funcional = uf.id_unidade_funcional inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on emad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join area_conhecimento_gestao a on a.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emap.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on ead.id_eixo_avaliacao_desc = emad.id_eixo_avaliacao_desc inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = emap.id_nota_periodo_aluno left join turma_periodo tp on tp.id_turma = t.id_turma and tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno inner join aluno_matr_turma amt on amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo left join apontamento_avaliacao_desc aad on aad.id_turma = amt.id_turma and am.id_aluno_matricula = aad.id_aluno_matricula and aad.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join turma_professor tpf on tpf.id_turma = ts.id_turma and tpf.id_serie = ts.id_serie left join cidadao c on c.id_cidadao = tpf.id_cidadao where t.id_turma in ('260009692', '260002454', '260002449', '260002467', '260002463', '260002460', '260002451', '260002465', '260002475', '260009690', '260002473', '260002455', '260002472', '260002474', '260002452', '260002462', '260002461', '260002453', '260002459', '260002466', '260002468', '260002457', '260002470', '260002469', '260002471', '260002456', '260002458', '260002450') and ead.flg_descritor = false and emad.flg_ativo is true and am.id_aluno_matr_status in ('1', '2', '7') and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= npa.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[npa.id_nota_periodo_aluno]) and (aad.flg_nao_foi_possivel_avaliar is null or aad.flg_nao_foi_possivel_avaliar is false) and amt.data_saida is null and (a.flg_exclusivo_necessidade_esp is false or (a.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(a.necessidade_especial)))) and (a.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) group by c.id_cidadao, c.nome, t.id_turma, t.id_turma_status, uf.id_unidade_funcional, curso.id_curso, s.id_serie, t.nome, s.sigla, u.sigla, a.descricao, npa.id_nota_periodo_aluno, npa.descricao, tp.descricao order by t.id_turma_status, professor, nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2026-06-25 15:26:21 Duration: 12s959ms Bind query: yes
-
select coalesce(c.id_cidadao, 0) as id_cidadao, c.nome as professor, t.id_turma, s.id_serie, t.id_turma_status = '1' as flg_ativa, t.nome as nome_turma, uf.codigo as codigo_unidade, uf.nome as nome_unidade, curso.sigla as sigla_curso, s.sigla as sigla_serie, u.sigla as sigla_turno, a.descricao as area_conhecimento, npa.id_nota_periodo_aluno, npa.ordem as ordem_apontamento, coalesce(tp.descricao, npa.descricao) as apontamento, not (bool_and(exists ( select null from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and aead.id_turma = amt.id_turma and aead.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc))) as flg_pendente from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join turno u on u.id_turno = t.id_turno inner join unidade_funcional uf on t.id_unidade_funcional = uf.id_unidade_funcional inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on emad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join area_conhecimento_gestao a on a.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emap.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on ead.id_eixo_avaliacao_desc = emad.id_eixo_avaliacao_desc inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = emap.id_nota_periodo_aluno left join turma_periodo tp on tp.id_turma = t.id_turma and tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno inner join aluno_matr_turma amt on amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo left join apontamento_avaliacao_desc aad on aad.id_turma = amt.id_turma and am.id_aluno_matricula = aad.id_aluno_matricula and aad.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join turma_professor tpf on tpf.id_turma = ts.id_turma and tpf.id_serie = ts.id_serie left join cidadao c on c.id_cidadao = tpf.id_cidadao where t.id_turma in ('260007131', '260007130', '260007149', '260007123', '260007145', '260007136', '260007151', '260007138', '260007121', '260007127', '260007150', '260007124', '260007135', '260007122', '260007134', '260007139', '260007129', '260007144', '260007140', '260007126', '260007142', '260007141', '260007133', '260007132', '260007137', '260007125', '260007120', '260007147', '260007146', '260007148', '260007143', '260007128') and ead.flg_descritor = false and emad.flg_ativo is true and am.id_aluno_matr_status in ('1', '2', '7') and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= npa.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[npa.id_nota_periodo_aluno]) and (aad.flg_nao_foi_possivel_avaliar is null or aad.flg_nao_foi_possivel_avaliar is false) and amt.data_saida is null and (a.flg_exclusivo_necessidade_esp is false or (a.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(a.necessidade_especial)))) and (a.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) group by c.id_cidadao, c.nome, t.id_turma, t.id_turma_status, uf.id_unidade_funcional, curso.id_curso, s.id_serie, t.nome, s.sigla, u.sigla, a.descricao, npa.id_nota_periodo_aluno, npa.descricao, tp.descricao order by t.id_turma_status, professor, nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2026-06-25 08:42:45 Duration: 8s913ms Bind query: yes
-
select coalesce(c.id_cidadao, 0) as id_cidadao, c.nome as professor, t.id_turma, s.id_serie, t.id_turma_status = '1' as flg_ativa, t.nome as nome_turma, uf.codigo as codigo_unidade, uf.nome as nome_unidade, curso.sigla as sigla_curso, s.sigla as sigla_serie, u.sigla as sigla_turno, a.descricao as area_conhecimento, npa.id_nota_periodo_aluno, npa.ordem as ordem_apontamento, coalesce(tp.descricao, npa.descricao) as apontamento, not (bool_and(exists ( select null from apontamento_eixo_aval_desc aead where aead.id_aluno_matricula = amt.id_aluno_matricula and aead.id_nota_periodo_aluno = npa.id_nota_periodo_aluno and aead.id_turma = amt.id_turma and aead.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc))) as flg_pendente from turma t inner join turma_serie ts on t.id_turma = ts.id_turma inner join serie s on s.id_serie = ts.id_serie inner join curso on curso.id_curso = s.id_curso inner join turno u on u.id_turno = t.id_turno inner join unidade_funcional uf on t.id_unidade_funcional = uf.id_unidade_funcional inner join modelo_avaliacao_desc mad on mad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join eixo_modelo_avaliacao_desc emad on emad.id_modelo_avaliacao_desc = ts.id_modelo_avaliacao_desc inner join area_conhecimento_gestao a on a.id_area_conhecimento_gestao = emad.id_area_conhecimento_gestao inner join eixo_modelo_aval_periodo emap on emap.id_eixo_modelo_avaliacao_desc = emad.id_eixo_modelo_avaliacao_desc inner join eixo_avaliacao_desc ead on ead.id_eixo_avaliacao_desc = emad.id_eixo_avaliacao_desc inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = emap.id_nota_periodo_aluno left join turma_periodo tp on tp.id_turma = t.id_turma and tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno inner join aluno_matr_turma amt on amt.id_turma = ts.id_turma and amt.id_serie_enturmacao = ts.id_serie inner join aluno_matricula am on amt.id_aluno_matricula = am.id_aluno_matricula left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = am.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo left join apontamento_avaliacao_desc aad on aad.id_turma = amt.id_turma and am.id_aluno_matricula = aad.id_aluno_matricula and aad.id_nota_periodo_aluno = npa.id_nota_periodo_aluno left join turma_professor tpf on tpf.id_turma = ts.id_turma and tpf.id_serie = ts.id_serie left join cidadao c on c.id_cidadao = tpf.id_cidadao where t.id_turma in ('260006416', '260006422', '260006420', '260006425', '260006411', '260006423', '260006421', '260006419', '260006413', '260006410', '260006415', '260006408', '260006412', '260006417', '260006409', '260006429', '260006426', '260007438', '260006428', '260006414', '260006418') and ead.flg_descritor = false and emad.flg_ativo is true and am.id_aluno_matr_status in ('1', '2', '7') and (amt.id_periodo_retorno_nao_frequente is null or amt.id_periodo_retorno_nao_frequente <= npa.id_nota_periodo_aluno) and (mdp.periodos is null or not mdp.periodos @> ARRAY[npa.id_nota_periodo_aluno]) and (aad.flg_nao_foi_possivel_avaliar is null or aad.flg_nao_foi_possivel_avaliar is false) and amt.data_saida is null and (a.flg_exclusivo_necessidade_esp is false or (a.flg_exclusivo_parecer_descritivo is true and am.flg_parecer_descritivo is true) or exists ( select null from cidadao_necessidade_especial where id_cidadao = am.id_cidadao and id_necessidade_especial in ( select unnest(a.necessidade_especial)))) and (a.flg_exclusivo_aluno_sem_deficiencia is false or ( select flg_necessidade_especial from cidadao where id_cidadao = am.id_cidadao) is false) group by c.id_cidadao, c.nome, t.id_turma, t.id_turma_status, uf.id_unidade_funcional, curso.id_curso, s.id_serie, t.nome, s.sigla, u.sigla, a.descricao, npa.id_nota_periodo_aluno, npa.descricao, tp.descricao order by t.id_turma_status, professor, nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2026-06-25 15:10:16 Duration: 5s740ms 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 1 1s545ms 1 1s545ms 1s545ms 1s545ms select sum(fad.falta_nao_justificada)::int as falta_nao_justificada, sum(fad.falta_justificada)::int as falta_justificada, coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in ( select amd.id_disciplina from aluno_matr_dispensa_disciplina amd where amd.id_aluno_matricula = fad.id_aluno_matricula and amd.id_turma = fad.id_turma) and fad.id_aluno_matricula = $1 and amt.id_turma = $2 group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), fad.id_nota_periodo_aluno;Times Reported Time consuming bind #1
Day Hour Count Duration Avg duration Jun 25 21 1 1s545ms 1s545ms -
select sum(fad.falta_nao_justificada)::int as falta_nao_justificada, sum(fad.falta_justificada)::int as falta_justificada, coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in ( select amd.id_disciplina from aluno_matr_dispensa_disciplina amd where amd.id_aluno_matricula = fad.id_aluno_matricula and amd.id_turma = fad.id_turma) and fad.id_aluno_matricula = $1 and amt.id_turma = $2 group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), fad.id_nota_periodo_aluno;
Date: 2026-06-25 21:06:34 Duration: 1s545ms Database: postgres
2 0ms 5 0ms 0ms 0ms ;Times Reported Time consuming bind #2
Day Hour Count Duration Avg duration Jun 25 09 2 0ms 0ms 13 1 0ms 0ms 21 2 0ms 0ms -
;
Date: Duration: 0ms Database: postgres
-
Events
Log levels
Key values
- 16,912 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
- 1386 ERROR entries
- 0 WARNING entries
- 0 EVENTLOG entries
Most Frequent Errors/Events
Key values
- 1,340 Max number of times the same event was reported
- 1,386 Total events found
Rank Times reported Error 1 1,340 ERROR: duplicate key value violates unique constraint "..."
Times Reported Most Frequent Error / Event #1
Day Hour Count Jun 25 01 1 07 1 09 1 11 603 13 101 14 621 15 2 16 4 20 2 22 3 23 1 - ERROR: duplicate key value violates unique constraint "pk_bolsa_escola_remessa_aluno"
- ERROR: duplicate key value violates unique constraint "pk_nota_aluno_atividade_2026"
- ERROR: duplicate key value violates unique constraint "pk_mec_cpf_aluno"
Detail: Key (id_bolsa_escola_remessa_resp, id_aluno)=(64178116, 1368395) already exists.
Statement: insert into bolsa_escola_remessa_aluno (id_aluno, id_bolsa_escola_remessa_resp) values ($1, $2)Date: 2026-06-25 01:05:55
Detail: Key (id_turma, id_aluno_matricula, id_disciplina, id_nota_periodo_aluno, id_atividade_avaliativa)=(260013089, 4103055, 1835, 2, 1) already exists.
Context: SQL statement "INSERT INTO aluno_lancamento.nota_aluno_atividade_2026 values ($1.*)" função PL/pgSQL sp_nota_aluno_atividade_insert_trigger() linha 14 em EXECUTE
Statement: insert into nota_aluno_atividade (flg_nao_compareceu_rp, id_turma, id_atividade_avaliativa, id_nota_periodo_aluno, id_aluno_matricula, flg_nao_compareceu, id_disciplina, nota) values ($1, $2, $3, $4, $5, $6, $7, $8)Date: 2026-06-25 07:53:19
Detail: Key (id_instituicao, cpf)=(82, 04849027687) already exists.
Statement: insert into public.mec_cpf_aluno (data_nascimento, cpf, nome, nome_mae, id_instituicao) values ($1, $2, $3, $4, $5)Date: 2026-06-25 09:05:15
2 22 ERROR: missing FROM-clause entry for table "..."
Times Reported Most Frequent Error / Event #2
Day Hour Count Jun 25 08 2 09 6 10 2 11 8 13 1 15 2 20 1 - ERROR: missing FROM-clause entry for table "ams" at character 457
- ERROR: missing FROM-clause entry for table "ams" at character 457
- ERROR: missing FROM-clause entry for table "ams" at character 457
Statement: select distinct c.denominacao as nome, a.codigo as matricula, i.id_imagem || '.' || i.tipo as foto from cidadao c inner join aluno a ON a.id_cidadao = c.id_cidadao inner join aluno_matricula am ON am.id_cidadao = a.id_cidadao inner join aluno_matr_turma amt ON amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t ON t.id_turma = amt.id_turma left join imagem i ON i.id_imagem = a.id_foto_oficial where t.id_turma = $1 and ams.flg_status_ativo order by c.denominacao, a.codigo, foto
Date: 2026-06-25 08:20:44
Statement: select distinct c.denominacao as nome, a.codigo as matricula, i.id_imagem || '.' || i.tipo as foto from cidadao c inner join aluno a ON a.id_cidadao = c.id_cidadao inner join aluno_matricula am ON am.id_cidadao = a.id_cidadao inner join aluno_matr_turma amt ON amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t ON t.id_turma = amt.id_turma left join imagem i ON i.id_imagem = a.id_foto_oficial where t.id_turma = $1 and ams.flg_status_ativo order by c.denominacao, a.codigo, foto
Date: 2026-06-25 08:58:33
Statement: select distinct c.denominacao as nome, a.codigo as matricula, i.id_imagem || '.' || i.tipo as foto from cidadao c inner join aluno a ON a.id_cidadao = c.id_cidadao inner join aluno_matricula am ON am.id_cidadao = a.id_cidadao inner join aluno_matr_turma amt ON amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t ON t.id_turma = amt.id_turma left join imagem i ON i.id_imagem = a.id_foto_oficial where t.id_turma = $1 and ams.flg_status_ativo order by c.denominacao, a.codigo, foto
Date: 2026-06-25 09:12:26
3 10 ERROR: canceling statement due to statement timeout
Times Reported Most Frequent Error / Event #3
Day Hour Count Jun 25 11 5 12 2 19 1 21 2 - 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-25 11:32:21
Statement: select
Date: 2026-06-25 11:32:32
Statement: select
Date: 2026-06-25 11:57:00
4 9 ERROR: invalid byte sequence for encoding
Times Reported Most Frequent Error / Event #4
Day Hour Count Jun 25 09 9 - ERROR: invalid byte sequence for encoding "UTF8": 0x00
- ERROR: invalid byte sequence for encoding "UTF8": 0x00
- ERROR: invalid byte sequence for encoding "UTF8": 0x00
Statement: insert into conteudo_curricular_aula (data_realizacao, id_situacao_didatica_aula, id_situacao_didatica, conteudo_trab_situacao_didatica, complementacao_conteudo) values ($1, $2, $3, $4, $5)
Date: 2026-06-25 09:39:35
Statement: insert into conteudo_curricular_aula (data_realizacao, id_situacao_didatica_aula, id_situacao_didatica, conteudo_trab_situacao_didatica, complementacao_conteudo) values ($1, $2, $3, $4, $5)
Date: 2026-06-25 09:39:35
Statement: insert into conteudo_curricular_aula (data_realizacao, id_situacao_didatica_aula, id_situacao_didatica, conteudo_trab_situacao_didatica, complementacao_conteudo) values ($1, $2, $3, $4, $5)
Date: 2026-06-25 09:41:33
5 2 ERROR: canceling statement due to statement timeout sum(...)::int as falta_nao_justificada, sum(...)::int as falta_justificada, coalesce(...) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in (...) and fad.id_aluno_matricula = and amt.id_turma = group by coalesce(...), fad.id_nota_periodo_aluno
Times Reported Most Frequent Error / Event #5
Day Hour Count Jun 25 21 2 - ERROR: canceling statement due to statement timeout sum(fad.falta_nao_justificada)::int as falta_nao_justificada, sum(fad.falta_justificada)::int as falta_justificada, coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in (select amd.id_disciplina from aluno_matr_dispensa_disciplina amd where amd.id_aluno_matricula = fad.id_aluno_matricula and amd.id_turma = fad.id_turma ) and fad.id_aluno_matricula = and amt.id_turma = group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), fad.id_nota_periodo_aluno
- ERROR: canceling statement due to statement timeout sum(fad.falta_nao_justificada)::int as falta_nao_justificada, sum(fad.falta_justificada)::int as falta_justificada, coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, fad.id_nota_periodo_aluno from falta_aluno_disciplina fad inner join aluno_matr_turma amt on amt.id_aluno_matricula = fad.id_aluno_matricula 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.id_disciplina = fad.id_disciplina where fad.id_disciplina not in (select amd.id_disciplina from aluno_matr_dispensa_disciplina amd where amd.id_aluno_matricula = fad.id_aluno_matricula and amd.id_turma = fad.id_turma ) and fad.id_aluno_matricula = and amt.id_turma = group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), fad.id_nota_periodo_aluno
Statement: select
Date: 2026-06-25 21:06:42
Statement: select
Date: 2026-06-25 21:07:01
6 1 ERROR: column "..." does not exist
Times Reported Most Frequent Error / Event #6
Day Hour Count Jun 25 14 1 - ERROR: column olinda.id_disciplina does not exist at character 245
Statement: select * from olinda.aluno_matr_dispensa_disciplina olinda where not exists( select null from aluno_matr_dispensa_disciplina amdd where (amdd.id_aluno_matricula, amdd.id_turma, amdd.id_disciplina) = (olinda.id_aluno_matricula, olinda.id_turma, olinda.id_disciplina) );
Date: 2026-06-25 14:03:41
7 1 ERROR: syntax error at or near "..."
Times Reported Most Frequent Error / Event #7
Day Hour Count Jun 25 13 1 - ERROR: syntax error at or near "select" at character 83
Statement: select * from aluno_matr_turma where id_turma = 260010404 and id_aluno_matricula (select id_aluno_matricula from aluno_matricula where id_aluno_matr_status =1) order by data_enturmacao;
Date: 2026-06-25 13:27:51
8 1 ERROR: invalid input syntax for type integer: ...
Times Reported Most Frequent Error / Event #8
Day Hour Count Jun 25 11 1 - ERROR: invalid input syntax for type integer: "" at character 2062
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 = '871') AND (t.id_unidade_funcional = 605904) AND (tu.id_instituicao = 69) AND (ase.ano = '') AND (tuse.id_serie = '1823') AND (t.id_tipo_turma != 4) AND (t.id_turma_status != 3) ORDER BY t.codigo, t.nome
Date: 2026-06-25 11:34:28