-
Global information
- Generated on Thu Aug 29 14:24:31 2024
- Log file: /var/tmp/auge/postgresql-producao-20240829.log
- Parsed 9,302 log entries in 9s
- Log start from 2024-08-29 00:01:01 to 2024-08-29 14:12:32
-
Overview
Global Stats
- 287 Number of unique normalized queries
- 3,257 Number of queries
- 5h47m13s Total query duration
- 2024-08-29 00:01:01 First query
- 2024-08-29 14:12:32 Last query
- 7 queries/s at 2024-08-29 14:09:29 Query peak
- 5h47m13s Total query duration
- 0ms Prepare/parse total duration
- 4s487ms Bind total duration
- 5h47m8s Execute total duration
- 142 Number of events
- 6 Number of unique normalized events
- 97 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
- 3,257 Average queries per session
- 5h47m13s 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
- 7 queries/s Query Peak
- 2024-08-29 14:09:29 Date
SELECT Traffic
Key values
- 7 queries/s Query Peak
- 2024-08-29 14:09:29 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 2 queries/s Query Peak
- 2024-08-29 13:42:53 Date
Queries duration
Key values
- 5h47m13s 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) Aug 29 00 113 502ms 10m55s 34s168ms 10m20s 10m26s 10m59s 01 91 0ms 20m29s 27s321ms 2m38s 11m19s 20m29s 02 10 994ms 1h55m1s 12m20s 1h55m1s 1h55m1s 1h55m1s 03 3 601ms 1s337ms 958ms 2s273ms 2s273ms 2s273ms 04 9 548ms 9s96ms 1s799ms 10s285ms 10s285ms 10s285ms 05 8 508ms 1s267ms 721ms 1s267ms 1s267ms 1s267ms 06 14 521ms 1s730ms 941ms 1s730ms 2s721ms 2s721ms 07 282 500ms 14s644ms 2s221ms 25s968ms 30s612ms 41s580ms 08 442 500ms 1m21s 2s910ms 41s490ms 1m5s 1m51s 09 565 500ms 22s828ms 1s895ms 39s134ms 49s526ms 1m8s 10 710 500ms 4m10s 2s635ms 54s97ms 1m53s 5m3s 11 371 500ms 28s310ms 2s133ms 30s937ms 36s569ms 1m2s 12 167 502ms 10s600ms 1s71ms 6s515ms 8s301ms 16s931ms 13 345 500ms 44s19ms 2s763ms 1m 1m9s 1m25s 14 127 502ms 22s205ms 2s6ms 44s23ms 51s755ms 51s755ms Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Aug 29 00 24 0 4s333ms 1s378ms 5s949ms 1m5s 01 43 0 2s515ms 7s1ms 18s549ms 40s622ms 02 2 0 1s132ms 0ms 2s264ms 2s264ms 03 3 0 958ms 2s273ms 2s273ms 2s273ms 04 9 0 1s799ms 2s380ms 10s285ms 10s285ms 05 8 0 721ms 1s259ms 1s267ms 1s267ms 06 14 0 941ms 1s189ms 1s730ms 2s721ms 07 210 0 2s497ms 16s878ms 23s582ms 30s612ms 08 324 0 2s538ms 23s33ms 34s705ms 46s889ms 09 484 0 1s803ms 23s699ms 33s302ms 46s691ms 10 591 0 2s285ms 36s513ms 43s908ms 1m46s 11 286 0 1s916ms 14s810ms 23s960ms 33s999ms 12 139 0 940ms 5s3ms 6s165ms 7s628ms 13 237 0 2s541ms 23s817ms 28s864ms 1m4s 14 88 0 1s432ms 12s638ms 21s74ms 27s769ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Aug 29 00 76 7 2 0 43s900ms 1m9s 1m50s 10m26s 01 36 8 1 0 52s657ms 7s175ms 58s910ms 20m29s 02 6 0 0 0 20m17s 1m28s 2m25s 1h55m1s 03 0 0 0 0 0ms 0ms 0ms 0ms 04 0 0 0 0 0ms 0ms 0ms 0ms 05 0 0 0 0 0ms 0ms 0ms 0ms 06 0 0 0 0 0ms 0ms 0ms 0ms 07 3 69 0 0 1s416ms 1s391ms 2s427ms 7s223ms 08 2 103 0 0 1s871ms 3s533ms 4s712ms 8s713ms 09 4 64 1 0 1s517ms 1s777ms 2s942ms 5s591ms 10 2 111 0 0 1s619ms 2s704ms 5s241ms 9s273ms 11 3 77 0 0 1s921ms 2s386ms 5s407ms 8s918ms 12 1 26 1 0 1s722ms 640ms 1s387ms 3s910ms 13 1 97 1 0 2s151ms 4s664ms 7s512ms 19s711ms 14 0 36 0 0 1s886ms 4s787ms 9s197ms 12s811ms Day Hour Prepare Bind Bind/Prepare Percentage of prepare Aug 29 00 0 113 113.00 0.00% 01 0 91 91.00 0.00% 02 0 10 10.00 0.00% 03 0 3 3.00 0.00% 04 0 9 9.00 0.00% 05 0 8 8.00 0.00% 06 0 14 14.00 0.00% 07 0 282 282.00 0.00% 08 0 442 442.00 0.00% 09 0 565 565.00 0.00% 10 0 710 710.00 0.00% 11 0 371 371.00 0.00% 12 0 167 167.00 0.00% 13 0 344 344.00 0.00% 14 0 127 127.00 0.00% Day Hour Count Average / Second Aug 29 00 0 0.00/s 01 0 0.00/s 02 0 0.00/s 03 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 Day Hour Count Average Duration Average idle time Aug 29 00 0 0ms 0ms 01 0 0ms 0ms 02 0 0ms 0ms 03 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 -
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 Aug 29 00 0 0s 0s 0s 01 0 0s 0s 0s 02 0 0s 0s 0s 03 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 Day Hour Added Removed Recycled Synced files Longest sync Average sync Aug 29 00 0 0 0 0 0s 0s 01 0 0 0 0 0s 0s 02 0 0 0 0 0s 0s 03 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 Day Hour Count Avg time (sec) Aug 29 00 0 0s 01 0 0s 02 0 0s 03 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 Day Hour Mean distance Mean estimate Aug 29 00 0.00 kB 0.00 kB 01 0.00 kB 0.00 kB 02 0.00 kB 0.00 kB 03 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 -
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 Aug 29 00 0 0 0 01 0 0 0 02 0 0 0 03 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 -
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
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
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 Aug 29 00 0 0 01 0 0 02 0 0 03 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 - 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
- 2,462 Total read queries
- 795 Total write queries
Queries by database
Key values
- unknown Main database
- 3,257 Requests
- 5h47m8s (unknown)
- Main time consuming database
Queries by user
Key values
- unknown Main user
- 3,257 Requests
User Request type Count Duration unknown Total 3,257 5h47m8s cte 56 17m30s ddl 1 1m13s delete 6 35s382ms insert 134 3h41m22s select 2,462 1h27m10s update 598 19m16s Duration by user
Key values
- 5h47m8s (unknown) Main time consuming user
User Request type Count Duration unknown Total 3,257 5h47m8s cte 56 17m30s ddl 1 1m13s delete 6 35s382ms insert 134 3h41m22s select 2,462 1h27m10s update 598 19m16s Queries by host
Key values
- unknown Main host
- 3,257 Requests
- 5h47m8s (unknown)
- Main time consuming host
Queries by application
Key values
- unknown Main application
- 3,257 Requests
- 5h47m8s (unknown)
- Main time consuming application
Number of cancelled queries
Key values
- 1 per second Cancelled query Peak
- 2024-08-29 12:58:50 Date
Number of cancelled queries (5 minutes period)
NO DATASET
-
Top Queries
Histogram of query times
Key values
- 1,803 1000-10000ms duration
Slowest individual queries
Rank Duration Query 1 1h55m1s 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 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 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 (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102) 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 am.flg_matricula_atual 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: 2024-08-29 02:06:28 - Bind query: yes ]
2 20m29s 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: 2024-08-29 01:30:04 - Bind query: yes ]
3 10m55s 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: 2024-08-29 00:42:45 - Bind query: yes ]
4 10m49s 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: 2024-08-29 01:47:16 - Bind query: yes ]
5 10m26s 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 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 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) 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 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: 2024-08-29 00:11:26 - Bind query: yes ]
6 10m20s insert into gestao_programa.acompanhamento_turma_serie (id_turma, id_serie, id_nota_periodo_aluno, matricula_inicial, matricula_suplementar, transferido, desistente, falecido, nao_alfabetizado, correcao_fluxo, aprovado, reprovado_frequencia, reprovado_desempenho) select turma.id_turma, serie.id_serie, calendario_periodo.ordem as id_nota_periodo_aluno, sum( case when am.flg_matricula_inicial is true then 1 else 0 end) as matricula_inicial, sum( case when am.flg_matricula_inicial is false and (periodo_seguinte.ordem is null or am.data_matricula < periodo_seguinte.data_inicio) then 1 else 0 end) as matricula_suplementar, sum( case when am.id_aluno_matr_status = 6 and (periodo_seguinte.ordem is null or historico_transf.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as transferido, sum( case when am.id_aluno_matr_status = 3 and (periodo_seguinte.ordem is null or historico_desist.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as desistente, sum( case when am.id_aluno_matr_status = 4 and (periodo_seguinte.ordem is null or historico_falec.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as falecido, sum( case when am.id_aluno_matr_status in (1, 2, 7) and am.flg_alfabetizado is false and pc.flg_alfabetizado is not true then 1 else 0 end) as nao_alfabetizado, sum( case when am.id_aluno_matr_status in (1, 2, 7) and (cast(date_part('year', age(cast(ano.ano || '-12-31' as timestamp), cidadao.nascimento_data)) as int4) >= serie.idade_distorcao or (am.flg_alfabetizado is false and serie_equiv.ordem > 2)) then 1 else 0 end) as correcao_fluxo, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.flg_aprovacao is true then 1 else 0 end) as aprovado, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.id_parecer_conclusivo_tipo = 1 then 1 else 0 end) as reprovado_frequencia, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.id_parecer_conclusivo_tipo = 2 then 1 else 0 end) as reprovado_desempenho from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular 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 calendario_periodo periodo_seguinte on periodo_seguinte.id_calendario = calendario_periodo.id_calendario and periodo_seguinte.ordem = calendario_periodo.ordem + 1 left join serie_equivalente serie_equiv on serie_equiv.id_serie_equivalente = serie.id_serie_equivalente left join aluno_matr_turma amt on amt.id_turma = turma.id_turma left join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula and (serie.flg_correcao_fluxo is true or serie.id_serie = am.id_serie) left join cidadao on cidadao.id_cidadao = am.id_cidadao left join aluno_matr_status_hist historico_transf on historico_transf.id_aluno_matricula = am.id_aluno_matricula and historico_transf.id_aluno_matr_status = 6 left join aluno_matr_status_hist historico_desist on historico_desist.id_aluno_matricula = am.id_aluno_matricula and historico_desist.id_aluno_matr_status = 3 left join aluno_matr_status_hist historico_falec on historico_falec.id_aluno_matricula = am.id_aluno_matricula and historico_falec.id_aluno_matr_status = 4 left join parecer_conclusivo pc on pc.id_aluno_matricula = am.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo where turma.id_turma_status in (1, 2) group by turma.id_turma, serie.id_serie, calendario_periodo.ordem;[ Date: 2024-08-29 00:56:49 - Bind query: yes ]
7 9m7s insert into consulta.conteudo_curric_ministrado_detalhe (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, id_periodo_planejamento, id_conteudo_campo_eixo, id_conteudo_curricular, id_conteudo_analise_ling, data_realizacao) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional, cidadao.nome as nome_professor, ccp.id_nota_periodo_aluno as id_periodo_planejamento, campo_eixo.id_conteudo_curricular as id_conteudo_campo_eixo, ccp.id_conteudo_curricular, ccpa.id_conteudo_curricular as id_conteudo_analise_ling, conteudo.data_realizacao 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 inner join lateral ( select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, min(data_realizacao) as data_realizacao from ( select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cca.id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and cca.id_conteudo_analise_linguistica is not null and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem and ccp.id_conteudo_analise_linguistica is not null) as apontamentos group by id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica) conteudo on conteudo.id_turma = turma.id_turma and conteudo.id_serie = ts.id_serie and conteudo.id_componente_curricular = cc.id_componente_curricular inner join conteudo_curricular_componente ccp on ccp.id_conteudo_curricular_componente = conteudo.id_conteudo_curricular_componente left join conteudo_curricular_componente campo_eixo on campo_eixo.id_conteudo_curricular_componente = ccp.id_conteudo_curricular_componente_pai left join conteudo_curricular_componente ccpa on ccpa.id_conteudo_curricular_componente = conteudo.id_conteudo_analise_linguistica 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 and id_nota_periodo_aluno = calendario_periodo.ordem);[ Date: 2024-08-29 00:30:24 - Bind query: yes ]
8 7m56s 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 (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 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 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: 2024-08-29 00:19:06 - Bind query: yes ]
9 4m10s with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2024-08-29'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2024-08-29'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2024' and uf.id_instituicao = '98' and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and pm.data_matricula::date <= '2024-08-29' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2024-08-29' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2024-08-29'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '607061' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607061' and id_assunto_hierarquia_unidade = '81') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = 10 left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = 10 left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;[ Date: 2024-08-29 10:35:05 - Bind query: yes ]
10 2m25s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, '2' as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = '2' where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;[ Date: 2024-08-29 02:13:26 - Bind query: yes ]
11 2m21s insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = 3)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Android')) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'iOS')) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Desktop')) as browser from unidade_funcional uf where uf.flg_ativa;[ Date: 2024-08-29 01:35:33 - Bind query: yes ]
12 2m19s 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 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 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 ('97', 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 = '97' and ano_semestre.ano = '2024' and curso_turma.id_curso = '1050' and uf.id_municipio = '330170' and uf.id_unidade_funcional in ( select '607414' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607414' and id_assunto_hierarquia_unidade = '80') and am.id_aluno_matr_status in (1, 2, 7) and serie_turma.id_forma_avaliacao in (1, 2) order by uf.nome, curso_turma.sigla, serie_matricula.sigla, t.codigo, amt.chamada, d.descricao, turma_periodo.id_nota_periodo_aluno;[ Date: 2024-08-29 10:16:51 - Bind query: yes ]
13 1m51s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, '1' as id_monitoramento_frequencia, parametros.ano, parametros.mes as periodo, sum(falta_aluno_mes.faltas)::integer as faltas, case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) as dias_consecutivos from call_center.falta_aluno_mes inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on falta_aluno_mes.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = '1' inner join lateral ( select date_part('year', falta_aluno_mes.data) as ano, date_part('month', falta_aluno_mes.data) as mes) as parametros on true left join parametro on parametro.id_instituicao = falta_aluno_mes.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome where (parametros.ano * 100 + parametros.mes) <= (date_part('year', current_date) * 100 + date_part('month', current_date)) group by falta_aluno_mes.id_instituicao, falta_aluno_mes.id_aluno_matricula, falta_aluno_mes.id_turma, parametros.ano, parametros.mes, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when sum(falta_aluno_mes.aulas) = 0 then 100.0 when sum(falta_aluno_mes.faltas) > sum(falta_aluno_mes.aulas) then 0.0 else round(ceil(100 * (sum(falta_aluno_mes.aulas) - sum(falta_aluno_mes.faltas)) / sum(falta_aluno_mes.aulas)::numeric), case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < parametro_frequencia.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = falta_aluno_mes.id_aluno_matricula and dias_consecutivos.id_turma = falta_aluno_mes.id_turma and date_part('month', dias_consecutivos.data_inicio) <= parametros.mes and parametros.mes <= date_part('month', dias_consecutivos.data_fim)) > parametro_frequencia.faltas_consecutivas;[ Date: 2024-08-29 02:10:03 - Bind query: yes ]
14 1m40s 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: 2024-08-29 01:31:45 - Bind query: yes ]
15 1m38s 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: 2024-08-29 00:06:09 - Bind query: yes ]
16 1m25s 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: 2024-08-29 00:31:50 - Bind query: yes ]
17 1m25s update gestao_programa.acompanhamento_turma_disciplina set abaixo_media = nota.abaixo_media from ( select turma.id_turma, nota_aluno.id_disciplina, 1 as id_nota_periodo_aluno, count(nota_aluno.id_aluno_matricula) as abaixo_media from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.id_nucleo_disciplina = 1 inner join nota_aluno on nota_aluno.id_turma = turma.id_turma and nota_aluno.id_disciplina = cc.id_disciplina and nota_aluno.id_nota_periodo_aluno = 1 left join conceito_avaliacao conceito on conceito.id_conceito_avaliacao = nota_aluno.id_conceito_avaliacao left join procedimento_avaliacao proc_aval on proc_aval.id_procedimento_avaliacao = serie.id_procedimento_avaliacao where turma.id_turma_status in (1, 2) and (conceito.flg_aprova is false or nota_aluno.nota < (serie.valor_maximo_nota * proc_aval.nota_min_aprovacao) / 100) group by turma.id_turma, nota_aluno.id_disciplina union all select turma.id_turma, nota_aluno.id_disciplina, 2 as id_nota_periodo_aluno, count(nota_aluno.id_aluno_matricula) as abaixo_media from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.id_nucleo_disciplina = 1 inner join nota_aluno on nota_aluno.id_turma = turma.id_turma and nota_aluno.id_disciplina = cc.id_disciplina and nota_aluno.id_nota_periodo_aluno = 2 left join conceito_avaliacao conceito on conceito.id_conceito_avaliacao = nota_aluno.id_conceito_avaliacao left join procedimento_avaliacao proc_aval on proc_aval.id_procedimento_avaliacao = serie.id_procedimento_avaliacao where turma.id_turma_status in (1, 2) and (conceito.flg_aprova is false or nota_aluno.nota < (serie.valor_maximo_nota * proc_aval.nota_min_aprovacao) / 100) group by turma.id_turma, nota_aluno.id_disciplina union all select turma.id_turma, nota_aluno.id_disciplina, 3 as id_nota_periodo_aluno, count(nota_aluno.id_aluno_matricula) as abaixo_media from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.id_nucleo_disciplina = 1 inner join nota_aluno on nota_aluno.id_turma = turma.id_turma and nota_aluno.id_disciplina = cc.id_disciplina and nota_aluno.id_nota_periodo_aluno = 3 left join conceito_avaliacao conceito on conceito.id_conceito_avaliacao = nota_aluno.id_conceito_avaliacao left join procedimento_avaliacao proc_aval on proc_aval.id_procedimento_avaliacao = serie.id_procedimento_avaliacao where turma.id_turma_status in (1, 2) and (conceito.flg_aprova is false or nota_aluno.nota < (serie.valor_maximo_nota * proc_aval.nota_min_aprovacao) / 100) group by turma.id_turma, nota_aluno.id_disciplina union all select turma.id_turma, nota_aluno.id_disciplina, 4 as id_nota_periodo_aluno, count(nota_aluno.id_aluno_matricula) as abaixo_media from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.id_nucleo_disciplina = 1 inner join nota_aluno on nota_aluno.id_turma = turma.id_turma and nota_aluno.id_disciplina = cc.id_disciplina and nota_aluno.id_nota_periodo_aluno = 4 left join conceito_avaliacao conceito on conceito.id_conceito_avaliacao = nota_aluno.id_conceito_avaliacao left join procedimento_avaliacao proc_aval on proc_aval.id_procedimento_avaliacao = serie.id_procedimento_avaliacao where turma.id_turma_status in (1, 2) and (conceito.flg_aprova is false or nota_aluno.nota < (serie.valor_maximo_nota * proc_aval.nota_min_aprovacao) / 100) group by turma.id_turma, nota_aluno.id_disciplina) as nota where gestao_programa.acompanhamento_turma_disciplina.id_turma = nota.id_turma and gestao_programa.acompanhamento_turma_disciplina.id_disciplina = nota.id_disciplina and gestao_programa.acompanhamento_turma_disciplina.id_nota_periodo_aluno = nota.id_nota_periodo_aluno;[ Date: 2024-08-29 00:59:06 - Bind query: yes ]
18 1m22s insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval('sq_rendimento_escolar_estatistica_id'), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 7)) as flg_registro_utilizar, case when flg_matricula_inicial = true then 1 else 0 end as matricula_inicial, case when flg_matricula_inicial = false then 1 else 0 end as matricula_suplementar, case when am.id_aluno_matr_status = 6 then 1 else 0 end as transferidos, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is true then 1 else 0 end as transferencia_interna, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is false then 1 else 0 end as transferencia_externa, case when am.id_aluno_matr_status = 3 then 1 else 0 end as desistentes, case when am.id_aluno_matr_status = 4 then 1 else 0 end as falecidos, case when am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7 then 1 else 0 end as matricula_final, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 0 or id_parecer_conclusivo_tipo = 3) then 1 else 0 end as aprovados, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 1 or id_parecer_conclusivo_tipo = 2) then 1 else 0 end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = 1 then 1 else 0 end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) and ((t.id_diario_turma_situacao = '2' and amt.id_diario_turma_situacao_enturmacao = '2') or coalesce(t.id_diario_turma_situacao, - 1) <> '2')) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;[ Date: 2024-08-29 00:04:22 - Bind query: yes ]
19 1m21s with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2024-08-29'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2024-08-29'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2024' and uf.id_instituicao = '91' and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and pm.data_matricula::date <= '2024-08-29' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2024-08-29' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2024-08-29'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = 10 left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = 10 left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;[ Date: 2024-08-29 08:14:04 - Bind query: yes ]
20 1m13s CREATE INDEX IF NOT EXISTS ix_falta_aluno_mes ON call_center.falta_aluno_mes USING btree (id_aluno_matricula, id_turma, data);[ Date: 2024-08-29 02:07:41 - Bind query: yes ]
Time consuming queries (N)
Rank Total duration Times executed Min duration Max duration Avg duration Query 1 1h55m2s 2 876ms 1h55m1s 57m31s 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 = ? left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = ? 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 in (...) and (am.id_aluno_matr_status = ? or calendario_periodo_data.data < abandono.data_ocorrencia::date) and am.flg_matricula_atual 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 #1
Day Hour Count Duration Avg duration Aug 29 00 1 876ms 876ms 02 1 1h55m1s 1h55m1s -
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 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 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 (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102) 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 am.flg_matricula_atual 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: 2024-08-29 02:06:28 Duration: 1h55m1s 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 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 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 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 (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 am.flg_matricula_atual 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: 2024-08-29 00:01:13 Duration: 876ms Bind query: yes
2 22m22s 370 2s789ms 8s790ms 3s627ms 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 #2
Day Hour Count Duration Avg duration Aug 29 07 59 3m8s 3s197ms 08 84 5m11s 3s702ms 09 65 3m56s 3s643ms 10 91 5m42s 3s759ms 11 8 26s436ms 3s304ms 12 8 25s79ms 3s134ms 13 49 3m10s 3s890ms 14 6 21s458ms 3s576ms -
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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240003452' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1143' 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: 2024-08-29 13:53:02 Duration: 8s790ms 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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240001733' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1117' 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: 2024-08-29 10:39:43 Duration: 7s483ms 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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240000435' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1265' 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: 2024-08-29 09:39:19 Duration: 7s462ms Bind query: yes
3 21m55s 2 1m25s 20m29s 10m57s 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 #3
Day Hour Count Duration Avg duration Aug 29 00 1 1m25s 1m25s 01 1 20m29s 20m29s -
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: 2024-08-29 01:30:04 Duration: 20m29s Bind query: yes
-
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: 2024-08-29 00:31:50 Duration: 1m25s Bind query: yes
4 14m29s 424 502ms 11s88ms 2s50ms update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = ? and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit ?) where id_aluno_matricula = ? and id_turma = ? and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = ? and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Aug 29 07 33 1m1s 1s858ms 08 91 3m2s 2s7ms 09 48 1m23s 1s738ms 10 78 2m29s 1s917ms 11 66 2m19s 2s114ms 12 20 29s813ms 1s490ms 13 63 2m44s 2s609ms 14 25 58s674ms 2s346ms -
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '10266' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '1474921' and id_turma = '240003165' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '10266' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 13:31:36 Duration: 11s88ms Bind query: yes
-
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '108409' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '1462329' and id_turma = '240002556' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '108409' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 13:31:48 Duration: 9s440ms Bind query: yes
-
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '1472647' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '2928362' and id_turma = '240001379' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '1472647' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 14:10:35 Duration: 8s208ms Bind query: yes
5 14m14s 3 1m38s 10m55s 4m44s 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 Aug 29 00 2 12m33s 6m16s 01 1 1m40s 1m40s -
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: 2024-08-29 00:42:45 Duration: 10m55s 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: 2024-08-29 01:31:45 Duration: 1m40s 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: 2024-08-29 00:06:09 Duration: 1m38s Bind query: yes
6 10m49s 1 10m49s 10m49s 10m49s 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 #6
Day Hour Count Duration Avg duration Aug 29 01 1 10m49s 10m49s -
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: 2024-08-29 01:47:16 Duration: 10m49s Bind query: yes
7 10m38s 2 12s290ms 10m26s 5m19s 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 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 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 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 #7
Day Hour Count Duration Avg duration Aug 29 00 2 10m38s 5m19s -
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 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 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) 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 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: 2024-08-29 00:11:26 Duration: 10m26s 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 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 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 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: 2024-08-29 00:01:12 Duration: 12s290ms Bind query: yes
8 10m20s 1 10m20s 10m20s 10m20s insert into gestao_programa.acompanhamento_turma_serie (id_turma, id_serie, id_nota_periodo_aluno, matricula_inicial, matricula_suplementar, transferido, desistente, falecido, nao_alfabetizado, correcao_fluxo, aprovado, reprovado_frequencia, reprovado_desempenho) select turma.id_turma, serie.id_serie, calendario_periodo.ordem as id_nota_periodo_aluno, sum( case when am.flg_matricula_inicial is true then ? else ? end) as matricula_inicial, sum( case when am.flg_matricula_inicial is false and (periodo_seguinte.ordem is null or am.data_matricula < periodo_seguinte.data_inicio) then ? else ? end) as matricula_suplementar, sum( case when am.id_aluno_matr_status = ? and (periodo_seguinte.ordem is null or historico_transf.data_ocorrencia < periodo_seguinte.data_inicio) then ? else ? end) as transferido, sum( case when am.id_aluno_matr_status = ? and (periodo_seguinte.ordem is null or historico_desist.data_ocorrencia < periodo_seguinte.data_inicio) then ? else ? end) as desistente, sum( case when am.id_aluno_matr_status = ? and (periodo_seguinte.ordem is null or historico_falec.data_ocorrencia < periodo_seguinte.data_inicio) then ? else ? end) as falecido, sum( case when am.id_aluno_matr_status in (...) and am.flg_alfabetizado is false and pc.flg_alfabetizado is not true then ? else ? end) as nao_alfabetizado, sum( case when am.id_aluno_matr_status in (...) and (cast(date_part(?, age(cast(ano.ano || ? as timestamp), cidadao.nascimento_data)) as int4) >= serie.idade_distorcao or (am.flg_alfabetizado is false and serie_equiv.ordem > ?)) then ? else ? end) as correcao_fluxo, sum( case when am.id_aluno_matr_status in (...) and pct.flg_aprovacao is true then ? else ? end) as aprovado, sum( case when am.id_aluno_matr_status in (...) and pct.id_parecer_conclusivo_tipo = ? then ? else ? end) as reprovado_frequencia, sum( case when am.id_aluno_matr_status in (...) and pct.id_parecer_conclusivo_tipo = ? then ? else ? end) as reprovado_desempenho from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular 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 calendario_periodo periodo_seguinte on periodo_seguinte.id_calendario = calendario_periodo.id_calendario and periodo_seguinte.ordem = calendario_periodo.ordem + ? left join serie_equivalente serie_equiv on serie_equiv.id_serie_equivalente = serie.id_serie_equivalente left join aluno_matr_turma amt on amt.id_turma = turma.id_turma left join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula and (serie.flg_correcao_fluxo is true or serie.id_serie = am.id_serie) left join cidadao on cidadao.id_cidadao = am.id_cidadao left join aluno_matr_status_hist historico_transf on historico_transf.id_aluno_matricula = am.id_aluno_matricula and historico_transf.id_aluno_matr_status = ? left join aluno_matr_status_hist historico_desist on historico_desist.id_aluno_matricula = am.id_aluno_matricula and historico_desist.id_aluno_matr_status = ? left join aluno_matr_status_hist historico_falec on historico_falec.id_aluno_matricula = am.id_aluno_matricula and historico_falec.id_aluno_matr_status = ? left join parecer_conclusivo pc on pc.id_aluno_matricula = am.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo where turma.id_turma_status in (...) group by turma.id_turma, serie.id_serie, calendario_periodo.ordem;Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Aug 29 00 1 10m20s 10m20s -
insert into gestao_programa.acompanhamento_turma_serie (id_turma, id_serie, id_nota_periodo_aluno, matricula_inicial, matricula_suplementar, transferido, desistente, falecido, nao_alfabetizado, correcao_fluxo, aprovado, reprovado_frequencia, reprovado_desempenho) select turma.id_turma, serie.id_serie, calendario_periodo.ordem as id_nota_periodo_aluno, sum( case when am.flg_matricula_inicial is true then 1 else 0 end) as matricula_inicial, sum( case when am.flg_matricula_inicial is false and (periodo_seguinte.ordem is null or am.data_matricula < periodo_seguinte.data_inicio) then 1 else 0 end) as matricula_suplementar, sum( case when am.id_aluno_matr_status = 6 and (periodo_seguinte.ordem is null or historico_transf.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as transferido, sum( case when am.id_aluno_matr_status = 3 and (periodo_seguinte.ordem is null or historico_desist.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as desistente, sum( case when am.id_aluno_matr_status = 4 and (periodo_seguinte.ordem is null or historico_falec.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as falecido, sum( case when am.id_aluno_matr_status in (1, 2, 7) and am.flg_alfabetizado is false and pc.flg_alfabetizado is not true then 1 else 0 end) as nao_alfabetizado, sum( case when am.id_aluno_matr_status in (1, 2, 7) and (cast(date_part('year', age(cast(ano.ano || '-12-31' as timestamp), cidadao.nascimento_data)) as int4) >= serie.idade_distorcao or (am.flg_alfabetizado is false and serie_equiv.ordem > 2)) then 1 else 0 end) as correcao_fluxo, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.flg_aprovacao is true then 1 else 0 end) as aprovado, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.id_parecer_conclusivo_tipo = 1 then 1 else 0 end) as reprovado_frequencia, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.id_parecer_conclusivo_tipo = 2 then 1 else 0 end) as reprovado_desempenho from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular 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 calendario_periodo periodo_seguinte on periodo_seguinte.id_calendario = calendario_periodo.id_calendario and periodo_seguinte.ordem = calendario_periodo.ordem + 1 left join serie_equivalente serie_equiv on serie_equiv.id_serie_equivalente = serie.id_serie_equivalente left join aluno_matr_turma amt on amt.id_turma = turma.id_turma left join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula and (serie.flg_correcao_fluxo is true or serie.id_serie = am.id_serie) left join cidadao on cidadao.id_cidadao = am.id_cidadao left join aluno_matr_status_hist historico_transf on historico_transf.id_aluno_matricula = am.id_aluno_matricula and historico_transf.id_aluno_matr_status = 6 left join aluno_matr_status_hist historico_desist on historico_desist.id_aluno_matricula = am.id_aluno_matricula and historico_desist.id_aluno_matr_status = 3 left join aluno_matr_status_hist historico_falec on historico_falec.id_aluno_matricula = am.id_aluno_matricula and historico_falec.id_aluno_matr_status = 4 left join parecer_conclusivo pc on pc.id_aluno_matricula = am.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo where turma.id_turma_status in (1, 2) group by turma.id_turma, serie.id_serie, calendario_periodo.ordem;
Date: 2024-08-29 00:56:49 Duration: 10m20s Bind query: yes
9 9m57s 29 527ms 44s19ms 20s601ms 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, case when a.flg_transporte_escolar = true then ? when a.flg_transporte_escolar = false then ? end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 Aug 29 08 8 2m58s 22s361ms 09 3 59s383ms 19s794ms 10 4 1m25s 21s401ms 11 4 1m28s 22s166ms 13 7 2m3s 17s709ms 14 3 1m 20s308ms -
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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '459' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '459' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 13:38:10 Duration: 44s19ms 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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '448' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '448' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 08:45:56 Duration: 32s815ms 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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '434' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '434' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 11:58:04 Duration: 28s310ms Bind query: yes
10 9m26s 2 19s172ms 9m7s 4m43s insert into consulta.conteudo_curric_ministrado_detalhe (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, id_periodo_planejamento, id_conteudo_campo_eixo, id_conteudo_curricular, id_conteudo_analise_ling, data_realizacao) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional, cidadao.nome as nome_professor, ccp.id_nota_periodo_aluno as id_periodo_planejamento, campo_eixo.id_conteudo_curricular as id_conteudo_campo_eixo, ccp.id_conteudo_curricular, ccpa.id_conteudo_curricular as id_conteudo_analise_ling, conteudo.data_realizacao 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 inner join lateral ( select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, min(data_realizacao) as data_realizacao from ( select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cca.id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and cca.id_conteudo_analise_linguistica is not null and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem and ccp.id_conteudo_analise_linguistica is not null) as apontamentos group by id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica) conteudo on conteudo.id_turma = turma.id_turma and conteudo.id_serie = ts.id_serie and conteudo.id_componente_curricular = cc.id_componente_curricular inner join conteudo_curricular_componente ccp on ccp.id_conteudo_curricular_componente = conteudo.id_conteudo_curricular_componente left join conteudo_curricular_componente campo_eixo on campo_eixo.id_conteudo_curricular_componente = ccp.id_conteudo_curricular_componente_pai left join conteudo_curricular_componente ccpa on ccpa.id_conteudo_curricular_componente = conteudo.id_conteudo_analise_linguistica 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 and id_nota_periodo_aluno = calendario_periodo.ordem);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Aug 29 00 1 9m7s 9m7s 01 1 19s172ms 19s172ms -
insert into consulta.conteudo_curric_ministrado_detalhe (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, id_periodo_planejamento, id_conteudo_campo_eixo, id_conteudo_curricular, id_conteudo_analise_ling, data_realizacao) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional, cidadao.nome as nome_professor, ccp.id_nota_periodo_aluno as id_periodo_planejamento, campo_eixo.id_conteudo_curricular as id_conteudo_campo_eixo, ccp.id_conteudo_curricular, ccpa.id_conteudo_curricular as id_conteudo_analise_ling, conteudo.data_realizacao 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 inner join lateral ( select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, min(data_realizacao) as data_realizacao from ( select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cca.id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and cca.id_conteudo_analise_linguistica is not null and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem and ccp.id_conteudo_analise_linguistica is not null) as apontamentos group by id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica) conteudo on conteudo.id_turma = turma.id_turma and conteudo.id_serie = ts.id_serie and conteudo.id_componente_curricular = cc.id_componente_curricular inner join conteudo_curricular_componente ccp on ccp.id_conteudo_curricular_componente = conteudo.id_conteudo_curricular_componente left join conteudo_curricular_componente campo_eixo on campo_eixo.id_conteudo_curricular_componente = ccp.id_conteudo_curricular_componente_pai left join conteudo_curricular_componente ccpa on ccpa.id_conteudo_curricular_componente = conteudo.id_conteudo_analise_linguistica 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 and id_nota_periodo_aluno = calendario_periodo.ordem);
Date: 2024-08-29 00:30:24 Duration: 9m7s Bind query: yes
-
insert into consulta.conteudo_curric_ministrado_detalhe (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, id_periodo_planejamento, id_conteudo_campo_eixo, id_conteudo_curricular, id_conteudo_analise_ling, data_realizacao) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional, cidadao.nome as nome_professor, ccp.id_nota_periodo_aluno as id_periodo_planejamento, campo_eixo.id_conteudo_curricular as id_conteudo_campo_eixo, ccp.id_conteudo_curricular, ccpa.id_conteudo_curricular as id_conteudo_analise_ling, conteudo.data_realizacao 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 inner join lateral ( select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, min(data_realizacao) as data_realizacao from ( select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cca.id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and cca.id_conteudo_analise_linguistica is not null and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem and ccp.id_conteudo_analise_linguistica is not null) as apontamentos group by id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica) conteudo on conteudo.id_turma = turma.id_turma and conteudo.id_serie = ts.id_serie and conteudo.id_componente_curricular = cc.id_componente_curricular inner join conteudo_curricular_componente ccp on ccp.id_conteudo_curricular_componente = conteudo.id_conteudo_curricular_componente left join conteudo_curricular_componente campo_eixo on campo_eixo.id_conteudo_curricular_componente = ccp.id_conteudo_curricular_componente_pai left join conteudo_curricular_componente ccpa on ccpa.id_conteudo_curricular_componente = conteudo.id_conteudo_analise_linguistica 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 and id_nota_periodo_aluno = calendario_periodo.ordem);
Date: 2024-08-29 01:09:35 Duration: 19s172ms Bind query: yes
11 9m20s 192 500ms 22s450ms 2s920ms 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 #11
Day Hour Count Duration Avg duration Aug 29 07 19 28s454ms 1s497ms 08 27 1m33s 3s473ms 09 46 1m50s 2s401ms 10 36 2m34s 4s294ms 11 36 1m30s 2s522ms 12 8 4s808ms 601ms 13 10 1m4s 6s490ms 14 10 12s948ms 1s294ms -
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: 2024-08-29 13:33:34 Duration: 22s450ms 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: 2024-08-29 08:16:54 Duration: 20s161ms 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: 2024-08-29 10:53:14 Duration: 16s873ms Bind query: yes
12 9m8s 2 1m11s 7m56s 4m34s 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 (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 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 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 #12
Day Hour Count Duration Avg duration Aug 29 00 2 9m8s 4m34s -
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 (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 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 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: 2024-08-29 00:19:06 Duration: 7m56s 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 (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 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 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: 2024-08-29 00:02:41 Duration: 1m11s Bind query: yes
13 6m5s 270 505ms 4s841ms 1s352ms select id_turma, id_serie, id_disciplina, id_componente_curricular, 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, 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 = ? 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 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) x;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Aug 29 05 1 605ms 605ms 07 1 511ms 511ms 08 34 49s901ms 1s467ms 09 98 1m58s 1s208ms 10 65 1m35s 1s465ms 11 35 55s166ms 1s576ms 12 4 2s289ms 572ms 13 26 34s665ms 1s333ms 14 6 8s272ms 1s378ms -
select id_turma, id_serie, id_disciplina, id_componente_curricular, 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, 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 = '4' 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 where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') 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) x;
Date: 2024-08-29 10:51:55 Duration: 4s841ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, 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, 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 = '2' 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 where t.id_turma in ('240001314', '240001316', '240001318', '240001320', '240001322', '240001349', '240001386', '240001388', '240001389', '240001392', '240001394', '240001395', '240001396', '240001398', '240001415', '240001436', '240001437', '240001440') 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) x;
Date: 2024-08-29 10:50:44 Duration: 4s259ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, 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, 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 = '1' 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 where t.id_turma in ('240005860', '240005861', '240005862', '240005863', '240005864', '240005865', '240005866', '240005867', '240005869', '240005870', '240005872', '240005873', '240005874', '240005875', '240005877', '240005878', '240005879', '240006151', '240006183', '240006546', '240019467') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('1', 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) x;
Date: 2024-08-29 13:40:02 Duration: 4s216ms Bind query: yes
14 5m31s 2 1m21s 4m10s 2m45s with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? and amt.data_enturmacao::date <= ?::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= ?::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit ?) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = ? and uf.id_instituicao = ? and ((t.id_diario_turma_situacao = ? and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = ?) or (t.id_diario_turma_situacao <> ? or t.id_diario_turma_situacao is null)) and pm.data_matricula::date <= ? and ( select amsh.id_aluno_matr_status in (...) from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit ?) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= ?::date and case when a.semestre = ? then cpf.ordem <= ? when a.semestre = ? then cpf.ordem >= ? else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > ? ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = ? left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > ? or pm.alunos > ?) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Aug 29 08 1 1m21s 1m21s 10 1 4m10s 4m10s -
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2024-08-29'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2024-08-29'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2024' and uf.id_instituicao = '98' and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and pm.data_matricula::date <= '2024-08-29' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2024-08-29' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2024-08-29'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '607061' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607061' and id_assunto_hierarquia_unidade = '81') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = 10 left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = 10 left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2024-08-29 10:35:05 Duration: 4m10s Bind query: yes
-
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2024-08-29'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2024-08-29'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2024' and uf.id_instituicao = '91' and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and pm.data_matricula::date <= '2024-08-29' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2024-08-29' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2024-08-29'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = 10 left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = 10 left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2024-08-29 08:14:04 Duration: 1m21s Bind query: yes
15 5m30s 87 3s19ms 7s718ms 3s799ms 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 #15
Day Hour Count Duration Avg duration Aug 29 07 17 59s42ms 3s473ms 08 9 31s378ms 3s486ms 09 9 32s9ms 3s556ms 10 20 1m28s 4s413ms 11 18 1m4s 3s593ms 13 9 37s206ms 4s134ms 14 5 17s955ms 3s591ms -
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 = '240015471' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '18933' 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: 2024-08-29 13:53:10 Duration: 7s718ms 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 = '240019515' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '18998' 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: 2024-08-29 10:39:42 Duration: 6s576ms 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 = '240012520' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '19003' 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: 2024-08-29 10:57:18 Duration: 6s393ms Bind query: yes
16 3m44s 58 553ms 6s743ms 3s876ms select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (?, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ? as percentual_fj, greatest (?, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ? as percentual_fnj, (greatest (?, ? - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ?) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (...) and turma.id_turma_status in (...) and turma.id_unidade_funcional = ? and ano.id_ano_semestre = ? and modalidade.id_ensino_etapa = ? and serie.id_serie = ? and tp.id_nota_periodo_aluno in (...) group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (?, ? - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ?) between ? and ? union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (?, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ? as percentual_fj, greatest (?, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ? as percentual_fnj, greatest (?, (? - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ?) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (...) and turma.id_turma_status in (...) and turma.id_unidade_funcional = ? and ano.id_ano_semestre = ? and modalidade.id_ensino_etapa = ? and serie.id_serie = ? and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in (...) group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > ? and greatest (?, (? - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ?) between ? and ? order by nome_cidadao, codigo_aluno limit ? offset ?;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Aug 29 07 20 1m29s 4s484ms 08 13 1m7s 5s222ms 09 20 47s583ms 2s379ms 11 5 19s686ms 3s937ms -
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 60;
Date: 2024-08-29 08:28:50 Duration: 6s743ms Bind query: yes
-
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 230;
Date: 2024-08-29 08:30:13 Duration: 6s407ms Bind query: yes
-
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 150;
Date: 2024-08-29 08:29:27 Duration: 6s384ms Bind query: yes
17 3m10s 3 7s531ms 2m21s 1m3s insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = ?)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = ?)) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = ?)) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = ?)) as browser from unidade_funcional uf where uf.flg_ativa;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Aug 29 00 1 7s531ms 7s531ms 01 2 3m2s 1m31s -
insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = 3)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Android')) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'iOS')) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Desktop')) as browser from unidade_funcional uf where uf.flg_ativa;
Date: 2024-08-29 01:35:33 Duration: 2m21s Bind query: yes
-
insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = 3)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Android')) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'iOS')) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Desktop')) as browser from unidade_funcional uf where uf.flg_ativa;
Date: 2024-08-29 01:01:54 Duration: 41s949ms Bind query: yes
-
insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = 3)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Android')) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'iOS')) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Desktop')) as browser from unidade_funcional uf where uf.flg_ativa;
Date: 2024-08-29 00:07:27 Duration: 7s531ms Bind query: yes
18 2m41s 110 501ms 4s976ms 1s470ms select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then ? else null end) > ? then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = ? left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = ? inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = ? inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data inner join quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_componente_curricular = cc.id_componente_curricular and q.dia_semana = cpd.dia_semana left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and ((t.id_periodicidade_conteudo = ? and t.flg_conteudo_diario_conforme_quadro) or sda.id_horario_turma = q.id_horario_turma) where t.id_turma in (...) and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and (q.data_inicio_vigencia is null or q.data_inicio_vigencia <= cpd.data) and (q.data_termino_vigencia is null or q.data_termino_vigencia >= cpd.data) and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (...) or (t.id_periodicidade_conteudo = ? and t.flg_conteudo_diario_conforme_quadro) or cc.flg_aponta_conteudo_curricular is false) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, bool_or(not exists ( select null from situacao_didatica_aula sda where sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and sda.id_horario_turma is null)) as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = ? left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = ? inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = ? inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in (...) and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = ? and not t.flg_conteudo_diario_conforme_quadro and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then ? else null end) > ? then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = ? left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = ? inner join calendario_quinzena cq on cq.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cq.periodo_calendario_inicio = ? left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data is null and sda.id_quinzena_ano = cq.id_quinzena_ano and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in (...) and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and t.id_periodicidade_conteudo = ? and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Aug 29 08 16 27s653ms 1s728ms 09 26 24s265ms 933ms 10 32 51s101ms 1s596ms 11 24 42s78ms 1s753ms 13 8 12s891ms 1s611ms 14 4 3s791ms 947ms -
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '2' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data inner join quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_componente_curricular = cc.id_componente_curricular and q.dia_semana = cpd.dia_semana left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and ((t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or sda.id_horario_turma = q.id_horario_turma) where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and (q.data_inicio_vigencia is null or q.data_inicio_vigencia <= cpd.data) and (q.data_termino_vigencia is null or q.data_termino_vigencia >= cpd.data) and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in ('1', '4') or (t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or cc.flg_aponta_conteudo_curricular is false) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, bool_or(not exists ( select null from situacao_didatica_aula sda where sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and sda.id_horario_turma is null)) as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '2' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = '2' and not t.flg_conteudo_diario_conforme_quadro and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_quinzena cq on cq.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cq.periodo_calendario_inicio = '2' left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data is null and sda.id_quinzena_ano = cq.id_quinzena_ano and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and t.id_periodicidade_conteudo = '3' and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular;
Date: 2024-08-29 10:51:43 Duration: 4s976ms Bind query: yes
-
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '3' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data inner join quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_componente_curricular = cc.id_componente_curricular and q.dia_semana = cpd.dia_semana left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and ((t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or sda.id_horario_turma = q.id_horario_turma) where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and (q.data_inicio_vigencia is null or q.data_inicio_vigencia <= cpd.data) and (q.data_termino_vigencia is null or q.data_termino_vigencia >= cpd.data) and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in ('1', '4') or (t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or cc.flg_aponta_conteudo_curricular is false) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, bool_or(not exists ( select null from situacao_didatica_aula sda where sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and sda.id_horario_turma is null)) as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '3' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = '2' and not t.flg_conteudo_diario_conforme_quadro and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_quinzena cq on cq.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cq.periodo_calendario_inicio = '3' left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data is null and sda.id_quinzena_ano = cq.id_quinzena_ano and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and t.id_periodicidade_conteudo = '3' and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular;
Date: 2024-08-29 10:51:50 Duration: 4s2ms Bind query: yes
-
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '4' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data inner join quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_componente_curricular = cc.id_componente_curricular and q.dia_semana = cpd.dia_semana left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and ((t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or sda.id_horario_turma = q.id_horario_turma) where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and (q.data_inicio_vigencia is null or q.data_inicio_vigencia <= cpd.data) and (q.data_termino_vigencia is null or q.data_termino_vigencia >= cpd.data) and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in ('1', '4') or (t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or cc.flg_aponta_conteudo_curricular is false) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, bool_or(not exists ( select null from situacao_didatica_aula sda where sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and sda.id_horario_turma is null)) as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '4' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = '2' and not t.flg_conteudo_diario_conforme_quadro and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_quinzena cq on cq.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cq.periodo_calendario_inicio = '4' left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data is null and sda.id_quinzena_ano = cq.id_quinzena_ano and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and t.id_periodicidade_conteudo = '3' and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular;
Date: 2024-08-29 10:51:59 Duration: 3s751ms Bind query: yes
19 2m34s 2 9s153ms 2m25s 1m17s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Aug 29 01 1 9s153ms 9s153ms 02 1 2m25s 2m25s -
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, '2' as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = '2' where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2024-08-29 02:13:26 Duration: 2m25s Bind query: yes
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, '2' as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = '2' where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2024-08-29 01:47:41 Duration: 9s153ms Bind query: yes
20 2m30s 3 15s252ms 1m22s 50s254ms insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval(?), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (...) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (...)) as flg_registro_utilizar, case when flg_matricula_inicial = true then ? else ? end as matricula_inicial, case when flg_matricula_inicial = false then ? else ? end as matricula_suplementar, case when am.id_aluno_matr_status = ? then ? else ? end as transferidos, case when am.id_aluno_matr_status = ? and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = ? and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit ?) is true then ? else ? end as transferencia_interna, case when am.id_aluno_matr_status = ? and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = ? and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit ?) is false then ? else ? end as transferencia_externa, case when am.id_aluno_matr_status = ? then ? else ? end as desistentes, case when am.id_aluno_matr_status = ? then ? else ? end as falecidos, case when am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ? then ? else ? end as matricula_final, case when (am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ?) and (id_parecer_conclusivo_tipo = ? or id_parecer_conclusivo_tipo = ?) then ? else ? end as aprovados, case when (am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ?) and (id_parecer_conclusivo_tipo = ? or id_parecer_conclusivo_tipo = ?) then ? else ? end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = ? then ? else ? end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (...) and ((t.id_diario_turma_situacao = ? and amt.id_diario_turma_situacao_enturmacao = ?) or coalesce(t.id_diario_turma_situacao, ?) <> ?)) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Aug 29 00 2 2m15s 1m7s 01 1 15s252ms 15s252ms -
insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval('sq_rendimento_escolar_estatistica_id'), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 7)) as flg_registro_utilizar, case when flg_matricula_inicial = true then 1 else 0 end as matricula_inicial, case when flg_matricula_inicial = false then 1 else 0 end as matricula_suplementar, case when am.id_aluno_matr_status = 6 then 1 else 0 end as transferidos, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is true then 1 else 0 end as transferencia_interna, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is false then 1 else 0 end as transferencia_externa, case when am.id_aluno_matr_status = 3 then 1 else 0 end as desistentes, case when am.id_aluno_matr_status = 4 then 1 else 0 end as falecidos, case when am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7 then 1 else 0 end as matricula_final, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 0 or id_parecer_conclusivo_tipo = 3) then 1 else 0 end as aprovados, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 1 or id_parecer_conclusivo_tipo = 2) then 1 else 0 end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = 1 then 1 else 0 end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) and ((t.id_diario_turma_situacao = '2' and amt.id_diario_turma_situacao_enturmacao = '2') or coalesce(t.id_diario_turma_situacao, - 1) <> '2')) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;
Date: 2024-08-29 00:04:22 Duration: 1m22s Bind query: yes
-
insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval('sq_rendimento_escolar_estatistica_id'), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 7)) as flg_registro_utilizar, case when flg_matricula_inicial = true then 1 else 0 end as matricula_inicial, case when flg_matricula_inicial = false then 1 else 0 end as matricula_suplementar, case when am.id_aluno_matr_status = 6 then 1 else 0 end as transferidos, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is true then 1 else 0 end as transferencia_interna, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is false then 1 else 0 end as transferencia_externa, case when am.id_aluno_matr_status = 3 then 1 else 0 end as desistentes, case when am.id_aluno_matr_status = 4 then 1 else 0 end as falecidos, case when am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7 then 1 else 0 end as matricula_final, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 0 or id_parecer_conclusivo_tipo = 3) then 1 else 0 end as aprovados, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 1 or id_parecer_conclusivo_tipo = 2) then 1 else 0 end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = 1 then 1 else 0 end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) and ((t.id_diario_turma_situacao = '2' and amt.id_diario_turma_situacao_enturmacao = '2') or coalesce(t.id_diario_turma_situacao, - 1) <> '2')) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;
Date: 2024-08-29 00:20:18 Duration: 52s854ms Bind query: yes
-
insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval('sq_rendimento_escolar_estatistica_id'), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 7)) as flg_registro_utilizar, case when flg_matricula_inicial = true then 1 else 0 end as matricula_inicial, case when flg_matricula_inicial = false then 1 else 0 end as matricula_suplementar, case when am.id_aluno_matr_status = 6 then 1 else 0 end as transferidos, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is true then 1 else 0 end as transferencia_interna, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is false then 1 else 0 end as transferencia_externa, case when am.id_aluno_matr_status = 3 then 1 else 0 end as desistentes, case when am.id_aluno_matr_status = 4 then 1 else 0 end as falecidos, case when am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7 then 1 else 0 end as matricula_final, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 0 or id_parecer_conclusivo_tipo = 3) then 1 else 0 end as aprovados, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 1 or id_parecer_conclusivo_tipo = 2) then 1 else 0 end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = 1 then 1 else 0 end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) and ((t.id_diario_turma_situacao = '2' and amt.id_diario_turma_situacao_enturmacao = '2') or coalesce(t.id_diario_turma_situacao, - 1) <> '2')) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;
Date: 2024-08-29 01:09:09 Duration: 15s252ms Bind query: yes
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 424 14m29s 502ms 11s88ms 2s50ms update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = ? and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit ?) where id_aluno_matricula = ? and id_turma = ? and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = ? and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Aug 29 07 33 1m1s 1s858ms 08 91 3m2s 2s7ms 09 48 1m23s 1s738ms 10 78 2m29s 1s917ms 11 66 2m19s 2s114ms 12 20 29s813ms 1s490ms 13 63 2m44s 2s609ms 14 25 58s674ms 2s346ms -
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '10266' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '1474921' and id_turma = '240003165' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '10266' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 13:31:36 Duration: 11s88ms Bind query: yes
-
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '108409' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '1462329' and id_turma = '240002556' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '108409' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 13:31:48 Duration: 9s440ms Bind query: yes
-
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '1472647' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '2928362' and id_turma = '240001379' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '1472647' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 14:10:35 Duration: 8s208ms Bind query: yes
2 370 22m22s 2s789ms 8s790ms 3s627ms 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 #2
Day Hour Count Duration Avg duration Aug 29 07 59 3m8s 3s197ms 08 84 5m11s 3s702ms 09 65 3m56s 3s643ms 10 91 5m42s 3s759ms 11 8 26s436ms 3s304ms 12 8 25s79ms 3s134ms 13 49 3m10s 3s890ms 14 6 21s458ms 3s576ms -
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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240003452' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1143' 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: 2024-08-29 13:53:02 Duration: 8s790ms 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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240001733' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1117' 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: 2024-08-29 10:39:43 Duration: 7s483ms 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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240000435' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1265' 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: 2024-08-29 09:39:19 Duration: 7s462ms Bind query: yes
3 270 6m5s 505ms 4s841ms 1s352ms select id_turma, id_serie, id_disciplina, id_componente_curricular, 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, 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 = ? 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 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) x;Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Aug 29 05 1 605ms 605ms 07 1 511ms 511ms 08 34 49s901ms 1s467ms 09 98 1m58s 1s208ms 10 65 1m35s 1s465ms 11 35 55s166ms 1s576ms 12 4 2s289ms 572ms 13 26 34s665ms 1s333ms 14 6 8s272ms 1s378ms -
select id_turma, id_serie, id_disciplina, id_componente_curricular, 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, 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 = '4' 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 where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') 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) x;
Date: 2024-08-29 10:51:55 Duration: 4s841ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, 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, 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 = '2' 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 where t.id_turma in ('240001314', '240001316', '240001318', '240001320', '240001322', '240001349', '240001386', '240001388', '240001389', '240001392', '240001394', '240001395', '240001396', '240001398', '240001415', '240001436', '240001437', '240001440') 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) x;
Date: 2024-08-29 10:50:44 Duration: 4s259ms Bind query: yes
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, 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, 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 = '1' 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 where t.id_turma in ('240005860', '240005861', '240005862', '240005863', '240005864', '240005865', '240005866', '240005867', '240005869', '240005870', '240005872', '240005873', '240005874', '240005875', '240005877', '240005878', '240005879', '240006151', '240006183', '240006546', '240019467') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('1', 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) x;
Date: 2024-08-29 13:40:02 Duration: 4s216ms Bind query: yes
4 192 9m20s 500ms 22s450ms 2s920ms 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 #4
Day Hour Count Duration Avg duration Aug 29 07 19 28s454ms 1s497ms 08 27 1m33s 3s473ms 09 46 1m50s 2s401ms 10 36 2m34s 4s294ms 11 36 1m30s 2s522ms 12 8 4s808ms 601ms 13 10 1m4s 6s490ms 14 10 12s948ms 1s294ms -
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: 2024-08-29 13:33:34 Duration: 22s450ms 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: 2024-08-29 08:16:54 Duration: 20s161ms 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: 2024-08-29 10:53:14 Duration: 16s873ms Bind query: yes
5 159 2m18s 500ms 2s608ms 868ms update falta_aluno_globalizada_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = ? and atestado.flg_ativo and falta_aluno_globalizada_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit ?) where id_aluno_matricula = ? and id_turma = ? and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = ? and atestado.flg_ativo and falta_aluno_globalizada_diario.data between atestado.data_inicio and atestado.data_fim);Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Aug 29 07 36 28s614ms 794ms 08 12 9s568ms 797ms 09 16 14s379ms 898ms 10 33 30s889ms 936ms 11 11 8s955ms 814ms 12 6 5s747ms 957ms 13 34 30s675ms 902ms 14 11 9s223ms 838ms -
update falta_aluno_globalizada_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '24616' and atestado.flg_ativo and falta_aluno_globalizada_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '1433273' and id_turma = '240001079' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '24616' and atestado.flg_ativo and falta_aluno_globalizada_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 07:48:29 Duration: 2s608ms Bind query: yes
-
update falta_aluno_globalizada_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '1873804' and atestado.flg_ativo and falta_aluno_globalizada_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '3043674' and id_turma = '240013556' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '1873804' and atestado.flg_ativo and falta_aluno_globalizada_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 10:15:12 Duration: 2s486ms Bind query: yes
-
update falta_aluno_globalizada_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '378089' and atestado.flg_ativo and falta_aluno_globalizada_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '1484569' and id_turma = '240000633' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '378089' and atestado.flg_ativo and falta_aluno_globalizada_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 10:06:52 Duration: 2s425ms Bind query: yes
6 110 2m41s 501ms 4s976ms 1s470ms select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then ? else null end) > ? then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = ? left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = ? inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = ? inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data inner join quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_componente_curricular = cc.id_componente_curricular and q.dia_semana = cpd.dia_semana left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and ((t.id_periodicidade_conteudo = ? and t.flg_conteudo_diario_conforme_quadro) or sda.id_horario_turma = q.id_horario_turma) where t.id_turma in (...) and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and (q.data_inicio_vigencia is null or q.data_inicio_vigencia <= cpd.data) and (q.data_termino_vigencia is null or q.data_termino_vigencia >= cpd.data) and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (...) or (t.id_periodicidade_conteudo = ? and t.flg_conteudo_diario_conforme_quadro) or cc.flg_aponta_conteudo_curricular is false) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, bool_or(not exists ( select null from situacao_didatica_aula sda where sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and sda.id_horario_turma is null)) as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = ? left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = ? inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = ? inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in (...) and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = ? and not t.flg_conteudo_diario_conforme_quadro and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then ? else null end) > ? then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = ? left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = ? inner join calendario_quinzena cq on cq.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cq.periodo_calendario_inicio = ? left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data is null and sda.id_quinzena_ano = cq.id_quinzena_ano and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in (...) and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and t.id_periodicidade_conteudo = ? and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular;Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Aug 29 08 16 27s653ms 1s728ms 09 26 24s265ms 933ms 10 32 51s101ms 1s596ms 11 24 42s78ms 1s753ms 13 8 12s891ms 1s611ms 14 4 3s791ms 947ms -
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '2' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data inner join quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_componente_curricular = cc.id_componente_curricular and q.dia_semana = cpd.dia_semana left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and ((t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or sda.id_horario_turma = q.id_horario_turma) where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and (q.data_inicio_vigencia is null or q.data_inicio_vigencia <= cpd.data) and (q.data_termino_vigencia is null or q.data_termino_vigencia >= cpd.data) and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in ('1', '4') or (t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or cc.flg_aponta_conteudo_curricular is false) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, bool_or(not exists ( select null from situacao_didatica_aula sda where sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and sda.id_horario_turma is null)) as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '2' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = '2' and not t.flg_conteudo_diario_conforme_quadro and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_quinzena cq on cq.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cq.periodo_calendario_inicio = '2' left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data is null and sda.id_quinzena_ano = cq.id_quinzena_ano and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and t.id_periodicidade_conteudo = '3' and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular;
Date: 2024-08-29 10:51:43 Duration: 4s976ms Bind query: yes
-
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '3' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data inner join quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_componente_curricular = cc.id_componente_curricular and q.dia_semana = cpd.dia_semana left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and ((t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or sda.id_horario_turma = q.id_horario_turma) where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and (q.data_inicio_vigencia is null or q.data_inicio_vigencia <= cpd.data) and (q.data_termino_vigencia is null or q.data_termino_vigencia >= cpd.data) and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in ('1', '4') or (t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or cc.flg_aponta_conteudo_curricular is false) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, bool_or(not exists ( select null from situacao_didatica_aula sda where sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and sda.id_horario_turma is null)) as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '3' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = '2' and not t.flg_conteudo_diario_conforme_quadro and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_quinzena cq on cq.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cq.periodo_calendario_inicio = '3' left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data is null and sda.id_quinzena_ano = cq.id_quinzena_ano and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and t.id_periodicidade_conteudo = '3' and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular;
Date: 2024-08-29 10:51:50 Duration: 4s2ms Bind query: yes
-
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '4' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data inner join quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_componente_curricular = cc.id_componente_curricular and q.dia_semana = cpd.dia_semana left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular and ((t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or sda.id_horario_turma = q.id_horario_turma) where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and (q.data_inicio_vigencia is null or q.data_inicio_vigencia <= cpd.data) and (q.data_termino_vigencia is null or q.data_termino_vigencia >= cpd.data) and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in ('1', '4') or (t.id_periodicidade_conteudo = '2' and t.flg_conteudo_diario_conforme_quadro) or cc.flg_aponta_conteudo_curricular is false) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, bool_or(not exists ( select null from situacao_didatica_aula sda where sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data = cpd.data and sda.id_horario_turma is null)) as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '4' inner join dia_semana ds on ds.dia_semana = cpd.dia_semana left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (not ds.flg_fim_de_semana or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = '2' and not t.flg_conteudo_diario_conforme_quadro and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, case when count( case when id_situacao_didatica_aula is null then 1 else null end) > 0 then true else false end as pendente from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular 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) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = '2024' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2024' inner join calendario_quinzena cq on cq.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cq.periodo_calendario_inicio = '4' left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_serie = ts.id_serie and sda.data is null and sda.id_quinzena_ano = cq.id_quinzena_ano and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('240001224', '240001225', '240001226', '240001227', '240001228', '240001229', '240001230', '240001232', '240001233', '240001234', '240001235', '240005600', '240018705') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and t.id_periodicidade_conteudo = '3' and cc.flg_aponta_conteudo_curricular group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular;
Date: 2024-08-29 10:51:59 Duration: 3s751ms Bind query: yes
7 87 5m30s 3s19ms 7s718ms 3s799ms 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 #7
Day Hour Count Duration Avg duration Aug 29 07 17 59s42ms 3s473ms 08 9 31s378ms 3s486ms 09 9 32s9ms 3s556ms 10 20 1m28s 4s413ms 11 18 1m4s 3s593ms 13 9 37s206ms 4s134ms 14 5 17s955ms 3s591ms -
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 = '240015471' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '18933' 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: 2024-08-29 13:53:10 Duration: 7s718ms 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 = '240019515' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '18998' 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: 2024-08-29 10:39:42 Duration: 6s576ms 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 = '240012520' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '19003' 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: 2024-08-29 10:57:18 Duration: 6s393ms Bind query: yes
8 85 58s206ms 501ms 1s717ms 684ms select etapa.id_ensino_etapa as id, etapa.descricao AS "descricaoEtapa", coalesce(count(distinct professores.id_servidor_cargo_base), ?)::int as total from ( values (?, ?, false), (?, ?, true), (?, ?, false), (?, ?, false)) as etapa (id_ensino_etapa, descricao, ef1) left join ( select etapa.id_ensino_etapa, etapa.id_ensino_etapa = ? and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tras.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select ? as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = ? and huf.id_assunto_hierarquia_unidade = ?) and ano.ano = ? union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = ? and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tcs.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_componente tc on tc.id_turma = turma.id_turma inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select ? as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = ? and huf.id_assunto_hierarquia_unidade = ?) and ano.ano = ? union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = ? and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, trah.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma inner join turma_regencia_atrib_hist trah on trah.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select ? as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = ? and huf.id_assunto_hierarquia_unidade = ?) and ano.ano = ? and trah.id_atrib_motivo_disp = ? union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = ? and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tch.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_componente tc on tc.id_turma = turma.id_turma inner join turma_componente_historico tch on tch.id_turma_componente = tc.id_turma_componente inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select ? as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = ? and huf.id_assunto_hierarquia_unidade = ?) and ano.ano = ? and tch.id_atrib_motivo_disp = ?) as professores on professores.id_ensino_etapa = etapa.id_ensino_etapa and professores.ef1 = etapa.ef1 where etapa.id_ensino_etapa in (...) group by etapa.id_ensino_etapa, etapa.descricao order by etapa.id_ensino_etapa, etapa.descricao;Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Aug 29 00 9 5s199ms 577ms 01 10 6s478ms 647ms 05 2 1s346ms 673ms 06 1 521ms 521ms 07 7 4s206ms 600ms 08 13 9s937ms 764ms 09 11 6s798ms 618ms 10 15 11s164ms 744ms 11 10 6s487ms 648ms 12 5 4s170ms 834ms 14 2 1s897ms 948ms -
select etapa.id_ensino_etapa as id, etapa.descricao as "descricaoEtapa", coalesce(count(distinct professores.id_servidor_cargo_base), 0)::int as total from ( values (1, 'Educação Infantil', false), (2, 'Ensino Fundamental I', true), (2, 'Ensino Fundamental II', false), (3, 'Ensino Médio', false)) as etapa (id_ensino_etapa, descricao, ef1) left join ( select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tras.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607059' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607059' and huf.id_assunto_hierarquia_unidade = '80') and ano.ano = '2024' union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tcs.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_componente tc on tc.id_turma = turma.id_turma inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607059' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607059' and huf.id_assunto_hierarquia_unidade = '80') and ano.ano = '2024' union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, trah.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma inner join turma_regencia_atrib_hist trah on trah.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607059' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607059' and huf.id_assunto_hierarquia_unidade = '80') and ano.ano = '2024' and trah.id_atrib_motivo_disp = 4 union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tch.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_componente tc on tc.id_turma = turma.id_turma inner join turma_componente_historico tch on tch.id_turma_componente = tc.id_turma_componente inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607059' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607059' and huf.id_assunto_hierarquia_unidade = '80') and ano.ano = '2024' and tch.id_atrib_motivo_disp = 4) as professores on professores.id_ensino_etapa = etapa.id_ensino_etapa and professores.ef1 = etapa.ef1 where etapa.id_ensino_etapa in (1, 2, 3) group by etapa.id_ensino_etapa, etapa.descricao order by etapa.id_ensino_etapa, etapa.descricao;
Date: 2024-08-29 10:49:29 Duration: 1s717ms Bind query: yes
-
select etapa.id_ensino_etapa as id, etapa.descricao as "descricaoEtapa", coalesce(count(distinct professores.id_servidor_cargo_base), 0)::int as total from ( values (1, 'Educação Infantil', false), (2, 'Ensino Fundamental I', true), (2, 'Ensino Fundamental II', false), (3, 'Ensino Médio', false)) as etapa (id_ensino_etapa, descricao, ef1) left join ( select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tras.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607692' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607692' and huf.id_assunto_hierarquia_unidade = '85') and ano.ano = '2024' union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tcs.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_componente tc on tc.id_turma = turma.id_turma inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607692' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607692' and huf.id_assunto_hierarquia_unidade = '85') and ano.ano = '2024' union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, trah.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma inner join turma_regencia_atrib_hist trah on trah.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607692' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607692' and huf.id_assunto_hierarquia_unidade = '85') and ano.ano = '2024' and trah.id_atrib_motivo_disp = 4 union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tch.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_componente tc on tc.id_turma = turma.id_turma inner join turma_componente_historico tch on tch.id_turma_componente = tc.id_turma_componente inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607692' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607692' and huf.id_assunto_hierarquia_unidade = '85') and ano.ano = '2024' and tch.id_atrib_motivo_disp = 4) as professores on professores.id_ensino_etapa = etapa.id_ensino_etapa and professores.ef1 = etapa.ef1 where etapa.id_ensino_etapa in (1, 2, 3) group by etapa.id_ensino_etapa, etapa.descricao order by etapa.id_ensino_etapa, etapa.descricao;
Date: 2024-08-29 08:32:45 Duration: 1s208ms Bind query: yes
-
select etapa.id_ensino_etapa as id, etapa.descricao as "descricaoEtapa", coalesce(count(distinct professores.id_servidor_cargo_base), 0)::int as total from ( values (1, 'Educação Infantil', false), (2, 'Ensino Fundamental I', true), (2, 'Ensino Fundamental II', false), (3, 'Ensino Médio', false)) as etapa (id_ensino_etapa, descricao, ef1) left join ( select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tras.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607059' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607059' and huf.id_assunto_hierarquia_unidade = '80') and ano.ano = '2024' union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tcs.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_componente tc on tc.id_turma = turma.id_turma inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607059' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607059' and huf.id_assunto_hierarquia_unidade = '80') and ano.ano = '2024' union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, trah.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma inner join turma_regencia_atrib_hist trah on trah.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607059' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607059' and huf.id_assunto_hierarquia_unidade = '80') and ano.ano = '2024' and trah.id_atrib_motivo_disp = 4 union select etapa.id_ensino_etapa, etapa.id_ensino_etapa = 2 and etapa_mec.flg_ensino_fundamental_anos_iniciais is true as ef1, tch.id_servidor_cargo_base from turma inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_componente tc on tc.id_turma = turma.id_turma inner join turma_componente_historico tch on tch.id_turma_componente = tc.id_turma_componente inner join grade_curricular gc on gc.id_grade_curricular = turma.id_grade_curricular inner join serie on serie.id_serie = gc.id_serie left join mec_ensino_etapa_serie etapa_mec on etapa_mec.id_mec_ensino_etapa_serie = serie.id_mec_ensino_etapa inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join ensino_etapa etapa on etapa.id_ensino_etapa = modalidade.id_ensino_etapa where turma.id_unidade_funcional in ( select '607059' as id_unidade_funcional union all select huf.id_unidade_funcional_filha from hierarquia_unidade_extendida huf where huf.id_unidade_funcional_mae = '607059' and huf.id_assunto_hierarquia_unidade = '80') and ano.ano = '2024' and tch.id_atrib_motivo_disp = 4) as professores on professores.id_ensino_etapa = etapa.id_ensino_etapa and professores.ef1 = etapa.ef1 where etapa.id_ensino_etapa in (1, 2, 3) group by etapa.id_ensino_etapa, etapa.descricao order by etapa.id_ensino_etapa, etapa.descricao;
Date: 2024-08-29 11:15:09 Duration: 1s179ms Bind query: yes
9 82 1m20s 678ms 3s852ms 978ms select row_to_json(r)::text as r from ( with am as ( select am.id_cidadao, am.id_aluno_matricula, am.id_unidade_funcional from aluno_matricula am where id_unidade_funcional = ? and id_aluno_matr_status = ? order by am.id_unidade_funcional, am.id_aluno_matricula limit ? offset ? ) select json_build_object(?, total, ?, (? / ?)::int + ?, ?, ?, ?, case when ? < ? then false else ? - ? < total end, ?, ? + ? < total) AS "pageInfo", case when total = ? or ? > total then ?::json else json_agg(j) end as items from ( select c.id_cidadao AS "idOrigem", c.nome AS "nomeAluno", to_char(c.nascimento_data, ?) AS "dataNascimento", case when coalesce(upper(trim(c.email)), ?) = coalesce(upper(trim(u.email)), ?) or coalesce(upper(trim(c.email)), ?) = coalesce(upper(trim(cr.email)), ?) then null else nullif (trim(c.email), ?) end as email, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, case when upper(c.sexo) = ? then ? else ? end as genero, nullif (( select coalesce(ct.telefone_ddd || ?, ?) || ct.telefone_numero from cidadao_telefone ct where ct.id_cidadao = a.id_cidadao limit ?), ?) as telefone, a.codigo as matricula, nullif (trim(dc.numero_nis), ?) as nis, aof.flg_recebe_bolsa_familia AS "bolsaFamilia", trim(ce.endereco) || coalesce(? || nullif (trim(ce.numero), ?), ?) || coalesce(? || nullif (trim(ce.complemento), ?), ?) as endereco, nullif (trim(ce.bairro), ?) as bairro, c.flg_necessidade_especial as pcd, ( select string_agg(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 "descricaoPCD", ( select json_agg(e) from ( select ut.id_unidade_funcional AS "idEscola", ut.nome AS "nomeEscola", nullif (trim(ut.email), ?) as email, ut.codigo AS "numeroINEP", trim(ut.endereco) || coalesce(? || nullif (trim(ut.numero), ?), ?) || coalesce(? || nullif (trim(ut.complemento), ?), ?) as endereco, nullif (trim(ut.bairro), ?) as bairro, formatar_cep (ut.cep) as cep, nullif (trim(ut.inscricao_estadual), ?) AS "inscricaoMunicipal" from unidade_funcional ut where ut.id_unidade_funcional in ( select t.id_unidade_funcional from aluno_matr_turma amt inner join turma t on t.id_turma = amt.id_turma where amt.id_aluno_matricula = am.id_aluno_matricula and (amt.data_saida is null or amt.data_saida >= now()))) e) as escolas, ( select json_agg(t) from ( select t.id_turma AS "idTurma", t.nome AS "nomeTurma", t.id_unidade_funcional AS "idEscola", ut.nome AS "nomeEscola", tu.descricao AS "turno", ano.ano AS "anoInicial", ano.ano AS "anoFinal" from turma t inner join turno tu on tu.id_turno = t.id_turno inner join unidade_funcional ut on ut.id_unidade_funcional = t.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where t.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = am.id_aluno_matricula and (amt.data_saida is null or amt.data_saida >= now()))) t) as turmas, case when r.id_responsavel isnull then ?::json else ( select json_agg(t) from ( select cr.nome AS "nomeResponsavel", r.id_responsavel AS "idResponsavel", formatar_cpf (dcr.numero_cpf, dcr.digito_cpf) as cpf, nullif (( select coalesce(ct.telefone_ddd || ?, ?) || ct.telefone_numero from cidadao_telefone ct where ct.id_cidadao = a.id_cidadao and ct.id_responsavel_tipo = a.id_responsavel_tipo limit ?), ?) as telefone, case when coalesce(upper(trim(cr.email)), ?) = coalesce(upper(trim(u.email)), ?) then null else nullif (trim(cr.email), ?) end as email, case when upper(cr.sexo) = ? then ? else ? end as genero) t) end as responsaveis from am inner join cidadao c on c.id_cidadao = am.id_cidadao inner join documentos_cidadao dc on dc.id_cidadao = c.id_cidadao inner join aluno a on a.id_cidadao = c.id_cidadao inner join aluno_observacoes_familia aof on aof.id_cidadao = c.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = c.id_cidadao inner join unidade_funcional u on u.id_unidade_funcional = am.id_unidade_funcional left join responsavel r on r.id_responsavel = a.id_responsavel and a.id_responsavel_tipo <> ? left join cidadao cr on cr.id_cidadao = r.id_responsavel left join documentos_cidadao dcr on dcr.id_cidadao = cr.id_cidadao order by am.id_unidade_funcional, am.id_aluno_matricula) j right join ( select count(*) from aluno_matricula am where id_unidade_funcional = ? and id_aluno_matr_status = ?) t (total) on true group by total) r;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Aug 29 10 82 1m20s 978ms -
select row_to_json(r)::text as r from ( with am as ( select am.id_cidadao, am.id_aluno_matricula, am.id_unidade_funcional from aluno_matricula am where id_unidade_funcional = '341' and id_aluno_matr_status = '1' order by am.id_unidade_funcional, am.id_aluno_matricula limit '10' offset '0' ) select json_build_object('total', total, 'currentPage', ('0' / '10')::int + 1, 'pageSize', '10', 'hasPrevious', case when '0' < '10' then false else '0' - '10' < total end, 'hasNext', '0' + '10' < total) as "pageInfo", case when total = 0 or '0' > total then '[]'::json else json_agg(j) end as items from ( select c.id_cidadao as "idOrigem", c.nome as "nomeAluno", to_char(c.nascimento_data, 'YYYY-MM-DD') as "dataNascimento", case when coalesce(upper(trim(c.email)), '') = coalesce(upper(trim(u.email)),'') or coalesce(upper(trim(c.email)), '') = coalesce(upper(trim(cr.email)),'') then null else nullif (trim(c.email), '') end as email, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, case when upper(c.sexo) = 'M' then 'Masculino' else 'Feminino' end as genero, nullif (( select coalesce(ct.telefone_ddd || ' ', '') || ct.telefone_numero from cidadao_telefone ct where ct.id_cidadao = a.id_cidadao limit 1), '') as telefone, a.codigo as matricula, nullif (trim(dc.numero_nis), '') as nis, aof.flg_recebe_bolsa_familia as "bolsaFamilia", trim(ce.endereco) || coalesce(', ' || nullif (trim(ce.numero), ''),'') || coalesce(', ' || nullif (trim(ce.complemento), ''), '') as endereco, nullif (trim(ce.bairro), '') as bairro, c.flg_necessidade_especial as pcd, ( select string_agg(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 "descricaoPCD", ( select json_agg(e) from ( select ut.id_unidade_funcional as "idEscola", ut.nome as "nomeEscola", nullif (trim(ut.email), '') as email, ut.codigo as "numeroINEP", trim(ut.endereco) || coalesce(', ' || nullif (trim(ut.numero), ''),'') || coalesce(', ' || nullif (trim(ut.complemento), ''), '') as endereco, nullif (trim(ut.bairro), '') as bairro, formatar_cep (ut.cep) as cep, nullif (trim(ut.inscricao_estadual), '') as "inscricaoMunicipal" from unidade_funcional ut where ut.id_unidade_funcional in ( select t.id_unidade_funcional from aluno_matr_turma amt inner join turma t on t.id_turma = amt.id_turma where amt.id_aluno_matricula = am.id_aluno_matricula and (amt.data_saida is null or amt.data_saida >= now()))) e) as escolas, ( select json_agg(t) from ( select t.id_turma as "idTurma", t.nome as "nomeTurma", t.id_unidade_funcional as "idEscola", ut.nome as "nomeEscola", tu.descricao as "turno", ano.ano as "anoInicial", ano.ano as "anoFinal" from turma t inner join turno tu on tu.id_turno = t.id_turno inner join unidade_funcional ut on ut.id_unidade_funcional = t.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where t.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = am.id_aluno_matricula and (amt.data_saida is null or amt.data_saida >= now()))) t) as turmas, case when r.id_responsavel isnull then '[]'::json else ( select json_agg(t) from ( select cr.nome as "nomeResponsavel", r.id_responsavel as "idResponsavel", formatar_cpf (dcr.numero_cpf, dcr.digito_cpf) as cpf, nullif (( select coalesce(ct.telefone_ddd || ' ', '') || ct.telefone_numero from cidadao_telefone ct where ct.id_cidadao = a.id_cidadao and ct.id_responsavel_tipo = a.id_responsavel_tipo limit 1), '') as telefone, case when coalesce(upper(trim(cr.email)), '') = coalesce(upper(trim(u.email)),'') then null else nullif (trim(cr.email), '') end as email, case when upper(cr.sexo) = 'M' then 'Masculino' else 'Feminino' end as genero) t) end as responsaveis from am inner join cidadao c on c.id_cidadao = am.id_cidadao inner join documentos_cidadao dc on dc.id_cidadao = c.id_cidadao inner join aluno a on a.id_cidadao = c.id_cidadao inner join aluno_observacoes_familia aof on aof.id_cidadao = c.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = c.id_cidadao inner join unidade_funcional u on u.id_unidade_funcional = am.id_unidade_funcional left join responsavel r on r.id_responsavel = a.id_responsavel and a.id_responsavel_tipo <> '4' left join cidadao cr on cr.id_cidadao = r.id_responsavel left join documentos_cidadao dcr on dcr.id_cidadao = cr.id_cidadao order by am.id_unidade_funcional, am.id_aluno_matricula) j right join ( select count(*) from aluno_matricula am where id_unidade_funcional = '341' and id_aluno_matr_status = '1') t (total) on true group by total) r;
Date: 2024-08-29 10:35:23 Duration: 3s852ms Bind query: yes
-
select row_to_json(r)::text as r from ( with am as ( select am.id_cidadao, am.id_aluno_matricula, am.id_unidade_funcional from aluno_matricula am where id_unidade_funcional = '326' and id_aluno_matr_status = '1' order by am.id_unidade_funcional, am.id_aluno_matricula limit '10' offset '0' ) select json_build_object('total', total, 'currentPage', ('0' / '10')::int + 1, 'pageSize', '10', 'hasPrevious', case when '0' < '10' then false else '0' - '10' < total end, 'hasNext', '0' + '10' < total) as "pageInfo", case when total = 0 or '0' > total then '[]'::json else json_agg(j) end as items from ( select c.id_cidadao as "idOrigem", c.nome as "nomeAluno", to_char(c.nascimento_data, 'YYYY-MM-DD') as "dataNascimento", case when coalesce(upper(trim(c.email)), '') = coalesce(upper(trim(u.email)),'') or coalesce(upper(trim(c.email)), '') = coalesce(upper(trim(cr.email)),'') then null else nullif (trim(c.email), '') end as email, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, case when upper(c.sexo) = 'M' then 'Masculino' else 'Feminino' end as genero, nullif (( select coalesce(ct.telefone_ddd || ' ', '') || ct.telefone_numero from cidadao_telefone ct where ct.id_cidadao = a.id_cidadao limit 1), '') as telefone, a.codigo as matricula, nullif (trim(dc.numero_nis), '') as nis, aof.flg_recebe_bolsa_familia as "bolsaFamilia", trim(ce.endereco) || coalesce(', ' || nullif (trim(ce.numero), ''),'') || coalesce(', ' || nullif (trim(ce.complemento), ''), '') as endereco, nullif (trim(ce.bairro), '') as bairro, c.flg_necessidade_especial as pcd, ( select string_agg(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 "descricaoPCD", ( select json_agg(e) from ( select ut.id_unidade_funcional as "idEscola", ut.nome as "nomeEscola", nullif (trim(ut.email), '') as email, ut.codigo as "numeroINEP", trim(ut.endereco) || coalesce(', ' || nullif (trim(ut.numero), ''),'') || coalesce(', ' || nullif (trim(ut.complemento), ''), '') as endereco, nullif (trim(ut.bairro), '') as bairro, formatar_cep (ut.cep) as cep, nullif (trim(ut.inscricao_estadual), '') as "inscricaoMunicipal" from unidade_funcional ut where ut.id_unidade_funcional in ( select t.id_unidade_funcional from aluno_matr_turma amt inner join turma t on t.id_turma = amt.id_turma where amt.id_aluno_matricula = am.id_aluno_matricula and (amt.data_saida is null or amt.data_saida >= now()))) e) as escolas, ( select json_agg(t) from ( select t.id_turma as "idTurma", t.nome as "nomeTurma", t.id_unidade_funcional as "idEscola", ut.nome as "nomeEscola", tu.descricao as "turno", ano.ano as "anoInicial", ano.ano as "anoFinal" from turma t inner join turno tu on tu.id_turno = t.id_turno inner join unidade_funcional ut on ut.id_unidade_funcional = t.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where t.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = am.id_aluno_matricula and (amt.data_saida is null or amt.data_saida >= now()))) t) as turmas, case when r.id_responsavel isnull then '[]'::json else ( select json_agg(t) from ( select cr.nome as "nomeResponsavel", r.id_responsavel as "idResponsavel", formatar_cpf (dcr.numero_cpf, dcr.digito_cpf) as cpf, nullif (( select coalesce(ct.telefone_ddd || ' ', '') || ct.telefone_numero from cidadao_telefone ct where ct.id_cidadao = a.id_cidadao and ct.id_responsavel_tipo = a.id_responsavel_tipo limit 1), '') as telefone, case when coalesce(upper(trim(cr.email)), '') = coalesce(upper(trim(u.email)),'') then null else nullif (trim(cr.email), '') end as email, case when upper(cr.sexo) = 'M' then 'Masculino' else 'Feminino' end as genero) t) end as responsaveis from am inner join cidadao c on c.id_cidadao = am.id_cidadao inner join documentos_cidadao dc on dc.id_cidadao = c.id_cidadao inner join aluno a on a.id_cidadao = c.id_cidadao inner join aluno_observacoes_familia aof on aof.id_cidadao = c.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = c.id_cidadao inner join unidade_funcional u on u.id_unidade_funcional = am.id_unidade_funcional left join responsavel r on r.id_responsavel = a.id_responsavel and a.id_responsavel_tipo <> '4' left join cidadao cr on cr.id_cidadao = r.id_responsavel left join documentos_cidadao dcr on dcr.id_cidadao = cr.id_cidadao order by am.id_unidade_funcional, am.id_aluno_matricula) j right join ( select count(*) from aluno_matricula am where id_unidade_funcional = '326' and id_aluno_matr_status = '1') t (total) on true group by total) r;
Date: 2024-08-29 10:38:52 Duration: 2s241ms Bind query: yes
-
select row_to_json(r)::text as r from ( with am as ( select am.id_cidadao, am.id_aluno_matricula, am.id_unidade_funcional from aluno_matricula am where id_unidade_funcional = '327' and id_aluno_matr_status = '1' order by am.id_unidade_funcional, am.id_aluno_matricula limit '10' offset '0' ) select json_build_object('total', total, 'currentPage', ('0' / '10')::int + 1, 'pageSize', '10', 'hasPrevious', case when '0' < '10' then false else '0' - '10' < total end, 'hasNext', '0' + '10' < total) as "pageInfo", case when total = 0 or '0' > total then '[]'::json else json_agg(j) end as items from ( select c.id_cidadao as "idOrigem", c.nome as "nomeAluno", to_char(c.nascimento_data, 'YYYY-MM-DD') as "dataNascimento", case when coalesce(upper(trim(c.email)), '') = coalesce(upper(trim(u.email)),'') or coalesce(upper(trim(c.email)), '') = coalesce(upper(trim(cr.email)),'') then null else nullif (trim(c.email), '') end as email, formatar_cpf (dc.numero_cpf, dc.digito_cpf) as cpf, case when upper(c.sexo) = 'M' then 'Masculino' else 'Feminino' end as genero, nullif (( select coalesce(ct.telefone_ddd || ' ', '') || ct.telefone_numero from cidadao_telefone ct where ct.id_cidadao = a.id_cidadao limit 1), '') as telefone, a.codigo as matricula, nullif (trim(dc.numero_nis), '') as nis, aof.flg_recebe_bolsa_familia as "bolsaFamilia", trim(ce.endereco) || coalesce(', ' || nullif (trim(ce.numero), ''),'') || coalesce(', ' || nullif (trim(ce.complemento), ''), '') as endereco, nullif (trim(ce.bairro), '') as bairro, c.flg_necessidade_especial as pcd, ( select string_agg(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 "descricaoPCD", ( select json_agg(e) from ( select ut.id_unidade_funcional as "idEscola", ut.nome as "nomeEscola", nullif (trim(ut.email), '') as email, ut.codigo as "numeroINEP", trim(ut.endereco) || coalesce(', ' || nullif (trim(ut.numero), ''),'') || coalesce(', ' || nullif (trim(ut.complemento), ''), '') as endereco, nullif (trim(ut.bairro), '') as bairro, formatar_cep (ut.cep) as cep, nullif (trim(ut.inscricao_estadual), '') as "inscricaoMunicipal" from unidade_funcional ut where ut.id_unidade_funcional in ( select t.id_unidade_funcional from aluno_matr_turma amt inner join turma t on t.id_turma = amt.id_turma where amt.id_aluno_matricula = am.id_aluno_matricula and (amt.data_saida is null or amt.data_saida >= now()))) e) as escolas, ( select json_agg(t) from ( select t.id_turma as "idTurma", t.nome as "nomeTurma", t.id_unidade_funcional as "idEscola", ut.nome as "nomeEscola", tu.descricao as "turno", ano.ano as "anoInicial", ano.ano as "anoFinal" from turma t inner join turno tu on tu.id_turno = t.id_turno inner join unidade_funcional ut on ut.id_unidade_funcional = t.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre where t.id_turma in ( select amt.id_turma from aluno_matr_turma amt where amt.id_aluno_matricula = am.id_aluno_matricula and (amt.data_saida is null or amt.data_saida >= now()))) t) as turmas, case when r.id_responsavel isnull then '[]'::json else ( select json_agg(t) from ( select cr.nome as "nomeResponsavel", r.id_responsavel as "idResponsavel", formatar_cpf (dcr.numero_cpf, dcr.digito_cpf) as cpf, nullif (( select coalesce(ct.telefone_ddd || ' ', '') || ct.telefone_numero from cidadao_telefone ct where ct.id_cidadao = a.id_cidadao and ct.id_responsavel_tipo = a.id_responsavel_tipo limit 1), '') as telefone, case when coalesce(upper(trim(cr.email)), '') = coalesce(upper(trim(u.email)),'') then null else nullif (trim(cr.email), '') end as email, case when upper(cr.sexo) = 'M' then 'Masculino' else 'Feminino' end as genero) t) end as responsaveis from am inner join cidadao c on c.id_cidadao = am.id_cidadao inner join documentos_cidadao dc on dc.id_cidadao = c.id_cidadao inner join aluno a on a.id_cidadao = c.id_cidadao inner join aluno_observacoes_familia aof on aof.id_cidadao = c.id_cidadao inner join cidadao_endereco ce on ce.id_cidadao = c.id_cidadao inner join unidade_funcional u on u.id_unidade_funcional = am.id_unidade_funcional left join responsavel r on r.id_responsavel = a.id_responsavel and a.id_responsavel_tipo <> '4' left join cidadao cr on cr.id_cidadao = r.id_responsavel left join documentos_cidadao dcr on dcr.id_cidadao = cr.id_cidadao order by am.id_unidade_funcional, am.id_aluno_matricula) j right join ( select count(*) from aluno_matricula am where id_unidade_funcional = '327' and id_aluno_matr_status = '1') t (total) on true group by total) r;
Date: 2024-08-29 10:39:02 Duration: 1s377ms Bind query: yes
10 77 47s792ms 500ms 1s411ms 620ms select cmc.id_conteudo_matriz_conteudo, pai.id_conteudo_matriz_conteudo as id_conteudo_matriz_conteudo_pai, cmc.id_conteudo_curricular, cmc.id_nota_periodo_aluno, c.id_tipo_conteudo_curricular, tipo.descricao as tipo, ec.flg_apontamento, cmc.ordem, c.descricao, d.descricao as disciplina, coc.id_conteudo_organizado_aula, coc.id_conteudo_organizado_aula notnull as flg_ministrado, poc.id_planejamento_bimestral_organizado, poc.id_planejamento_bimestral_organizado notnull as flg_planejado, pac.id_plano_aula, pac.id_plano_aula notnull as flg_plano_aula from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join turma_serie ts on ts.id_grade_curricular = ogc.id_grade_curricular inner join turma t on t.id_turma = ts.id_turma inner join matriz_conteudo_curricular mc on mc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mc.id_matriz_conteudo_curricular and cmc.flg_ativo inner join conteudo_curricular c on c.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = c.id_tipo_conteudo_curricular and ec.id_organizador_curricular = o.id_organizador_curricular and not ec.flg_somente_exibicao inner join tipo_conteudo_curricular tipo on tipo.id_tipo_conteudo_curricular = ec.id_tipo_conteudo_curricular inner join ano_semestre ano_turma on ano_turma.id_ano_semestre = t.id_ano_semestre inner join ano_semestre org_inicio on org_inicio.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre org_fim on org_fim.id_ano_semestre = ogc.id_ano_semestre_termino left join componente_curricular cc on cc.id_componente_curricular = ogc.id_componente_curricular left join disciplina d on d.id_disciplina = cc.id_disciplina left join conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join planejamento_organizado_conteudo poc on poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and poc.id_planejamento_bimestral_organizado = ? left join conteudo_organizado_aula_conteudo coc on coc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and coc.id_conteudo_organizado_aula = ? left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula = ? where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = ? and ts.id_serie = ? and cc.id_disciplina = ? order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Aug 29 00 1 1s411ms 1s411ms 07 2 1s110ms 555ms 08 8 5s181ms 647ms 09 4 2s153ms 538ms 10 18 11s865ms 659ms 11 10 5s640ms 564ms 12 17 9s665ms 568ms 13 10 5s490ms 549ms 14 7 5s273ms 753ms -
select cmc.id_conteudo_matriz_conteudo, pai.id_conteudo_matriz_conteudo as id_conteudo_matriz_conteudo_pai, cmc.id_conteudo_curricular, cmc.id_nota_periodo_aluno, c.id_tipo_conteudo_curricular, tipo.descricao as tipo, ec.flg_apontamento, cmc.ordem, c.descricao, d.descricao as disciplina, coc.id_conteudo_organizado_aula, coc.id_conteudo_organizado_aula notnull as flg_ministrado, poc.id_planejamento_bimestral_organizado, poc.id_planejamento_bimestral_organizado notnull as flg_planejado, pac.id_plano_aula, pac.id_plano_aula notnull as flg_plano_aula from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join turma_serie ts on ts.id_grade_curricular = ogc.id_grade_curricular inner join turma t on t.id_turma = ts.id_turma inner join matriz_conteudo_curricular mc on mc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mc.id_matriz_conteudo_curricular and cmc.flg_ativo inner join conteudo_curricular c on c.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = c.id_tipo_conteudo_curricular and ec.id_organizador_curricular = o.id_organizador_curricular and not ec.flg_somente_exibicao inner join tipo_conteudo_curricular tipo on tipo.id_tipo_conteudo_curricular = ec.id_tipo_conteudo_curricular inner join ano_semestre ano_turma on ano_turma.id_ano_semestre = t.id_ano_semestre inner join ano_semestre org_inicio on org_inicio.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre org_fim on org_fim.id_ano_semestre = ogc.id_ano_semestre_termino left join componente_curricular cc on cc.id_componente_curricular = ogc.id_componente_curricular left join disciplina d on d.id_disciplina = cc.id_disciplina left join conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join planejamento_organizado_conteudo poc on poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and poc.id_planejamento_bimestral_organizado = '0' left join conteudo_organizado_aula_conteudo coc on coc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and coc.id_conteudo_organizado_aula = '0' left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula = '239216' where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '240016976' and ts.id_serie = '2369' and cc.id_disciplina = '2325' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2024-08-29 00:42:41 Duration: 1s411ms Bind query: yes
-
select cmc.id_conteudo_matriz_conteudo, pai.id_conteudo_matriz_conteudo as id_conteudo_matriz_conteudo_pai, cmc.id_conteudo_curricular, cmc.id_nota_periodo_aluno, c.id_tipo_conteudo_curricular, tipo.descricao as tipo, ec.flg_apontamento, cmc.ordem, c.descricao, d.descricao as disciplina, coc.id_conteudo_organizado_aula, coc.id_conteudo_organizado_aula notnull as flg_ministrado, poc.id_planejamento_bimestral_organizado, poc.id_planejamento_bimestral_organizado notnull as flg_planejado, pac.id_plano_aula, pac.id_plano_aula notnull as flg_plano_aula from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join turma_serie ts on ts.id_grade_curricular = ogc.id_grade_curricular inner join turma t on t.id_turma = ts.id_turma inner join matriz_conteudo_curricular mc on mc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mc.id_matriz_conteudo_curricular and cmc.flg_ativo inner join conteudo_curricular c on c.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = c.id_tipo_conteudo_curricular and ec.id_organizador_curricular = o.id_organizador_curricular and not ec.flg_somente_exibicao inner join tipo_conteudo_curricular tipo on tipo.id_tipo_conteudo_curricular = ec.id_tipo_conteudo_curricular inner join ano_semestre ano_turma on ano_turma.id_ano_semestre = t.id_ano_semestre inner join ano_semestre org_inicio on org_inicio.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre org_fim on org_fim.id_ano_semestre = ogc.id_ano_semestre_termino left join componente_curricular cc on cc.id_componente_curricular = ogc.id_componente_curricular left join disciplina d on d.id_disciplina = cc.id_disciplina left join conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join planejamento_organizado_conteudo poc on poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and poc.id_planejamento_bimestral_organizado = '0' left join conteudo_organizado_aula_conteudo coc on coc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and coc.id_conteudo_organizado_aula = '14049801' left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula = '0' where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '240005539' and ts.id_serie = '1764' and cc.id_disciplina = '1420' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2024-08-29 10:38:42 Duration: 1s119ms Bind query: yes
-
select cmc.id_conteudo_matriz_conteudo, pai.id_conteudo_matriz_conteudo as id_conteudo_matriz_conteudo_pai, cmc.id_conteudo_curricular, cmc.id_nota_periodo_aluno, c.id_tipo_conteudo_curricular, tipo.descricao as tipo, ec.flg_apontamento, cmc.ordem, c.descricao, d.descricao as disciplina, coc.id_conteudo_organizado_aula, coc.id_conteudo_organizado_aula notnull as flg_ministrado, poc.id_planejamento_bimestral_organizado, poc.id_planejamento_bimestral_organizado notnull as flg_planejado, pac.id_plano_aula, pac.id_plano_aula notnull as flg_plano_aula from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join turma_serie ts on ts.id_grade_curricular = ogc.id_grade_curricular inner join turma t on t.id_turma = ts.id_turma inner join matriz_conteudo_curricular mc on mc.id_organizacao_grade_curricular = ogc.id_organizacao_grade_curricular and mc.flg_ativo inner join conteudo_matriz_conteudo cmc on cmc.id_matriz_conteudo_curricular = mc.id_matriz_conteudo_curricular and cmc.flg_ativo inner join conteudo_curricular c on c.id_conteudo_curricular = cmc.id_conteudo_curricular inner join estrutura_curricular ec on ec.id_tipo_conteudo_curricular = c.id_tipo_conteudo_curricular and ec.id_organizador_curricular = o.id_organizador_curricular and not ec.flg_somente_exibicao inner join tipo_conteudo_curricular tipo on tipo.id_tipo_conteudo_curricular = ec.id_tipo_conteudo_curricular inner join ano_semestre ano_turma on ano_turma.id_ano_semestre = t.id_ano_semestre inner join ano_semestre org_inicio on org_inicio.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre org_fim on org_fim.id_ano_semestre = ogc.id_ano_semestre_termino left join componente_curricular cc on cc.id_componente_curricular = ogc.id_componente_curricular left join disciplina d on d.id_disciplina = cc.id_disciplina left join conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join planejamento_organizado_conteudo poc on poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and poc.id_planejamento_bimestral_organizado = '380213' left join conteudo_organizado_aula_conteudo coc on coc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and coc.id_conteudo_organizado_aula = '0' left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula = '0' where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '240008110' and ts.id_serie = '2147' and cc.id_disciplina = '2121' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2024-08-29 10:38:42 Duration: 1s18ms Bind query: yes
11 61 1m21s 527ms 3s689ms 1s331ms 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 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)))));Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Aug 29 08 8 18s169ms 2s271ms 09 29 26s997ms 930ms 10 17 23s604ms 1s388ms 11 4 9s468ms 2s367ms 14 3 2s952ms 984ms -
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 = '2024' 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 ('240009456', '240009458', '240009459', '240009451', '240009460', '240009441', '240009442', '240009443', '240009444', '240009452') and npa.id_nota_periodo_aluno = bimestre_para_periodo ('2', 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 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 <= '2') and (mdp.periodos is null or not mdp.periodos @> ARRAY['2']) and emap.id_nota_periodo_aluno = '2' 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 = '2' 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)))));
Date: 2024-08-29 10:26:33 Duration: 3s689ms 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 = '2024' 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 ('240009456', '240009458', '240009459', '240009451', '240009460', '240009441', '240009442', '240009443', '240009444', '240009452') and npa.id_nota_periodo_aluno = bimestre_para_periodo ('3', 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 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 <= '3') and (mdp.periodos is null or not mdp.periodos @> ARRAY['3']) and emap.id_nota_periodo_aluno = '3' 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 = '3' 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)))));
Date: 2024-08-29 08:46:23 Duration: 2s763ms 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 = '2024' 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 ('240009456', '240009458', '240009459', '240009451', '240009460', '240009441', '240009442', '240009443', '240009444', '240009452') 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 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)))));
Date: 2024-08-29 10:26:23 Duration: 2s642ms Bind query: yes
12 58 3m44s 553ms 6s743ms 3s876ms select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (?, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ? as percentual_fj, greatest (?, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ? as percentual_fnj, (greatest (?, ? - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ?) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (...) and turma.id_turma_status in (...) and turma.id_unidade_funcional = ? and ano.id_ano_semestre = ? and modalidade.id_ensino_etapa = ? and serie.id_serie = ? and tp.id_nota_periodo_aluno in (...) group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (?, ? - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ?) between ? and ? union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (?, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ? as percentual_fj, greatest (?, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ? as percentual_fnj, greatest (?, (? - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ?) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (...) and turma.id_turma_status in (...) and turma.id_unidade_funcional = ? and ano.id_ano_semestre = ? and modalidade.id_ensino_etapa = ? and serie.id_serie = ? and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in (...) group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > ? and greatest (?, (? - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ?) between ? and ? order by nome_cidadao, codigo_aluno limit ? offset ?;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Aug 29 07 20 1m29s 4s484ms 08 13 1m7s 5s222ms 09 20 47s583ms 2s379ms 11 5 19s686ms 3s937ms -
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 60;
Date: 2024-08-29 08:28:50 Duration: 6s743ms Bind query: yes
-
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 230;
Date: 2024-08-29 08:30:13 Duration: 6s407ms Bind query: yes
-
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 150;
Date: 2024-08-29 08:29:27 Duration: 6s384ms Bind query: yes
13 52 1m54s 1s165ms 10s466ms 2s210ms select coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, falta.id_nota_periodo_aluno, sum(falta.qtd_faltas)::int as falta from falta_aluno_disciplina falta inner join turma_disciplina td on td.id_disciplina = falta.id_disciplina inner join componente_curricular cc on cc.id_grade_curricular = td.id_grade_curricular and cc.id_disciplina = falta.id_disciplina where falta.id_aluno_matricula = ? and td.id_turma = ? and td.id_grade_curricular = ? group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), falta.id_nota_periodo_aluno;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Aug 29 00 1 5s949ms 5s949ms 04 2 10s285ms 5s142ms 05 1 1s267ms 1s267ms 06 3 3s621ms 1s207ms 07 10 14s542ms 1s454ms 08 4 15s268ms 3s817ms 09 11 22s49ms 2s4ms 10 5 10s483ms 2s96ms 11 3 6s200ms 2s66ms 12 7 12s611ms 1s801ms 13 1 5s563ms 5s563ms 14 4 7s83ms 1s770ms -
select coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, falta.id_nota_periodo_aluno, sum(falta.qtd_faltas)::int as falta from falta_aluno_disciplina falta inner join turma_disciplina td on td.id_disciplina = falta.id_disciplina inner join componente_curricular cc on cc.id_grade_curricular = td.id_grade_curricular and cc.id_disciplina = falta.id_disciplina where falta.id_aluno_matricula = '3322629' and td.id_turma = '240018310' and td.id_grade_curricular = '5292' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), falta.id_nota_periodo_aluno;
Date: 2024-08-29 08:28:53 Duration: 10s466ms Bind query: yes
-
select coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, falta.id_nota_periodo_aluno, sum(falta.qtd_faltas)::int as falta from falta_aluno_disciplina falta inner join turma_disciplina td on td.id_disciplina = falta.id_disciplina inner join componente_curricular cc on cc.id_grade_curricular = td.id_grade_curricular and cc.id_disciplina = falta.id_disciplina where falta.id_aluno_matricula = '3323090' and td.id_turma = '240019409' and td.id_grade_curricular = '5290' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), falta.id_nota_periodo_aluno;
Date: 2024-08-29 04:29:30 Duration: 9s96ms Bind query: yes
-
select coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, falta.id_nota_periodo_aluno, sum(falta.qtd_faltas)::int as falta from falta_aluno_disciplina falta inner join turma_disciplina td on td.id_disciplina = falta.id_disciplina inner join componente_curricular cc on cc.id_grade_curricular = td.id_grade_curricular and cc.id_disciplina = falta.id_disciplina where falta.id_aluno_matricula = '3326841' and td.id_turma = '240018969' and td.id_grade_curricular = '5291' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), falta.id_nota_periodo_aluno;
Date: 2024-08-29 00:36:54 Duration: 5s949ms Bind query: yes
14 51 31s171ms 500ms 1s216ms 611ms select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, pb.flg_aprovacao_professor is true as flg_aprovacao_professor, pb.flg_aprovacao_diretor is true as flg_aprovacao_diretor, pb.flg_aprovacao_secretario is true as flg_aprovacao_secretario, oc.id_organizador_curricular, oc.flg_componente_curricular as organizador_por_componente_curricular from turma t inner join turma_serie ts using (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 a on a.id_ano_semestre = t.id_ano_semestre inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = ts.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) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular left join componente_curricular cc on cc.id_componente_curricular = ogc.id_componente_curricular and cc.flg_planejamento_bimestral is true left join disciplina d on d.id_disciplina = cc.id_disciplina left join planejamento_bimestral_organizado pb on t.id_turma = pb.id_turma and (pb.id_disciplina is null or cc.id_disciplina = pb.id_disciplina) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo (?, curso.serie_duracao = ?, curso.id_periodicidade_apontamento = ?) where t.id_turma in (...) and (oc.flg_componente_curricular is false or cc.id_componente_curricular notnull);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Aug 29 08 1 1s152ms 1s152ms 09 18 10s970ms 609ms 10 14 8s649ms 617ms 11 14 8s297ms 592ms 12 4 2s101ms 525ms -
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, pb.flg_aprovacao_professor is true as flg_aprovacao_professor, pb.flg_aprovacao_diretor is true as flg_aprovacao_diretor, pb.flg_aprovacao_secretario is true as flg_aprovacao_secretario, oc.id_organizador_curricular, oc.flg_componente_curricular as organizador_por_componente_curricular from turma t inner join turma_serie ts using (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 a on a.id_ano_semestre = t.id_ano_semestre inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = ts.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) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular left join componente_curricular cc on cc.id_componente_curricular = ogc.id_componente_curricular and cc.flg_planejamento_bimestral is true left join disciplina d on d.id_disciplina = cc.id_disciplina left join planejamento_bimestral_organizado pb on t.id_turma = pb.id_turma and (pb.id_disciplina is null or cc.id_disciplina = pb.id_disciplina) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('1', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('240007117', '240007122') and (oc.flg_componente_curricular is false or cc.id_componente_curricular notnull);
Date: 2024-08-29 09:03:17 Duration: 1s216ms Bind query: yes
-
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, pb.flg_aprovacao_professor is true as flg_aprovacao_professor, pb.flg_aprovacao_diretor is true as flg_aprovacao_diretor, pb.flg_aprovacao_secretario is true as flg_aprovacao_secretario, oc.id_organizador_curricular, oc.flg_componente_curricular as organizador_por_componente_curricular from turma t inner join turma_serie ts using (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 a on a.id_ano_semestre = t.id_ano_semestre inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = ts.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) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular left join componente_curricular cc on cc.id_componente_curricular = ogc.id_componente_curricular and cc.flg_planejamento_bimestral is true left join disciplina d on d.id_disciplina = cc.id_disciplina left join planejamento_bimestral_organizado pb on t.id_turma = pb.id_turma and (pb.id_disciplina is null or cc.id_disciplina = pb.id_disciplina) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('1', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('240016665', '240016948') and (oc.flg_componente_curricular is false or cc.id_componente_curricular notnull);
Date: 2024-08-29 08:16:03 Duration: 1s152ms Bind query: yes
-
select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, pb.flg_aprovacao_professor is true as flg_aprovacao_professor, pb.flg_aprovacao_diretor is true as flg_aprovacao_diretor, pb.flg_aprovacao_secretario is true as flg_aprovacao_secretario, oc.id_organizador_curricular, oc.flg_componente_curricular as organizador_por_componente_curricular from turma t inner join turma_serie ts using (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 a on a.id_ano_semestre = t.id_ano_semestre inner join organizacao_grade_curricular ogc on ogc.id_grade_curricular = ts.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) inner join organizador_curricular oc on oc.id_organizador_curricular = ogc.id_organizador_curricular left join componente_curricular cc on cc.id_componente_curricular = ogc.id_componente_curricular and cc.flg_planejamento_bimestral is true left join disciplina d on d.id_disciplina = cc.id_disciplina left join planejamento_bimestral_organizado pb on t.id_turma = pb.id_turma and (pb.id_disciplina is null or cc.id_disciplina = pb.id_disciplina) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('1', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('240017458', '240017459') and (oc.flg_componente_curricular is false or cc.id_componente_curricular notnull);
Date: 2024-08-29 10:21:35 Duration: 786ms Bind query: yes
15 49 1m34s 614ms 8s706ms 1s927ms 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 #15
Day Hour Count Duration Avg duration Aug 29 07 7 12s118ms 1s731ms 08 5 8s409ms 1s681ms 09 22 38s236ms 1s738ms 10 4 14s438ms 3s609ms 11 2 3s130ms 1s565ms 12 3 1s891ms 630ms 13 4 12s266ms 3s66ms 14 2 3s972ms 1s986ms -
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('Yasmym&Evelyn&Silva&Botelho') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2024-08-29 10:48:55 Duration: 8s706ms 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('enzo&gabriel&cascalho&moreira&simão') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2024-08-29 13:59:44 Duration: 5s208ms 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('joao&marcelo&cardoso') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2024-08-29 13:33:19 Duration: 4s551ms Bind query: yes
16 40 35s501ms 506ms 1s756ms 887ms select max(data) from movel.sincronizacao where id_sincronizacao <> ? and id_instituicao = ? and id_usuario = ? and id_dispositivo = ? and flg_expedicao = true;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Aug 29 06 1 1s730ms 1s730ms 07 10 9s736ms 973ms 08 8 6s318ms 789ms 09 4 3s560ms 890ms 10 7 5s464ms 780ms 11 6 4s894ms 815ms 12 1 686ms 686ms 13 3 3s110ms 1s36ms -
select max(data) from movel.sincronizacao where id_sincronizacao <> '13183308' and id_instituicao = '90' and id_usuario = '47395' and id_dispositivo = '40bded0a-a0b5-4b3d-af38-c2407916a941' and flg_expedicao = true;
Date: 2024-08-29 07:18:45 Duration: 1s756ms Bind query: yes
-
select max(data) from movel.sincronizacao where id_sincronizacao <> '13182924' and id_instituicao = '90' and id_usuario = '46987' and id_dispositivo = '81a1e0e6-3e7c-4992-b17b-4d8ca2f4484f' and flg_expedicao = true;
Date: 2024-08-29 06:40:56 Duration: 1s730ms Bind query: yes
-
select max(data) from movel.sincronizacao where id_sincronizacao <> '13188666' and id_instituicao = '90' and id_usuario = '47395' and id_dispositivo = 'b905b428-10a1-49b2-bd26-a8e4e7829125' and flg_expedicao = true;
Date: 2024-08-29 08:54:15 Duration: 1s584ms Bind query: yes
17 34 1m3s 500ms 6s20ms 1s854ms select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, (faltas_mes_ate_atual - faltas_mes)::int as faltas_anteriores, faltas_mes::int as faltas_mes, faltas_mes_ate_atual::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_mes, faltas_anteriores + (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual from ( select ts.id_turma, a.id_aluno_matricula, a.chamada, cc.id_disciplina, amdd.id_motivo_dispensa_disciplina notnull or mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, coalesce(( select count(to_char(f.data, ? || f.id_horario_turma)) from falta_aluno_disciplina_diario f 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.id_turma = ts.id_turma and f.id_disciplina = cc.id_disciplina and f.id_aluno_matricula = a.id_aluno_matricula 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 rfdd.flg_concluido is true), ?)::int as faltas_mes, coalesce(( select sum(coalesce(falta_justificada, ?) + coalesce(falta_nao_justificada, ?)) from falta_anterior_aluno_disciplina fa where fa.id_aluno_matricula = a.id_aluno_matricula and fa.id_disciplina = cc.id_disciplina), ?)::int as faltas_anteriores from turma_serie ts inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join aluno_turma_diario_impresso a on a.id_turma = ts.id_turma 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_disciplina amdd on amdd.id_aluno_matricula = a.id_aluno_matricula and amdd.id_turma = ts.id_turma and amdd.id_disciplina = cc.id_disciplina and (m.id_nota_periodo_aluno = any (amdd.periodos) or amdd.flg_dispensado_todos_periodos) 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) where ts.id_turma = ? and ts.id_serie = ? and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Aug 29 07 1 2s665ms 2s665ms 08 4 3s95ms 773ms 09 5 5s964ms 1s192ms 10 9 8s68ms 896ms 11 13 35s534ms 2s733ms 12 1 3s759ms 3s759ms 13 1 3s957ms 3s957ms -
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, (faltas_mes_ate_atual - faltas_mes)::int as faltas_anteriores, --as faltas do mês do diário faltas_mes::int as faltas_mes, -- total: total mês atual faltas_mes_ate_atual::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_mes, faltas_anteriores + (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual from ( select ts.id_turma, a.id_aluno_matricula, a.chamada, cc.id_disciplina, amdd.id_motivo_dispensa_disciplina notnull or mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, -- faltas diárias do mês nessa turma coalesce(( select count(to_char(f.data, 'YYYY-MM-DD' || f.id_horario_turma)) from falta_aluno_disciplina_diario f 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.id_turma = ts.id_turma and f.id_disciplina = cc.id_disciplina and f.id_aluno_matricula = a.id_aluno_matricula 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 rfdd.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_disciplina fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula and fa.id_disciplina = cc.id_disciplina), 0)::int as faltas_anteriores from turma_serie ts inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join aluno_turma_diario_impresso a on a.id_turma = ts.id_turma -- 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 = '240016967' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '20385' 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 componente left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = a.id_aluno_matricula and amdd.id_turma = ts.id_turma and amdd.id_disciplina = cc.id_disciplina and (m.id_nota_periodo_aluno = any (amdd.periodos) or amdd.flg_dispensado_todos_periodos) -- 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) where ts.id_turma = '240016967' and ts.id_serie = '2363' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2024-08-29 11:18:58 Duration: 6s20ms Bind query: yes
-
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, (faltas_mes_ate_atual - faltas_mes)::int as faltas_anteriores, --as faltas do mês do diário faltas_mes::int as faltas_mes, -- total: total mês atual faltas_mes_ate_atual::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_mes, faltas_anteriores + (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual from ( select ts.id_turma, a.id_aluno_matricula, a.chamada, cc.id_disciplina, amdd.id_motivo_dispensa_disciplina notnull or mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, -- faltas diárias do mês nessa turma coalesce(( select count(to_char(f.data, 'YYYY-MM-DD' || f.id_horario_turma)) from falta_aluno_disciplina_diario f 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.id_turma = ts.id_turma and f.id_disciplina = cc.id_disciplina and f.id_aluno_matricula = a.id_aluno_matricula 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 rfdd.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_disciplina fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula and fa.id_disciplina = cc.id_disciplina), 0)::int as faltas_anteriores from turma_serie ts inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join aluno_turma_diario_impresso a on a.id_turma = ts.id_turma -- 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 = '240016967' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '20385' 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 componente left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = a.id_aluno_matricula and amdd.id_turma = ts.id_turma and amdd.id_disciplina = cc.id_disciplina and (m.id_nota_periodo_aluno = any (amdd.periodos) or amdd.flg_dispensado_todos_periodos) -- 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) where ts.id_turma = '240016967' and ts.id_serie = '2363' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2024-08-29 11:19:20 Duration: 4s718ms Bind query: yes
-
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, (faltas_mes_ate_atual - faltas_mes)::int as faltas_anteriores, --as faltas do mês do diário faltas_mes::int as faltas_mes, -- total: total mês atual faltas_mes_ate_atual::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_mes, faltas_anteriores + (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual from ( select ts.id_turma, a.id_aluno_matricula, a.chamada, cc.id_disciplina, amdd.id_motivo_dispensa_disciplina notnull or mdp.id_motivo_dispensa_periodo notnull as flg_dispensado, m.id_nota_periodo_aluno, m.ano, m.id_mes, -- faltas diárias do mês nessa turma coalesce(( select count(to_char(f.data, 'YYYY-MM-DD' || f.id_horario_turma)) from falta_aluno_disciplina_diario f 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.id_turma = ts.id_turma and f.id_disciplina = cc.id_disciplina and f.id_aluno_matricula = a.id_aluno_matricula 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 rfdd.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_disciplina fa -- não faz join com turma de propósito por causa de remanejamento! where fa.id_aluno_matricula = a.id_aluno_matricula and fa.id_disciplina = cc.id_disciplina), 0)::int as faltas_anteriores from turma_serie ts inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join aluno_turma_diario_impresso a on a.id_turma = ts.id_turma -- 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 = '240016967' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '20385' 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 componente left join aluno_matr_dispensa_disciplina amdd on amdd.id_aluno_matricula = a.id_aluno_matricula and amdd.id_turma = ts.id_turma and amdd.id_disciplina = cc.id_disciplina and (m.id_nota_periodo_aluno = any (amdd.periodos) or amdd.flg_dispensado_todos_periodos) -- 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) where ts.id_turma = '240016967' and ts.id_serie = '2363' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2024-08-29 11:18:22 Duration: 4s202ms Bind query: yes
18 32 40s611ms 520ms 5s677ms 1s269ms 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 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 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 cne where cne.id_cidadao = am.id_cidadao and cne.id_necessidade_especial in ( select unnest(a.necessidade_especial)))) 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) 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 #18
Day Hour Count Duration Avg duration Aug 29 08 2 1s233ms 616ms 09 11 8s942ms 812ms 10 12 20s746ms 1s728ms 11 2 6s453ms 3s226ms 12 2 1s260ms 630ms 13 1 525ms 525ms 14 2 1s450ms 725ms -
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 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 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 cne where cne.id_cidadao = am.id_cidadao and cne.id_necessidade_especial in ( select unnest(a.necessidade_especial)))) 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 ('240006856', '240006854', '240006848', '240006855', '240006863', '240006850', '240006860', '240006857', '240006844', '240006851', '240006847', '240007169', '240019528', '240006864', '240006849', '240006845', '240006858', '240006862', '240006861', '240006853') 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) 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: 2024-08-29 11:57:58 Duration: 5s677ms 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 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 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 cne where cne.id_cidadao = am.id_cidadao and cne.id_necessidade_especial in ( select unnest(a.necessidade_especial)))) 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 ('240001597', '240001599', '240001598', '240001600', '240001601') 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) 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: 2024-08-29 10:21:34 Duration: 5s220ms 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 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 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 cne where cne.id_cidadao = am.id_cidadao and cne.id_necessidade_especial in ( select unnest(a.necessidade_especial)))) 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 ('240000355', '240000651', '240000354', '240000361', '240000722', '240000358', '240000362', '240000359', '240000365', '240000356', '240000360') 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) 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: 2024-08-29 10:46:22 Duration: 2s575ms Bind query: yes
19 30 46s504ms 501ms 3s856ms 1s550ms select 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 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 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 cne where cne.id_cidadao = am.id_cidadao and cne.id_necessidade_especial in ( select unnest(a.necessidade_especial)))) 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) group by 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 nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Aug 29 08 3 3s952ms 1s317ms 09 5 3s942ms 788ms 10 14 28s619ms 2s44ms 11 1 523ms 523ms 12 1 1s877ms 1s877ms 13 5 6s890ms 1s378ms 14 1 698ms 698ms -
select 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 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 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 cne where cne.id_cidadao = am.id_cidadao and cne.id_necessidade_especial in ( select unnest(a.necessidade_especial)))) 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 ('240005862', '240005865', '240005870', '240005860', '240005861', '240005866', '240005864', '240005869', '240019467', '240005867', '240005863', '240006151', '240005879') 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) group by 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 nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2024-08-29 13:40:26 Duration: 3s856ms Bind query: yes
-
select 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 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 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 cne where cne.id_cidadao = am.id_cidadao and cne.id_necessidade_especial in ( select unnest(a.necessidade_especial)))) 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 ('240000627', '240000626', '240000616', '240000624', '240000618', '240000625', '240000629', '240000631', '240000753', '240000754', '240000755', '240000620', '240000617', '240000756', '240000633', '240000635', '240000641', '240000632', '240000639', '240000638', '240000636', '240000634', '240000637', '240000757') 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) group by 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 nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2024-08-29 10:21:15 Duration: 3s59ms Bind query: yes
-
select 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 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 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 cne where cne.id_cidadao = am.id_cidadao and cne.id_necessidade_especial in ( select unnest(a.necessidade_especial)))) 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 ('240000627', '240000626', '240000616', '240000624', '240000618', '240000625', '240000629', '240000631', '240000753', '240000754', '240000755', '240000620', '240000617', '240000756', '240000633', '240000635', '240000641', '240000632', '240000639', '240000638', '240000636', '240000634', '240000637', '240000757') 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) group by 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 nome_turma, id_turma, sigla_curso, sigla_serie, id_serie, sigla_turno, area_conhecimento, ordem_apontamento;
Date: 2024-08-29 10:12:07 Duration: 3s20ms Bind query: yes
20 29 9m57s 527ms 44s19ms 20s601ms 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, case when a.flg_transporte_escolar = true then ? when a.flg_transporte_escolar = false then ? end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 #20
Day Hour Count Duration Avg duration Aug 29 08 8 2m58s 22s361ms 09 3 59s383ms 19s794ms 10 4 1m25s 21s401ms 11 4 1m28s 22s166ms 13 7 2m3s 17s709ms 14 3 1m 20s308ms -
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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '459' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '459' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 13:38:10 Duration: 44s19ms 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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '448' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '448' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 08:45:56 Duration: 32s815ms 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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '434' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '434' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 11:58:04 Duration: 28s310ms Bind query: yes
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 876ms 1h55m1s 57m31s 2 1h55m2s 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 = ? left join aluno_matr_status_hist abandono on abandono.id_aluno_matricula = am.id_aluno_matricula and abandono.id_aluno_matr_status = ? 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 in (...) and (am.id_aluno_matr_status = ? or calendario_periodo_data.data < abandono.data_ocorrencia::date) and am.flg_matricula_atual 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 #1
Day Hour Count Duration Avg duration Aug 29 00 1 876ms 876ms 02 1 1h55m1s 1h55m1s -
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 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 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 (69, 72, 77, 78, 79, 80, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102) 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 am.flg_matricula_atual 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: 2024-08-29 02:06:28 Duration: 1h55m1s 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 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 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 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 (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 am.flg_matricula_atual 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: 2024-08-29 00:01:13 Duration: 876ms Bind query: yes
2 1m25s 20m29s 10m57s 2 21m55s 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 Aug 29 00 1 1m25s 1m25s 01 1 20m29s 20m29s -
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: 2024-08-29 01:30:04 Duration: 20m29s Bind query: yes
-
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: 2024-08-29 00:31:50 Duration: 1m25s Bind query: yes
3 10m49s 10m49s 10m49s 1 10m49s 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 Aug 29 01 1 10m49s 10m49s -
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: 2024-08-29 01:47:16 Duration: 10m49s Bind query: yes
4 10m20s 10m20s 10m20s 1 10m20s insert into gestao_programa.acompanhamento_turma_serie (id_turma, id_serie, id_nota_periodo_aluno, matricula_inicial, matricula_suplementar, transferido, desistente, falecido, nao_alfabetizado, correcao_fluxo, aprovado, reprovado_frequencia, reprovado_desempenho) select turma.id_turma, serie.id_serie, calendario_periodo.ordem as id_nota_periodo_aluno, sum( case when am.flg_matricula_inicial is true then ? else ? end) as matricula_inicial, sum( case when am.flg_matricula_inicial is false and (periodo_seguinte.ordem is null or am.data_matricula < periodo_seguinte.data_inicio) then ? else ? end) as matricula_suplementar, sum( case when am.id_aluno_matr_status = ? and (periodo_seguinte.ordem is null or historico_transf.data_ocorrencia < periodo_seguinte.data_inicio) then ? else ? end) as transferido, sum( case when am.id_aluno_matr_status = ? and (periodo_seguinte.ordem is null or historico_desist.data_ocorrencia < periodo_seguinte.data_inicio) then ? else ? end) as desistente, sum( case when am.id_aluno_matr_status = ? and (periodo_seguinte.ordem is null or historico_falec.data_ocorrencia < periodo_seguinte.data_inicio) then ? else ? end) as falecido, sum( case when am.id_aluno_matr_status in (...) and am.flg_alfabetizado is false and pc.flg_alfabetizado is not true then ? else ? end) as nao_alfabetizado, sum( case when am.id_aluno_matr_status in (...) and (cast(date_part(?, age(cast(ano.ano || ? as timestamp), cidadao.nascimento_data)) as int4) >= serie.idade_distorcao or (am.flg_alfabetizado is false and serie_equiv.ordem > ?)) then ? else ? end) as correcao_fluxo, sum( case when am.id_aluno_matr_status in (...) and pct.flg_aprovacao is true then ? else ? end) as aprovado, sum( case when am.id_aluno_matr_status in (...) and pct.id_parecer_conclusivo_tipo = ? then ? else ? end) as reprovado_frequencia, sum( case when am.id_aluno_matr_status in (...) and pct.id_parecer_conclusivo_tipo = ? then ? else ? end) as reprovado_desempenho from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular 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 calendario_periodo periodo_seguinte on periodo_seguinte.id_calendario = calendario_periodo.id_calendario and periodo_seguinte.ordem = calendario_periodo.ordem + ? left join serie_equivalente serie_equiv on serie_equiv.id_serie_equivalente = serie.id_serie_equivalente left join aluno_matr_turma amt on amt.id_turma = turma.id_turma left join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula and (serie.flg_correcao_fluxo is true or serie.id_serie = am.id_serie) left join cidadao on cidadao.id_cidadao = am.id_cidadao left join aluno_matr_status_hist historico_transf on historico_transf.id_aluno_matricula = am.id_aluno_matricula and historico_transf.id_aluno_matr_status = ? left join aluno_matr_status_hist historico_desist on historico_desist.id_aluno_matricula = am.id_aluno_matricula and historico_desist.id_aluno_matr_status = ? left join aluno_matr_status_hist historico_falec on historico_falec.id_aluno_matricula = am.id_aluno_matricula and historico_falec.id_aluno_matr_status = ? left join parecer_conclusivo pc on pc.id_aluno_matricula = am.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo where turma.id_turma_status in (...) group by turma.id_turma, serie.id_serie, calendario_periodo.ordem;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Aug 29 00 1 10m20s 10m20s -
insert into gestao_programa.acompanhamento_turma_serie (id_turma, id_serie, id_nota_periodo_aluno, matricula_inicial, matricula_suplementar, transferido, desistente, falecido, nao_alfabetizado, correcao_fluxo, aprovado, reprovado_frequencia, reprovado_desempenho) select turma.id_turma, serie.id_serie, calendario_periodo.ordem as id_nota_periodo_aluno, sum( case when am.flg_matricula_inicial is true then 1 else 0 end) as matricula_inicial, sum( case when am.flg_matricula_inicial is false and (periodo_seguinte.ordem is null or am.data_matricula < periodo_seguinte.data_inicio) then 1 else 0 end) as matricula_suplementar, sum( case when am.id_aluno_matr_status = 6 and (periodo_seguinte.ordem is null or historico_transf.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as transferido, sum( case when am.id_aluno_matr_status = 3 and (periodo_seguinte.ordem is null or historico_desist.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as desistente, sum( case when am.id_aluno_matr_status = 4 and (periodo_seguinte.ordem is null or historico_falec.data_ocorrencia < periodo_seguinte.data_inicio) then 1 else 0 end) as falecido, sum( case when am.id_aluno_matr_status in (1, 2, 7) and am.flg_alfabetizado is false and pc.flg_alfabetizado is not true then 1 else 0 end) as nao_alfabetizado, sum( case when am.id_aluno_matr_status in (1, 2, 7) and (cast(date_part('year', age(cast(ano.ano || '-12-31' as timestamp), cidadao.nascimento_data)) as int4) >= serie.idade_distorcao or (am.flg_alfabetizado is false and serie_equiv.ordem > 2)) then 1 else 0 end) as correcao_fluxo, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.flg_aprovacao is true then 1 else 0 end) as aprovado, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.id_parecer_conclusivo_tipo = 1 then 1 else 0 end) as reprovado_frequencia, sum( case when am.id_aluno_matr_status in (1, 2, 7) and pct.id_parecer_conclusivo_tipo = 2 then 1 else 0 end) as reprovado_desempenho from turma inner join turma_serie ts on turma.id_turma = ts.id_turma inner join serie on serie.id_serie = ts.id_serie inner join curso on curso.id_curso = serie.id_curso inner join grade_curricular gc on gc.id_grade_curricular = ts.id_grade_curricular 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 calendario_periodo periodo_seguinte on periodo_seguinte.id_calendario = calendario_periodo.id_calendario and periodo_seguinte.ordem = calendario_periodo.ordem + 1 left join serie_equivalente serie_equiv on serie_equiv.id_serie_equivalente = serie.id_serie_equivalente left join aluno_matr_turma amt on amt.id_turma = turma.id_turma left join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula and (serie.flg_correcao_fluxo is true or serie.id_serie = am.id_serie) left join cidadao on cidadao.id_cidadao = am.id_cidadao left join aluno_matr_status_hist historico_transf on historico_transf.id_aluno_matricula = am.id_aluno_matricula and historico_transf.id_aluno_matr_status = 6 left join aluno_matr_status_hist historico_desist on historico_desist.id_aluno_matricula = am.id_aluno_matricula and historico_desist.id_aluno_matr_status = 3 left join aluno_matr_status_hist historico_falec on historico_falec.id_aluno_matricula = am.id_aluno_matricula and historico_falec.id_aluno_matr_status = 4 left join parecer_conclusivo pc on pc.id_aluno_matricula = am.id_aluno_matricula left join parecer_conclusivo_tipo pct on pct.id_parecer_conclusivo_tipo = pc.id_parecer_conclusivo_tipo where turma.id_turma_status in (1, 2) group by turma.id_turma, serie.id_serie, calendario_periodo.ordem;
Date: 2024-08-29 00:56:49 Duration: 10m20s Bind query: yes
5 12s290ms 10m26s 5m19s 2 10m38s 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 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 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 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 #5
Day Hour Count Duration Avg duration Aug 29 00 2 10m38s 5m19s -
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 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 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) 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 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: 2024-08-29 00:11:26 Duration: 10m26s 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 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 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 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: 2024-08-29 00:01:12 Duration: 12s290ms Bind query: yes
6 1m38s 10m55s 4m44s 3 14m14s 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 #6
Day Hour Count Duration Avg duration Aug 29 00 2 12m33s 6m16s 01 1 1m40s 1m40s -
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: 2024-08-29 00:42:45 Duration: 10m55s 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: 2024-08-29 01:31:45 Duration: 1m40s 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: 2024-08-29 00:06:09 Duration: 1m38s Bind query: yes
7 19s172ms 9m7s 4m43s 2 9m26s insert into consulta.conteudo_curric_ministrado_detalhe (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, id_periodo_planejamento, id_conteudo_campo_eixo, id_conteudo_curricular, id_conteudo_analise_ling, data_realizacao) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional, cidadao.nome as nome_professor, ccp.id_nota_periodo_aluno as id_periodo_planejamento, campo_eixo.id_conteudo_curricular as id_conteudo_campo_eixo, ccp.id_conteudo_curricular, ccpa.id_conteudo_curricular as id_conteudo_analise_ling, conteudo.data_realizacao 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 inner join lateral ( select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, min(data_realizacao) as data_realizacao from ( select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cca.id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and cca.id_conteudo_analise_linguistica is not null and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem and ccp.id_conteudo_analise_linguistica is not null) as apontamentos group by id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica) conteudo on conteudo.id_turma = turma.id_turma and conteudo.id_serie = ts.id_serie and conteudo.id_componente_curricular = cc.id_componente_curricular inner join conteudo_curricular_componente ccp on ccp.id_conteudo_curricular_componente = conteudo.id_conteudo_curricular_componente left join conteudo_curricular_componente campo_eixo on campo_eixo.id_conteudo_curricular_componente = ccp.id_conteudo_curricular_componente_pai left join conteudo_curricular_componente ccpa on ccpa.id_conteudo_curricular_componente = conteudo.id_conteudo_analise_linguistica 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 and id_nota_periodo_aluno = calendario_periodo.ordem);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Aug 29 00 1 9m7s 9m7s 01 1 19s172ms 19s172ms -
insert into consulta.conteudo_curric_ministrado_detalhe (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, id_periodo_planejamento, id_conteudo_campo_eixo, id_conteudo_curricular, id_conteudo_analise_ling, data_realizacao) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional, cidadao.nome as nome_professor, ccp.id_nota_periodo_aluno as id_periodo_planejamento, campo_eixo.id_conteudo_curricular as id_conteudo_campo_eixo, ccp.id_conteudo_curricular, ccpa.id_conteudo_curricular as id_conteudo_analise_ling, conteudo.data_realizacao 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 inner join lateral ( select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, min(data_realizacao) as data_realizacao from ( select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cca.id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and cca.id_conteudo_analise_linguistica is not null and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem and ccp.id_conteudo_analise_linguistica is not null) as apontamentos group by id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica) conteudo on conteudo.id_turma = turma.id_turma and conteudo.id_serie = ts.id_serie and conteudo.id_componente_curricular = cc.id_componente_curricular inner join conteudo_curricular_componente ccp on ccp.id_conteudo_curricular_componente = conteudo.id_conteudo_curricular_componente left join conteudo_curricular_componente campo_eixo on campo_eixo.id_conteudo_curricular_componente = ccp.id_conteudo_curricular_componente_pai left join conteudo_curricular_componente ccpa on ccpa.id_conteudo_curricular_componente = conteudo.id_conteudo_analise_linguistica 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 and id_nota_periodo_aluno = calendario_periodo.ordem);
Date: 2024-08-29 00:30:24 Duration: 9m7s Bind query: yes
-
insert into consulta.conteudo_curric_ministrado_detalhe (id_turma, id_serie, id_componente_curricular, id_nota_periodo_aluno, rf_professor, nome_professor, id_periodo_planejamento, id_conteudo_campo_eixo, id_conteudo_curricular, id_conteudo_analise_ling, data_realizacao) select turma.id_turma, ts.id_serie, cc.id_componente_curricular, calendario_periodo.ordem as id_nota_periodo_aluno, servidor.registro_funcional, cidadao.nome as nome_professor, ccp.id_nota_periodo_aluno as id_periodo_planejamento, campo_eixo.id_conteudo_curricular as id_conteudo_campo_eixo, ccp.id_conteudo_curricular, ccpa.id_conteudo_curricular as id_conteudo_analise_ling, conteudo.data_realizacao 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 inner join lateral ( select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, min(data_realizacao) as data_realizacao from ( select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select sda.id_turma, sda.id_serie, sda.id_componente_curricular, cca.id_conteudo_curricular_componente, cca.id_conteudo_analise_linguistica, sda.data_atualizacao as data_realizacao from conteudo_curricular_aula cca inner join situacao_didatica_aula sda on sda.id_situacao_didatica_aula = cca.id_situacao_didatica_aula where sda.id_turma = turma.id_turma and sda.id_serie = ts.id_serie and sda.id_componente_curricular = cc.id_componente_curricular and cca.id_conteudo_analise_linguistica is not null and sda.data between calendario_periodo.data_inicio and calendario_periodo.data_final union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, cast(null as integer) as id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem union all select id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica, data_realizacao from conteudo_curricular_periodo ccp where ccp.id_turma = turma.id_turma and ccp.id_serie = ts.id_serie and ccp.id_componente_curricular = cc.id_componente_curricular and ccp.id_nota_periodo_aluno = calendario_periodo.ordem and ccp.id_conteudo_analise_linguistica is not null) as apontamentos group by id_turma, id_serie, id_componente_curricular, id_conteudo_curricular_componente, id_conteudo_analise_linguistica) conteudo on conteudo.id_turma = turma.id_turma and conteudo.id_serie = ts.id_serie and conteudo.id_componente_curricular = cc.id_componente_curricular inner join conteudo_curricular_componente ccp on ccp.id_conteudo_curricular_componente = conteudo.id_conteudo_curricular_componente left join conteudo_curricular_componente campo_eixo on campo_eixo.id_conteudo_curricular_componente = ccp.id_conteudo_curricular_componente_pai left join conteudo_curricular_componente ccpa on ccpa.id_conteudo_curricular_componente = conteudo.id_conteudo_analise_linguistica 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 and id_nota_periodo_aluno = calendario_periodo.ordem);
Date: 2024-08-29 01:09:35 Duration: 19s172ms Bind query: yes
8 1m11s 7m56s 4m34s 2 9m8s 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 (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 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 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 Aug 29 00 2 9m8s 4m34s -
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 (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 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 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: 2024-08-29 00:19:06 Duration: 7m56s 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 (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 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 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: 2024-08-29 00:02:41 Duration: 1m11s Bind query: yes
9 1m21s 4m10s 2m45s 2 5m31s with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (...) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = ? and amt.data_enturmacao::date <= ?::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= ?::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit ?) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = ? and uf.id_instituicao = ? and ((t.id_diario_turma_situacao = ? and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = ?) or (t.id_diario_turma_situacao <> ? or t.id_diario_turma_situacao is null)) and pm.data_matricula::date <= ? and ( select amsh.id_aluno_matr_status in (...) from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit ?) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= ?::date and case when a.semestre = ? then cpf.ordem <= ? when a.semestre = ? then cpf.ordem >= ? else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > ? ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = ? left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = ? left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > ? or pm.alunos > ?) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Aug 29 08 1 1m21s 1m21s 10 1 4m10s 4m10s -
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2024-08-29'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2024-08-29'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2024' and uf.id_instituicao = '98' and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and pm.data_matricula::date <= '2024-08-29' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2024-08-29' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2024-08-29'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '607061' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '607061' and id_assunto_hierarquia_unidade = '81') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = 10 left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = 10 left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2024-08-29 10:35:05 Duration: 4m10s Bind query: yes
-
with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4, 5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= '2024-08-29'::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= '2024-08-29'::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = '2024' and uf.id_instituicao = '91' and ((t.id_diario_turma_situacao = '2' and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = '2') or (t.id_diario_turma_situacao <> '2' or t.id_diario_turma_situacao is null)) and pm.data_matricula::date <= '2024-08-29' and ( select amsh.id_aluno_matr_status in ('1', '2') from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2024-08-29' order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1) is true and exists ( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= '2024-08-29'::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end) and t.id_turma is not null and uf.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = 10 left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = 10 left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct ( case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct ( case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in ( select unnest(x.turmas) from pm as x) and ts.id_serie in ( select x.id_serie from pm as x)) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie;
Date: 2024-08-29 08:14:04 Duration: 1m21s Bind query: yes
10 9s153ms 2m25s 1m17s 2 2m34s insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, ? as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, ?)) as faltas, case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = ? where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part(?, aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = ? left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = ? then ?.? when sum(coalesce(faltas.falta_nao_justificada, ?)) > aulas.aulas then ?.? else round(? * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, ?))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = ? then ? else ? end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Aug 29 01 1 9s153ms 9s153ms 02 1 2m25s 2m25s -
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, '2' as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = '2' where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2024-08-29 02:13:26 Duration: 2m25s Bind query: yes
-
insert into call_center.monitoramento_frequencia_aluno (id_instituicao, id_aluno_matricula, id_turma, id_monitoramento_frequencia, ano, periodo, faltas, percentual_frequencia, dias_consecutivos) select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, '2' as id_monitoramento_frequencia, aulas.ano, aulas.bimestre as periodo, sum(coalesce(faltas.falta_nao_justificada, 0)) as faltas, case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end as percentual_frequencia, ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) as dias_consecutivos from falta_aluno_disciplina faltas inner join ( select aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data) as ano, aulas.bimestre, sum(aulas.aulas)::integer as aulas, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas from call_center.falta_aluno_mes aulas inner join call_center.parametro_frequencia_monitoramento parametro_frequencia on aulas.id_instituicao = parametro_frequencia.id_instituicao and parametro_frequencia.id_monitoramento_frequencia = '2' where aulas.flg_apontamento_global is false group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.id_nota_periodo_aluno, date_part('year', aulas.data), aulas.bimestre, parametro_frequencia.percentual_frequencia, parametro_frequencia.faltas_consecutivas) as aulas on faltas.id_aluno_matricula = aulas.id_aluno_matricula and faltas.id_turma = aulas.id_turma and faltas.id_nota_periodo_aluno = aulas.id_nota_periodo_aluno left join parametro on parametro.id_instituicao = aulas.id_instituicao and parametro.nome = 'arredondarFrequenciaAluno' left join definicao_parametro on definicao_parametro.nome = parametro.nome group by aulas.id_instituicao, aulas.id_aluno_matricula, aulas.id_turma, aulas.ano, aulas.bimestre, aulas.aulas, aulas.percentual_frequencia, aulas.faltas_consecutivas, parametro.valor, definicao_parametro.valor_padrao having case when aulas.aulas = 0 then 100.0 when sum(coalesce(faltas.falta_nao_justificada, 0)) > aulas.aulas then 0.0 else round(100 * (aulas.aulas - sum(coalesce(faltas.falta_nao_justificada, 0))) / aulas.aulas::numeric, case when coalesce(parametro.valor, definicao_parametro.valor_padrao) = '1' then 0 else 2 end) end < aulas.percentual_frequencia or ( select max(dias) from call_center.falta_aluno_dias_consecutivos dias_consecutivos where dias_consecutivos.id_aluno_matricula = aulas.id_aluno_matricula and dias_consecutivos.id_turma = aulas.id_turma and dias_consecutivos.bimestre_inicio <= aulas.bimestre and aulas.bimestre <= dias_consecutivos.bimestre_fim) > aulas.faltas_consecutivas;
Date: 2024-08-29 01:47:41 Duration: 9s153ms Bind query: yes
11 7s531ms 2m21s 1m3s 3 3m10s insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = ?)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = ?)) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = ?)) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = ? and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = ?)) as browser from unidade_funcional uf where uf.flg_ativa;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Aug 29 00 1 7s531ms 7s531ms 01 2 3m2s 1m31s -
insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = 3)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Android')) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'iOS')) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Desktop')) as browser from unidade_funcional uf where uf.flg_ativa;
Date: 2024-08-29 01:35:33 Duration: 2m21s Bind query: yes
-
insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = 3)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Android')) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'iOS')) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Desktop')) as browser from unidade_funcional uf where uf.flg_ativa;
Date: 2024-08-29 01:01:54 Duration: 41s949ms Bind query: yes
-
insert into consulta.usuarios_movel (id_unidade_funcional, total, movel, android, ios, browser) select uf.id_unidade_funcional, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join unidade_funcional uf2 on uf2.id_unidade_funcional = id_unidade_funcional_filha where id_unidade_funcional_mae = uf.id_unidade_funcional and uf2.id_nivel_unidade_funcional = 3)) as total, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario)) as movel, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Android')) as android, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'iOS')) as ios, ( select count(distinct pe.id_usuario) as total_usuarios from perfil_extendido pe inner join assunto_hierarquia_unidade ahu on pe.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial inner join permissao_acesso pa on pe.id_grupo_usuario = pa.id_grupo_usuario inner join cidadao_usuario cu on cu.id_usuario = pe.id_usuario inner join cidadao c on cu.id_cidadao = c.id_cidadao inner join servidor s on cu.id_cidadao = s.id_cidadao where pa.id_recurso = 3898 and pe.id_unidade_funcional in ( select uf.id_unidade_funcional union all select id_unidade_funcional_filha from hierarquia_unidade_extendida hue inner join assunto_hierarquia_unidade ahu on hue.id_assunto_hierarquia_unidade = ahu.id_assunto_hierarquia_unidade and ahu.flg_oficial where id_unidade_funcional_mae = uf.id_unidade_funcional) and exists ( select null from usuario_dispositivo where id_usuario = pe.id_usuario and plataforma_dispositivo = 'Desktop')) as browser from unidade_funcional uf where uf.flg_ativa;
Date: 2024-08-29 00:07:27 Duration: 7s531ms Bind query: yes
12 15s252ms 1m22s 50s254ms 3 2m30s insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval(?), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (...) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (...)) as flg_registro_utilizar, case when flg_matricula_inicial = true then ? else ? end as matricula_inicial, case when flg_matricula_inicial = false then ? else ? end as matricula_suplementar, case when am.id_aluno_matr_status = ? then ? else ? end as transferidos, case when am.id_aluno_matr_status = ? and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = ? and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit ?) is true then ? else ? end as transferencia_interna, case when am.id_aluno_matr_status = ? and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = ? and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit ?) is false then ? else ? end as transferencia_externa, case when am.id_aluno_matr_status = ? then ? else ? end as desistentes, case when am.id_aluno_matr_status = ? then ? else ? end as falecidos, case when am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ? then ? else ? end as matricula_final, case when (am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ?) and (id_parecer_conclusivo_tipo = ? or id_parecer_conclusivo_tipo = ?) then ? else ? end as aprovados, case when (am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ? or am.id_aluno_matr_status = ?) and (id_parecer_conclusivo_tipo = ? or id_parecer_conclusivo_tipo = ?) then ? else ? end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = ? then ? else ? end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = ? left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (...) and ((t.id_diario_turma_situacao = ? and amt.id_diario_turma_situacao_enturmacao = ?) or coalesce(t.id_diario_turma_situacao, ?) <> ?)) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Aug 29 00 2 2m15s 1m7s 01 1 15s252ms 15s252ms -
insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval('sq_rendimento_escolar_estatistica_id'), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 7)) as flg_registro_utilizar, case when flg_matricula_inicial = true then 1 else 0 end as matricula_inicial, case when flg_matricula_inicial = false then 1 else 0 end as matricula_suplementar, case when am.id_aluno_matr_status = 6 then 1 else 0 end as transferidos, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is true then 1 else 0 end as transferencia_interna, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is false then 1 else 0 end as transferencia_externa, case when am.id_aluno_matr_status = 3 then 1 else 0 end as desistentes, case when am.id_aluno_matr_status = 4 then 1 else 0 end as falecidos, case when am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7 then 1 else 0 end as matricula_final, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 0 or id_parecer_conclusivo_tipo = 3) then 1 else 0 end as aprovados, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 1 or id_parecer_conclusivo_tipo = 2) then 1 else 0 end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = 1 then 1 else 0 end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) and ((t.id_diario_turma_situacao = '2' and amt.id_diario_turma_situacao_enturmacao = '2') or coalesce(t.id_diario_turma_situacao, - 1) <> '2')) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;
Date: 2024-08-29 00:04:22 Duration: 1m22s Bind query: yes
-
insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval('sq_rendimento_escolar_estatistica_id'), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 7)) as flg_registro_utilizar, case when flg_matricula_inicial = true then 1 else 0 end as matricula_inicial, case when flg_matricula_inicial = false then 1 else 0 end as matricula_suplementar, case when am.id_aluno_matr_status = 6 then 1 else 0 end as transferidos, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is true then 1 else 0 end as transferencia_interna, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is false then 1 else 0 end as transferencia_externa, case when am.id_aluno_matr_status = 3 then 1 else 0 end as desistentes, case when am.id_aluno_matr_status = 4 then 1 else 0 end as falecidos, case when am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7 then 1 else 0 end as matricula_final, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 0 or id_parecer_conclusivo_tipo = 3) then 1 else 0 end as aprovados, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 1 or id_parecer_conclusivo_tipo = 2) then 1 else 0 end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = 1 then 1 else 0 end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) and ((t.id_diario_turma_situacao = '2' and amt.id_diario_turma_situacao_enturmacao = '2') or coalesce(t.id_diario_turma_situacao, - 1) <> '2')) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;
Date: 2024-08-29 00:20:18 Duration: 52s854ms Bind query: yes
-
insert into consulta.rendimento_escolar_estatistica (id_rendimento_escolar_estatistica, id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, matricula_inicial, matricula_suplementar, transferidos, transferencia_interna, transferencia_externa, desistentes, falecidos, matricula_final, aprovados, reprovados, nao_enturmados) select nextval('sq_rendimento_escolar_estatistica_id'), id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico, sum(matricula_inicial) as matricula_inicial, sum(matricula_suplementar) as matricula_suplementar, sum(transferidos) as transferidos, sum(transferencia_interna) as transferencia_interna, sum(transferencia_externa) as transferencia_externa, sum(desistentes) as desistentes, sum(falecidos) as falecidos, sum(matricula_final) as matricula_final, sum(aprovados) as aprovados, sum(reprovados) as reprovados, sum(nao_enturmados) as nao_enturmados from ( select am.id_unidade_funcional, c.id_curso, s.id_serie, am.id_ano_semestre, t.id_programa_pedagogico, am.id_aluno_matricula in ( select max(am2.id_aluno_matricula) from aluno_matricula am2 inner join ano_semestre ano2 on am2.id_ano_semestre = ano2.id_ano_semestre where am2.id_cidadao = am.id_cidadao and ano2.ano = anse.ano and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) union all select max(am2.id_aluno_matricula) from aluno_matricula am2 where am2.id_cidadao = am.id_cidadao and am2.id_ano_semestre = am.id_ano_semestre and am2.id_unidade_funcional = am.id_unidade_funcional and am2.id_aluno_matr_status in (1, 2, 7)) as flg_registro_utilizar, case when flg_matricula_inicial = true then 1 else 0 end as matricula_inicial, case when flg_matricula_inicial = false then 1 else 0 end as matricula_suplementar, case when am.id_aluno_matr_status = 6 then 1 else 0 end as transferidos, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is true then 1 else 0 end as transferencia_interna, case when am.id_aluno_matr_status = 6 and ( select flg_transferencia_interna from aluno_matr_status_hist where id_aluno_matr_status = 6 and id_aluno_matricula = am.id_aluno_matricula order by id_aluno_matr_status_hist desc limit 1) is false then 1 else 0 end as transferencia_externa, case when am.id_aluno_matr_status = 3 then 1 else 0 end as desistentes, case when am.id_aluno_matr_status = 4 then 1 else 0 end as falecidos, case when am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7 then 1 else 0 end as matricula_final, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 0 or id_parecer_conclusivo_tipo = 3) then 1 else 0 end as aprovados, case when (am.id_aluno_matr_status = 1 or am.id_aluno_matr_status = 2 or am.id_aluno_matr_status = 7) and (id_parecer_conclusivo_tipo = 1 or id_parecer_conclusivo_tipo = 2) then 1 else 0 end as reprovados, case when amt.id_aluno_matricula is null and am.id_aluno_matr_status = 1 then 1 else 0 end as nao_enturmados from aluno_matricula am inner join curso c on am.id_curso = c.id_curso inner join serie s on am.id_serie = s.id_serie left join parecer_conclusivo pc on am.id_aluno_matricula = pc.id_aluno_matricula inner join ano_semestre anse on am.id_ano_semestre = anse.id_ano_semestre left join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 left join turma t on amt.id_turma = t.id_turma where am.id_aluno_matr_status in (1, 2, 3, 4, 6, 7) and ((t.id_diario_turma_situacao = '2' and amt.id_diario_turma_situacao_enturmacao = '2') or coalesce(t.id_diario_turma_situacao, - 1) <> '2')) t where flg_registro_utilizar group by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico order by id_unidade_funcional, id_curso, id_serie, id_ano_semestre, id_programa_pedagogico;
Date: 2024-08-29 01:09:09 Duration: 15s252ms Bind query: yes
13 527ms 44s19ms 20s601ms 29 9m57s 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, case when a.flg_transporte_escolar = true then ? when a.flg_transporte_escolar = false then ? end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 #13
Day Hour Count Duration Avg duration Aug 29 08 8 2m58s 22s361ms 09 3 59s383ms 19s794ms 10 4 1m25s 21s401ms 11 4 1m28s 22s166ms 13 7 2m3s 17s709ms 14 3 1m 20s308ms -
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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '459' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '459' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 13:38:10 Duration: 44s19ms 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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '448' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '448' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 08:45:56 Duration: 32s815ms 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 = '2024') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '82')) 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, case when a.flg_transporte_escolar = true then 'Sim' when a.flg_transporte_escolar = false then 'Não' end 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, 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 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.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(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(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 from cidadao cid inner join aluno a on a.id_cidadao = cid.id_cidadao 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_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 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 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 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 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 = '82' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2024' and uf.id_unidade_funcional in ( select '434' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '434' and id_assunto_hierarquia_unidade = '10') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2024-08-29 11:58:04 Duration: 28s310ms Bind query: yes
14 553ms 6s743ms 3s876ms 58 3m44s select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (?, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ? as percentual_fj, greatest (?, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ? as percentual_fnj, (greatest (?, ? - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ?) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (...) and turma.id_turma_status in (...) and turma.id_unidade_funcional = ? and ano.id_ano_semestre = ? and modalidade.id_ensino_etapa = ? and serie.id_serie = ? and tp.id_nota_periodo_aluno in (...) group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (?, ? - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * ?.?), ?)) * ?) between ? and ? union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (?, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ? as percentual_fj, greatest (?, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ? as percentual_fnj, greatest (?, (? - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ?) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (...) and turma.id_turma_status in (...) and turma.id_unidade_funcional = ? and ano.id_ano_semestre = ? and modalidade.id_ensino_etapa = ? and serie.id_serie = ? and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in (...) group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > ? and greatest (?, (? - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, ?)) * ?.?), ?)) * ?) between ? and ? order by nome_cidadao, codigo_aluno limit ? offset ?;Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Aug 29 07 20 1m29s 4s484ms 08 13 1m7s 5s222ms 09 20 47s583ms 2s379ms 11 5 19s686ms 3s937ms -
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 60;
Date: 2024-08-29 08:28:50 Duration: 6s743ms Bind query: yes
-
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 230;
Date: 2024-08-29 08:30:13 Duration: 6s407ms Bind query: yes
-
select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fag.falta_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100 as percentual_fnj, (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade inner join turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select sum(calendario_periodo.qtd_dias_letivos) as total from calendario_periodo where calendario_periodo.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo.ordem between tp.periodo_calendario_inicio and tp.periodo_calendario_fim) dias_letivos on true inner join falta_aluno_globalizada fag on fag.id_aluno_matricula = am.id_aluno_matricula and fag.id_turma = amt.id_turma and fag.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is true and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.id_cidadao, aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo having (greatest (0, 1 - coalesce(sum(fag.falta_nao_justificada) / (sum(dias_letivos.total) * 1.0), 0)) * 100) between '0' and '100' union all select aluno.codigo as codigo_aluno, cidadao.nome as nome_cidadao, cidadao.nascimento_data, turma.codigo as codigo_turma, greatest (0, coalesce(sum(fad.falta_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fj, greatest (0, coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100 as percentual_fnj, greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) as percentual_frequencia from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join cidadao on am.id_cidadao = cidadao.id_cidadao inner join aluno on cidadao.id_cidadao = aluno.id_cidadao inner join turma on turma.id_turma = amt.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join serie on serie.id_serie = am.id_serie inner join curso on curso.id_curso = serie.id_curso inner join modalidade on modalidade.id_modalidade = curso.id_modalidade 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 turma_periodo tp on tp.id_turma = amt.id_turma left join escola_calendario on escola_calendario.id_unidade_funcional = turma.id_unidade_funcional and escola_calendario.ano = ano.ano left join curso_calendario on curso_calendario.id_unidade_funcional = turma.id_unidade_funcional and curso_calendario.id_curso = turma.id_curso and curso_calendario.ano = ano.ano inner join lateral ( select qh.id_turma, qh.id_componente_curricular, cast(count(qh.id_quadro_horario_homologado) as integer) as aulas from quadro_horario_homologado qh inner join calendario_periodo_data on calendario_periodo_data.id_calendario = coalesce(turma.id_calendario_turma, curso_calendario.id_calendario, escola_calendario.id_calendario) and calendario_periodo_data.dia_semana = qh.dia_semana left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data where qh.id_turma = turma.id_turma and calendario_periodo_data.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and calendario_data.id_motivo_dia_nao_letivo is null and calendario_data.id_motivo_dia_nao_letivo is null 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) group by qh.id_turma, qh.id_componente_curricular) as aulas on aulas.id_turma = turma.id_turma and aulas.id_componente_curricular = cc.id_componente_curricular and cc.flg_aponta_faltas is true left join falta_aluno_disciplina fad on fad.id_aluno_matricula = am.id_aluno_matricula and fad.id_turma = amt.id_turma and fad.id_disciplina = cc.id_disciplina and fad.id_nota_periodo_aluno = tp.id_nota_periodo_aluno where serie.flg_apon_falta_globalizado is false and turma.flg_organizada is true and am.id_aluno_matr_status in (1, 2, 7) and turma.id_turma_status in (1, 2) and turma.id_unidade_funcional = '606651' and ano.id_ano_semestre = '69' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1981' and fad.id_disciplina not in ( select dispensa.id_disciplina from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = amt.id_turma and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[fad.id_nota_periodo_aluno])) and tp.id_nota_periodo_aluno in ('1', '2', '3') group by aluno.codigo, cidadao.nome, cidadao.nascimento_data, turma.codigo, am.id_aluno_matricula having count(fad.id_aluno_matricula) > 0 and greatest (0, (1 - coalesce(sum(fad.falta_nao_justificada) / (sum(coalesce(aulas.aulas, 0)) * 1.0), 0)) * 100) between '0' and '100' order by nome_cidadao, codigo_aluno limit 10 offset 150;
Date: 2024-08-29 08:29:27 Duration: 6s384ms Bind query: yes
15 3s19ms 7s718ms 3s799ms 87 5m30s 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 #15
Day Hour Count Duration Avg duration Aug 29 07 17 59s42ms 3s473ms 08 9 31s378ms 3s486ms 09 9 32s9ms 3s556ms 10 20 1m28s 4s413ms 11 18 1m4s 3s593ms 13 9 37s206ms 4s134ms 14 5 17s955ms 3s591ms -
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 = '240015471' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '18933' 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: 2024-08-29 13:53:10 Duration: 7s718ms 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 = '240019515' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '18998' 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: 2024-08-29 10:39:42 Duration: 6s576ms 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 = '240012520' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '19003' 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: 2024-08-29 10:57:18 Duration: 6s393ms Bind query: yes
16 2s789ms 8s790ms 3s627ms 370 22m22s 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 #16
Day Hour Count Duration Avg duration Aug 29 07 59 3m8s 3s197ms 08 84 5m11s 3s702ms 09 65 3m56s 3s643ms 10 91 5m42s 3s759ms 11 8 26s436ms 3s304ms 12 8 25s79ms 3s134ms 13 49 3m10s 3s890ms 14 6 21s458ms 3s576ms -
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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240003452' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1143' 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: 2024-08-29 13:53:02 Duration: 8s790ms 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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240001733' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1117' 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: 2024-08-29 10:39:43 Duration: 7s483ms 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 -- não faz join com turma de propósito por causa de remanejamento! 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 = '240000435' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '1265' 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: 2024-08-29 09:39:19 Duration: 7s462ms Bind query: yes
17 500ms 22s450ms 2s920ms 192 9m20s 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 Aug 29 07 19 28s454ms 1s497ms 08 27 1m33s 3s473ms 09 46 1m50s 2s401ms 10 36 2m34s 4s294ms 11 36 1m30s 2s522ms 12 8 4s808ms 601ms 13 10 1m4s 6s490ms 14 10 12s948ms 1s294ms -
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: 2024-08-29 13:33:34 Duration: 22s450ms 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: 2024-08-29 08:16:54 Duration: 20s161ms 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: 2024-08-29 10:53:14 Duration: 16s873ms Bind query: yes
18 1s165ms 10s466ms 2s210ms 52 1m54s select coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, falta.id_nota_periodo_aluno, sum(falta.qtd_faltas)::int as falta from falta_aluno_disciplina falta inner join turma_disciplina td on td.id_disciplina = falta.id_disciplina inner join componente_curricular cc on cc.id_grade_curricular = td.id_grade_curricular and cc.id_disciplina = falta.id_disciplina where falta.id_aluno_matricula = ? and td.id_turma = ? and td.id_grade_curricular = ? group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), falta.id_nota_periodo_aluno;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Aug 29 00 1 5s949ms 5s949ms 04 2 10s285ms 5s142ms 05 1 1s267ms 1s267ms 06 3 3s621ms 1s207ms 07 10 14s542ms 1s454ms 08 4 15s268ms 3s817ms 09 11 22s49ms 2s4ms 10 5 10s483ms 2s96ms 11 3 6s200ms 2s66ms 12 7 12s611ms 1s801ms 13 1 5s563ms 5s563ms 14 4 7s83ms 1s770ms -
select coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, falta.id_nota_periodo_aluno, sum(falta.qtd_faltas)::int as falta from falta_aluno_disciplina falta inner join turma_disciplina td on td.id_disciplina = falta.id_disciplina inner join componente_curricular cc on cc.id_grade_curricular = td.id_grade_curricular and cc.id_disciplina = falta.id_disciplina where falta.id_aluno_matricula = '3322629' and td.id_turma = '240018310' and td.id_grade_curricular = '5292' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), falta.id_nota_periodo_aluno;
Date: 2024-08-29 08:28:53 Duration: 10s466ms Bind query: yes
-
select coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, falta.id_nota_periodo_aluno, sum(falta.qtd_faltas)::int as falta from falta_aluno_disciplina falta inner join turma_disciplina td on td.id_disciplina = falta.id_disciplina inner join componente_curricular cc on cc.id_grade_curricular = td.id_grade_curricular and cc.id_disciplina = falta.id_disciplina where falta.id_aluno_matricula = '3323090' and td.id_turma = '240019409' and td.id_grade_curricular = '5290' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), falta.id_nota_periodo_aluno;
Date: 2024-08-29 04:29:30 Duration: 9s96ms Bind query: yes
-
select coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina) as id_disciplina, falta.id_nota_periodo_aluno, sum(falta.qtd_faltas)::int as falta from falta_aluno_disciplina falta inner join turma_disciplina td on td.id_disciplina = falta.id_disciplina inner join componente_curricular cc on cc.id_grade_curricular = td.id_grade_curricular and cc.id_disciplina = falta.id_disciplina where falta.id_aluno_matricula = '3326841' and td.id_turma = '240018969' and td.id_grade_curricular = '5291' group by coalesce(cc.id_componente_cedeu_carga_horaria, cc.id_disciplina), falta.id_nota_periodo_aluno;
Date: 2024-08-29 00:36:54 Duration: 5s949ms Bind query: yes
19 502ms 11s88ms 2s50ms 424 14m29s update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = ? and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit ?) where id_aluno_matricula = ? and id_turma = ? and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = ? and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Aug 29 07 33 1m1s 1s858ms 08 91 3m2s 2s7ms 09 48 1m23s 1s738ms 10 78 2m29s 1s917ms 11 66 2m19s 2s114ms 12 20 29s813ms 1s490ms 13 63 2m44s 2s609ms 14 25 58s674ms 2s346ms -
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '10266' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '1474921' and id_turma = '240003165' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '10266' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 13:31:36 Duration: 11s88ms Bind query: yes
-
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '108409' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '1462329' and id_turma = '240002556' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '108409' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 13:31:48 Duration: 9s440ms Bind query: yes
-
update falta_aluno_disciplina_diario set flg_justificada = true, id_motivo_falta_justificada = ( select atestado.id_motivo_falta_justificada from aluno_atestado atestado where atestado.id_cidadao = '1472647' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim order by atestado.data_fim desc, atestado.id_aluno_atestado desc limit 1) where id_aluno_matricula = '2928362' and id_turma = '240001379' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '1472647' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2024-08-29 14:10:35 Duration: 8s208ms Bind query: yes
20 614ms 8s706ms 1s927ms 49 1m34s 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 #20
Day Hour Count Duration Avg duration Aug 29 07 7 12s118ms 1s731ms 08 5 8s409ms 1s681ms 09 22 38s236ms 1s738ms 10 4 14s438ms 3s609ms 11 2 3s130ms 1s565ms 12 3 1s891ms 630ms 13 4 12s266ms 3s66ms 14 2 3s972ms 1s986ms -
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('Yasmym&Evelyn&Silva&Botelho') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2024-08-29 10:48:55 Duration: 8s706ms 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('enzo&gabriel&cascalho&moreira&simão') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2024-08-29 13:59:44 Duration: 5s208ms 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('joao&marcelo&cardoso') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2024-08-29 13:33:19 Duration: 4s551ms 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 597ms 1 597ms 597ms 597ms 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 -- não faz join com turma de propósito por causa de remanejamento! 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 $2 else $3 end when t.id_tipo_turma = $4 then $5 when t.id_tipo_turma = $6 then $7 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 = $8 left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = $9 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;Times Reported Time consuming bind #1
Day Hour Count Duration Avg duration Aug 29 13 1 597ms 597ms -
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 -- não faz join com turma de propósito por causa de remanejamento! 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 $2 else $3 end when t.id_tipo_turma = $4 then $5 when t.id_tipo_turma = $6 then $7 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 = $8 left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = $9 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: 2024-08-29 13:30:31 Duration: 597ms Database: postgres parameters: $1 = '1', $2 = '5', $3 = '1', $4 = '2', $5 = '2', $6 = '3', $7 = '4', $8 = '240002006', $9 = '1269'
-
Events
Log levels
Key values
- 6,524 Log entries
Events distribution
Key values
- 0 PANIC entries
- 0 FATAL entries
- 142 ERROR entries
- 0 WARNING entries
Most Frequent Errors/Events
Key values
- 97 Max number of times the same event was reported
- 142 Total events found
Rank Times reported Error 1 97 ERROR: duplicate key value violates unique constraint "..."
Times Reported Most Frequent Error / Event #1
Day Hour Count Aug 29 01 1 07 3 08 2 09 8 10 9 11 5 12 4 13 65 - ERROR: duplicate key value violates unique constraint "pk_bolsa_escola_remessa_aluno"
- ERROR: duplicate key value violates unique constraint "pk_quadro_horario_sabado_letivo"
- ERROR: duplicate key value violates unique constraint "iu_situacao_didatica_aula_dia_comp"
Detail: Key (id_bolsa_escola_remessa_resp, id_aluno)=(55734864, 1368395) already exists.
Statement: insert into bolsa_escola_remessa_aluno (id_aluno, id_bolsa_escola_remessa_resp) values ($1, $2)Date: 2024-08-29 01:08:16
Detail: Key (id_turma, id_serie, data, id_horario_turma)=(240016647, 2362, 2024-08-31, 7) already exists.
Statement: insert into quadro_horario_sabado_letivo (id_turma, id_serie, data, id_horario_turma, id_componente_curricular) values ($1, $2, $3, $4, $5)Date: 2024-08-29 07:46:04
Detail: Key (id_turma, id_serie, data, id_componente_curricular)=(240005601, 2012, 2024-08-27, 33709) already exists.
Statement: insert into situacao_didatica_aula (data_atualizacao, id_turma, id_serie, data, id_componente_curricular) values ($1, $2, $3, $4, $5)Date: 2024-08-29 07:54:39
2 39 LOG: could not receive data from client: Conexão fechada pela outra ponta
Times Reported Most Frequent Error / Event #2
Day Hour Count Aug 29 13 39 - LOG: could not receive data from client: Conexão fechada pela outra ponta
Date: 2024-08-29 13:30:00
3 2 ERROR: column "..." does not exist
Times Reported Most Frequent Error / Event #3
Day Hour Count Aug 29 14 2 - ERROR: column pm.id_unidade_localizacao does not exist at character 3337
- ERROR: column pm.id_unidade_localizacao does not exist at character 3386
Statement: with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4,5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= $1::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= $2::date order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1 ) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = $3 and uf.id_instituicao = $4 and ((t.id_diario_turma_situacao = $5 and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = $6) or (t.id_diario_turma_situacao <> $7 or t.id_diario_turma_situacao is null)) and s.id_curso = $8 and s.id_serie = $9 and uf.id_municipio = $10 and medoa.id_mec_escola_opcao_atributo = $11 and pm.id_serie = $12 and pm.data_matricula::date <= $13 and ( select amsh.id_aluno_matr_status in ($14,$15) from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= $16 order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1 ) is true and exists( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= $17::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end ) and t.id_turma is not null and pm.id_unidade_localizacao = $18 group by pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, uf.id_unidade_funcional, uf.codigo, uf.nome, meoa.nome having count(*) > 0 ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.alunos, t.turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = 10 left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = 10 left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct(case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct(case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct(case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma left join curso ct on ct.id_curso = t.id_curso where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in (select unnest(x.turmas) from pm as x) and ts.id_serie in (select x.id_serie from pm as x) ) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.id_serie
Date: 2024-08-29 14:09:20
Statement: with pm as ( select pm.id_unidade_funcional, pm.id_serie, s.id_curso, a.ano, count(*)::int as alunos, uf.codigo as codigo_unidade, uf.nome as unidade, meoa.nome as area, coalesce(turno.id_turno, 0) as id_turno, coalesce(turno.sigla, '-') as sigla, array_agg(distinct t.id_turma) as turmas from aluno_matricula pm inner join ano_semestre a on a.id_ano_semestre = pm.id_ano_semestre inner join serie s on s.id_serie = pm.id_serie inner join aluno_matr_status ams on pm.id_aluno_matr_status = ams.id_aluno_matr_status inner join unidade_funcional uf on uf.id_unidade_funcional = pm.id_unidade_funcional left join mec_escola_dados_opcao_atributo medoa on medoa.id_unidade_funcional = uf.id_unidade_funcional and medoa.id_mec_escola_opcao_atributo in (4,5) left join mec_escola_opcao_atributo meoa on meoa.id_mec_escola_opcao_atributo = medoa.id_mec_escola_opcao_atributo left join aluno_matr_turma amt on pm.id_aluno_matricula = amt.id_aluno_matricula and amt.id_tipo_enturmacao = 1 and amt.data_enturmacao::date <= $1::date left join lateral ( select ra.id_aluno_matricula, ra.id_remanejamento_aluno, ra.id_turma_origem, ra.data_enturmacao_origem, ra.id_diario_turma_situacao_enturmacao from remanejamento_aluno ra where ra.id_aluno_matricula = pm.id_aluno_matricula and ra.data_enturmacao_origem::date <= $2 order by ra.data_enturmacao_origem desc, ra.id_remanejamento_aluno desc limit 1 ) as remanejamento on remanejamento.id_aluno_matricula = pm.id_aluno_matricula and amt.id_turma is null left join turma t on t.id_turma = coalesce(amt.id_turma, remanejamento.id_turma_origem) left join turno on turno.id_turno = t.id_turno left join curso ct on ct.id_curso = t.id_curso left join curso_calendario cc on cc.id_curso = coalesce(ct.id_curso, pm.id_curso) and cc.ano = a.ano and cc.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ct.flg_calendario_diferenciado left join escola_calendario ec on ec.id_unidade_funcional = coalesce(t.id_unidade_funcional, pm.id_unidade_funcional) and ec.ano = a.ano inner join calendario cal on cal.id_calendario = coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) where a.ano = $3 and uf.id_instituicao = $4 and ((t.id_diario_turma_situacao = $5 and coalesce(amt.id_diario_turma_situacao_enturmacao, remanejamento.id_diario_turma_situacao_enturmacao) = $6) or (t.id_diario_turma_situacao <> $7 or t.id_diario_turma_situacao is null)) and s.id_curso = $8 and s.id_serie = $9 and uf.id_municipio = $10 and medoa.id_mec_escola_opcao_atributo = $11 and pm.data_matricula::date <= $12 and ( select amsh.id_aluno_matr_status in ($13,$14) from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= $15 order by amsh.data_ocorrencia desc, amsh.id_aluno_matr_status_hist desc limit 1 ) is true and exists( select null from calendario_periodo cpf where cpf.id_calendario = cal.id_calendario and cpf.data_final::date >= $16::date and case when a.semestre = 1 then cpf.ordem <= 2 when a.semestre = 2 then cpf.ordem >= 2 else true end ) and t.id_turma is not null and pm.id_unidade_localizacao = $17 group by pm.id_unidade_funcional, pm.id_serie, coalesce(turno.id_turno, 0), coalesce(turno.sigla, '-'), s.id_curso, a.ano, uf.codigo, uf.nome, meoa.nome order by pm.id_unidade_funcional, coalesce(turno.id_turno, 0) ) select pm.id_unidade_funcional, pm.codigo_unidade, pm.unidade, pm.area, mae.nome as coordenadoria, localidade.nome as localidade, ee.id_ensino_etapa, pm.id_serie, pm.id_curso, pm.id_turno, pm.sigla as turno, pm.alunos::int, t.turmas as turmas, (sum(pm.alunos) over (partition by pm.id_serie))::int as total_alunos_serie, (sum(t.turmas) over (partition by pm.id_serie))::int as total_turmas_serie, (sum(t.multi) over (partition by pm.id_serie))::int as total_multi_serie, (sum(pm.alunos) over (partition by pm.id_unidade_funcional))::int as total_alunos_escola, t.turmas_escola as total_turmas_escola, t.multi_escola as total_multi_escola, (sum(pm.alunos) over (partition by mae.id_unidade_funcional))::int as total_alunos_coordenadoria, (sum(pm.alunos) over (partition by localidade.id_unidade_funcional))::int as total_alunos_localidade from pm inner join curso c on c.id_curso = pm.id_curso inner join modalidade m on m.id_modalidade = c.id_modalidade inner join ensino_etapa ee on ee.id_ensino_etapa = m.id_ensino_etapa left join hierarquia_unidade_funcional huf on huf.id_unidade_funcional_filha = pm.id_unidade_funcional and huf.id_assunto_hierarquia_unidade = $18 left join unidade_funcional mae on mae.id_unidade_funcional = huf.id_unidade_funcional_mae left join hierarquia_unidade_funcional hul on hul.id_unidade_funcional_filha = pm.id_unidade_funcional and hul.id_assunto_hierarquia_unidade = $19 left join unidade_funcional localidade on localidade.id_unidade_funcional = hul.id_unidade_funcional_mae left join lateral ( select count(distinct t.id_turma)::int as turmas_escola, count(distinct(case when t.flg_multiseriada or t.flg_multietapa then t.id_turma else null end))::int as multi_escola, count(distinct(case when ts.id_serie = pm.id_serie then ts.id_turma else null end))::int as turmas, count(distinct(case when t.flg_multiseriada or t.flg_multietapa and ts.id_serie = pm.id_serie then t.id_turma else null end))::int as multi from turma t inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre inner join ambiente a on t.id_ambiente = a.id_ambiente inner join turma_serie ts on ts.id_turma = t.id_turma where t.id_unidade_funcional = pm.id_unidade_funcional and ano.ano = pm.ano and t.id_turma in (select unnest(x.turmas) from pm as x) and ts.id_serie in (select x.id_serie from pm as x) and t.id_turno = pm.id_turno ) t on true where (t.turmas > 0 or pm.alunos > 0) order by pm.unidade, pm.codigo_unidade, ee.ordem, pm.sigla, pm.id_serie
Date: 2024-08-29 14:11:51
4 2 ERROR: value too long for type character varying(...)
Times Reported Most Frequent Error / Event #4
Day Hour Count Aug 29 09 2 - ERROR: value too long for type character varying(75)
Statement: insert into banner_portal (id_funcionalidade_site_portal, id_imagem, id_registro, titulo, id_instituicao) values ($1, $2, $3, $4, $5)
Date: 2024-08-29 09:01:57
5 1 ERROR: canceling statement due to statement timeout
Times Reported Most Frequent Error / Event #5
Day Hour Count Aug 29 12 1 - ERROR: canceling statement due to statement timeout
Statement: 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: 2024-08-29 12:58:50
6 1 ERROR: null value in column "..." of relation "..." violates not-null constraint
Times Reported Most Frequent Error / Event #6
Day Hour Count Aug 29 01 1 - ERROR: null value in column "flg_sexo_masculino" of relation "consulta_situacao_nutricional" violates not-null constraint
Detail: Failing row contains (3, 606849, 33026610, E. M. Mario Buscema, 2022, 1806282, JOSÉ FERNANDO BORGES SILVA JUNIOR, null, 2017-04-30, 2022-09-15, 5 years 4 mons 15 days, 18.25, 115.00, null, null, null, null, null, null, null).
Statement: insert into acompanhamento.consulta_situacao_nutricional ( id_programa_acompanhamento, id_unidade_funcional, codigo_escola, nome_escola, ano, id_cidadao, nome, flg_sexo_masculino, nascimento_data, data_acompanhamento, idade, peso, altura, id_status_altura_idade_acompanhamento, id_percentil_altura_idade, id_status_peso_idade_acompanhamento, id_percentil_peso_idade, id_status_peso_altura_acompanhamento, id_percentil_peso_altura, id_status_classificacao_geral ) select r.id_programa_acompanhamento, u.id_unidade_funcional, u.codigo, u.nome, a.ano, c.id_cidadao, c.nome, upper(c.sexo) = 'M' as flg_sexo_masculino, c.nascimento_data::date as nascimento_data, r.data_acompanhamento, idade, r.peso, r.altura, altura.id_status_altura_idade_acompanhamento, altura.id_percentil, peso.id_status_peso_idade_acompanhamento, peso.id_percentil, x.id_status_peso_altura_acompanhamento, x.id_percentil, g.id_status_classificacao_geral from aluno_matricula am inner join cidadao c on c.id_cidadao = am.id_cidadao inner join unidade_funcional u on u.id_unidade_funcional = am.id_unidade_funcional inner join ano_semestre a on a.id_ano_semestre = am.id_ano_semestre inner join acompanhamento.registro_acompanhamento r on r.id_cidadao = c.id_cidadao and r.id_tipo_acompanhamento = 1 and r.flg_ultimo_ano and extract(year from r.data_acompanhamento) = a.ano cross join age(r.data_acompanhamento, c.nascimento_data) as idade cross join acompanhamento.get_status_altura_idade(idade, upper(c.sexo) = 'M', r.altura) as altura cross join acompanhamento.get_status_peso_idade(idade, upper(c.sexo) = 'M', r.peso) as peso cross join acompanhamento.get_status_peso_altura(idade, upper(c.sexo) = 'M', r.altura, r.peso) as x cross join acompanhamento.get_status_classificacao_geral(idade, upper(c.sexo) = 'M', r.altura, r.peso) as g where am.id_aluno_matr_status in (1,2,7)Date: 2024-08-29 01:03:19