-
Global information
- Generated on Mon Aug 14 17:27:40 2023
- Log file: /var/tmp/auge/postgresql-13-main.log
- Parsed 111,626 log entries in 31s
- Log start from 2023-08-13 00:09:19 to 2023-08-14 17:25:02
-
Overview
Global Stats
- 1,277 Number of unique normalized queries
- 35,516 Number of queries
- 3h3m53s Total query duration
- 2023-08-14 09:35:02 First query
- 2023-08-14 17:25:02 Last query
- 928 queries/s at 2023-08-14 09:35:03 Query peak
- 3h3m53s Total query duration
- 0ms Prepare/parse total duration
- 32s13ms Bind total duration
- 3h3m21s Execute total duration
- 41 Number of events
- 6 Number of unique normalized events
- 23 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
- 35,516 Average queries per session
- 3h3m53s 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
- 928 queries/s Query Peak
- 2023-08-14 09:35:03 Date
SELECT Traffic
Key values
- 309 queries/s Query Peak
- 2023-08-14 09:35:03 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 96 queries/s Query Peak
- 2023-08-14 09:35:03 Date
Queries duration
Key values
- 3h3m53s 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 13 00 0 0ms 0ms 0ms 0ms 0ms 0ms 03 0 0ms 0ms 0ms 0ms 0ms 0ms 22 0 0ms 0ms 0ms 0ms 0ms 0ms 23 0 0ms 0ms 0ms 0ms 0ms 0ms Aug 14 00 0 0ms 0ms 0ms 0ms 0ms 0ms 03 0 0ms 0ms 0ms 0ms 0ms 0ms 08 0 0ms 0ms 0ms 0ms 0ms 0ms 09 20,697 0ms 2m17s 44ms 1m5s 2m5s 3m35s 10 2,753 100ms 2m14s 774ms 1m9s 2m13s 2m54s 11 1,502 100ms 1m57s 774ms 35s884ms 53s205ms 2m38s 12 659 100ms 23s144ms 785ms 15s810ms 30s892ms 57s297ms 13 2,464 100ms 2m7s 677ms 42s788ms 2m38s 3m36s 14 3,204 100ms 2m6s 473ms 51s385ms 54s526ms 2m30s 15 1,847 100ms 1m49s 756ms 43s648ms 1m3s 2m2s 16 2,087 100ms 1m57s 738ms 42s264ms 1m3s 2m39s 17 303 100ms 2s624ms 489ms 7s886ms 8s925ms 9s656ms Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Aug 13 00 0 0 0ms 0ms 0ms 0ms 03 0 0 0ms 0ms 0ms 0ms 22 0 0 0ms 0ms 0ms 0ms 23 0 0 0ms 0ms 0ms 0ms Aug 14 00 0 0 0ms 0ms 0ms 0ms 03 0 0 0ms 0ms 0ms 0ms 08 0 0 0ms 0ms 0ms 0ms 09 9,441 0 92ms 44s988ms 1m5s 3m34s 10 2,688 0 762ms 42s969ms 1m9s 2m16s 11 1,455 0 783ms 29s129ms 35s884ms 1m11s 12 635 0 802ms 10s64ms 14s785ms 42s550ms 13 2,370 0 680ms 31s460ms 41s972ms 3m9s 14 3,150 0 422ms 32s194ms 44s329ms 54s526ms 15 1,798 0 757ms 30s333ms 43s648ms 1m6s 16 2,054 0 737ms 29s607ms 42s99ms 2m24s 17 301 0 488ms 6s658ms 7s886ms 9s656ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Aug 13 00 0 0 0 0 0ms 0ms 0ms 0ms 03 0 0 0 0 0ms 0ms 0ms 0ms 22 0 0 0 0 0ms 0ms 0ms 0ms 23 0 0 0 0 0ms 0ms 0ms 0ms Aug 14 00 0 0 0 0 0ms 0ms 0ms 0ms 03 0 0 0 0 0ms 0ms 0ms 0ms 08 0 0 0 0 0ms 0ms 0ms 0ms 09 629 274 71 0 14ms 141ms 481ms 3s722ms 10 4 49 2 0 512ms 346ms 616ms 1s655ms 11 2 40 2 0 425ms 142ms 441ms 1s726ms 12 5 18 0 0 336ms 0ms 271ms 1s24ms 13 3 86 0 0 589ms 709ms 1s663ms 3s131ms 14 2 44 1 0 866ms 353ms 978ms 3s60ms 15 1 35 6 0 751ms 301ms 872ms 3s44ms 16 1 29 2 0 793ms 0ms 620ms 2s437ms 17 0 2 0 0 666ms 0ms 0ms 130ms Day Hour Prepare Bind Bind/Prepare Percentage of prepare Aug 13 00 0 0 0.00 0.00% 03 0 0 0.00 0.00% 22 0 0 0.00 0.00% 23 0 0 0.00 0.00% Aug 14 00 0 0 0.00 0.00% 03 0 0 0.00 0.00% 08 0 0 0.00 0.00% 09 0 20,665 20,665.00 0.00% 10 0 2,753 2,753.00 0.00% 11 0 1,502 1,502.00 0.00% 12 0 659 659.00 0.00% 13 0 2,464 2,464.00 0.00% 14 0 3,204 3,204.00 0.00% 15 0 1,847 1,847.00 0.00% 16 0 2,087 2,087.00 0.00% 17 0 303 303.00 0.00% Day Hour Count Average / Second Aug 13 00 0 0.00/s 03 0 0.00/s 22 0 0.00/s 23 0 0.00/s Aug 14 00 0 0.00/s 03 0 0.00/s 08 0 0.00/s 09 0 0.00/s 10 0 0.00/s 11 0 0.00/s 12 0 0.00/s 13 0 0.00/s 14 0 0.00/s 15 0 0.00/s 16 0 0.00/s 17 0 0.00/s Day Hour Count Average Duration Average idle time Aug 13 00 0 0ms 0ms 03 0 0ms 0ms 22 0 0ms 0ms 23 0 0ms 0ms Aug 14 00 0 0ms 0ms 03 0 0ms 0ms 08 0 0ms 0ms 09 0 0ms 0ms 10 0 0ms 0ms 11 0 0ms 0ms 12 0 0ms 0ms 13 0 0ms 0ms 14 0 0ms 0ms 15 0 0ms 0ms 16 0 0ms 0ms 17 0 0ms 0ms -
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 13 00 0 0s 0s 0s 03 0 0s 0s 0s 22 0 0s 0s 0s 23 0 0s 0s 0s Aug 14 00 0 0s 0s 0s 03 0 0s 0s 0s 08 0 0s 0s 0s 09 0 0s 0s 0s 10 0 0s 0s 0s 11 0 0s 0s 0s 12 0 0s 0s 0s 13 0 0s 0s 0s 14 0 0s 0s 0s 15 0 0s 0s 0s 16 0 0s 0s 0s 17 0 0s 0s 0s Day Hour Added Removed Recycled Synced files Longest sync Average sync Aug 13 00 0 0 0 0 0s 0s 03 0 0 0 0 0s 0s 22 0 0 0 0 0s 0s 23 0 0 0 0 0s 0s Aug 14 00 0 0 0 0 0s 0s 03 0 0 0 0 0s 0s 08 0 0 0 0 0s 0s 09 0 0 0 0 0s 0s 10 0 0 0 0 0s 0s 11 0 0 0 0 0s 0s 12 0 0 0 0 0s 0s 13 0 0 0 0 0s 0s 14 0 0 0 0 0s 0s 15 0 0 0 0 0s 0s 16 0 0 0 0 0s 0s 17 0 0 0 0 0s 0s Day Hour Count Avg time (sec) Aug 13 00 0 0s 03 0 0s 22 0 0s 23 0 0s Aug 14 00 0 0s 03 0 0s 08 0 0s 09 0 0s 10 0 0s 11 0 0s 12 0 0s 13 0 0s 14 0 0s 15 0 0s 16 0 0s 17 0 0s Day Hour Mean distance Mean estimate Aug 13 00 0.00 kB 0.00 kB 03 0.00 kB 0.00 kB 22 0.00 kB 0.00 kB 23 0.00 kB 0.00 kB Aug 14 00 0.00 kB 0.00 kB 03 0.00 kB 0.00 kB 08 0.00 kB 0.00 kB 09 0.00 kB 0.00 kB 10 0.00 kB 0.00 kB 11 0.00 kB 0.00 kB 12 0.00 kB 0.00 kB 13 0.00 kB 0.00 kB 14 0.00 kB 0.00 kB 15 0.00 kB 0.00 kB 16 0.00 kB 0.00 kB 17 0.00 kB 0.00 kB -
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 13 00 0 0 0 03 0 0 0 22 0 0 0 23 0 0 0 Aug 14 00 0 0 0 03 0 0 0 08 0 0 0 09 0 0 0 10 0 0 0 11 0 0 0 12 0 0 0 13 0 0 0 14 0 0 0 15 0 0 0 16 0 0 0 17 0 0 0 -
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 13 00 0 0 03 0 0 22 0 0 23 0 0 Aug 14 00 0 0 03 0 0 08 0 0 09 0 0 10 0 0 11 0 0 12 0 0 13 0 0 14 0 0 15 0 0 16 0 0 17 0 0 - 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
- 23,892 Total read queries
- 1,741 Total write queries
Queries by database
Key values
- unknown Main database
- 35,516 Requests
- 3h3m21s (unknown)
- Main time consuming database
Queries by user
Key values
- unknown Main user
- 35,516 Requests
User Request type Count Duration unknown Total 35,516 3h3m21s cte 53 3m49s ddl 2 0ms delete 84 11s499ms insert 647 5s666ms others 9,851 0ms select 23,892 2h55m37s tcl 378 0ms update 577 3m22s Duration by user
Key values
- 3h3m21s (unknown) Main time consuming user
User Request type Count Duration unknown Total 35,516 3h3m21s cte 53 3m49s ddl 2 0ms delete 84 11s499ms insert 647 5s666ms others 9,851 0ms select 23,892 2h55m37s tcl 378 0ms update 577 3m22s Queries by host
Key values
- unknown Main host
- 35,516 Requests
- 3h3m21s (unknown)
- Main time consuming host
Queries by application
Key values
- unknown Main application
- 35,516 Requests
- 3h3m21s (unknown)
- Main time consuming application
Number of cancelled queries
Key values
- 1 per second Cancelled query Peak
- 2023-08-13 22:46:58 Date
Number of cancelled queries (5 minutes period)
NO DATASET
-
Top Queries
Histogram of query times
Key values
- 12,542 100-500ms duration
Slowest individual queries
Rank Duration Query 1 2m17s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230006665' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 09:42:04 - Bind query: yes ]
2 2m14s select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '91' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' and unidade_funcional.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '91' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' and unidade_funcional.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') order by escola, aluno;[ Date: 2023-08-14 10:14:57 - Bind query: yes ]
3 2m7s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230007753' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 13:57:09 - Bind query: yes ]
4 2m6s 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 <= '2023-08-14'::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 <= '2023-08-14'::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 = '2023' and uf.id_instituicao = '92' 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 <= '2023-08-14' and (ams.flg_status_ativo or ( select aluno_matr_status.flg_status_ativo from aluno_matr_status_hist amsh inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = amsh.id_aluno_matr_status where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2023-08-14' order by 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 >= '2023-08-14'::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 '606178' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75') 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: 2023-08-14 14:52:50 - Bind query: yes ]
5 2m5s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230007752' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 13:54:39 - Bind query: yes ]
6 2m4s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008795' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 13:59:34 - Bind query: yes ]
7 1m58s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008570' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 10:55:56 - Bind query: yes ]
8 1m57s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008570' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 11:02:11 - Bind query: yes ]
9 1m57s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008652' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 16:36:21 - Bind query: yes ]
10 1m56s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008653' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 16:38:38 - Bind query: yes ]
11 1m49s select turma.id_turma, serie.id_serie, cc.id_disciplina, case when ano.semestre is null or ano.semestre = 1 then nota_periodo_aluno.id_nota_periodo_aluno when ano.semestre = 2 then nota_periodo_aluno.id_nota_periodo_aluno + 2 end as bimestre, uf.codigo as codigo_escola, ( select opcao_atributo.nome from mec_escola_dados_opcao_atributo dados_opcao_atributo inner join mec_escola_opcao_atributo opcao_atributo on opcao_atributo.id_mec_escola_opcao_atributo = dados_opcao_atributo.id_mec_escola_opcao_atributo where opcao_atributo.id_mec_escola_atributo = 2 and dados_opcao_atributo.id_unidade_funcional = uf.id_unidade_funcional) as zona_escola, uf.nome as nome_escola, curso.sigla as curso, turma.codigo as turma, serie.sigla as serie, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as enturmados, media_disciplina.alunos as alunos_media_disciplina, media_disciplina.media as media_disciplina, media_geral.alunos as alunos_media_geral, media_geral.media as media_geral from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_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 = turma.id_curso cross join nota_periodo_aluno inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas is true left join lateral ( select count(nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_disciplina = cc.id_disciplina and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_disciplina on true left join lateral ( select count(distinct nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_geral on true where uf.id_instituicao = '92' and uf.id_municipio = '260410' and turma.id_turma_status in ('1', '2') and ano.ano = '2023' and ((ano.semestre is null and nota_periodo_aluno.id_nota_periodo_aluno <= 4) or (ano.semestre is not null and nota_periodo_aluno.id_nota_periodo_aluno <= 2)) and (turma.id_unidade_funcional = '606178' or turma.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75')) order by nome_escola, curso, turma, turma.id_turma, serie, serie.id_serie;[ Date: 2023-08-14 15:00:53 - Bind query: yes ]
12 1m36s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008761' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 10:45:17 - Bind query: yes ]
13 1m35s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008674' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 10:40:53 - Bind query: yes ]
14 1m24s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008553' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 09:49:40 - Bind query: yes ]
15 1m24s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008673' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 10:09:02 - Bind query: yes ]
16 48s247ms select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' order by escola, aluno;[ Date: 2023-08-14 15:54:04 - Bind query: yes ]
17 38s531ms select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' order by escola, aluno;[ Date: 2023-08-14 16:28:56 - Bind query: yes ]
18 37s364ms 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230006665' and cc.id_disciplina = '1820' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 09:42:41 - Bind query: yes ]
19 36s870ms 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 = '2023') and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = '72')) 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 ct.telefone_recado_para is not null then '(' || ct.telefone_ddd || ') ' || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else '(' || 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 = '72' and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = '2023' and uf.id_unidade_funcional in ( select '605703' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '605703' and id_assunto_hierarquia_unidade = '64') order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;[ Date: 2023-08-14 10:25:55 - Bind query: yes ]
20 32s779ms 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230008551' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;[ Date: 2023-08-14 09:47:46 - Bind query: yes ]
Time consuming queries (N)
Rank Total duration Times executed Min duration Max duration Avg duration Query 1 36m1s 108 108ms 2m17s 20s11ms 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = ? and cc.id_disciplina = ? order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Aug 14 09 9 5m58s 39s883ms 10 18 9m40s 32s263ms 11 21 4m44s 13s533ms 12 18 1m49s 6s61ms 13 9 7m19s 48s882ms 15 18 1m31s 5s94ms 16 15 4m56s 19s771ms -
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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230006665' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;
Date: 2023-08-14 09:42:04 Duration: 2m17s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230007753' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;
Date: 2023-08-14 13:57:09 Duration: 2m7s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230007752' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;
Date: 2023-08-14 13:54:39 Duration: 2m5s Bind query: yes
2 35m51s 940 1s487ms 5s128ms 2s288ms select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = ? and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, ?) < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = ?), ?) = ?;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Aug 14 09 48 1m48s 2s270ms 10 120 4m52s 2s435ms 11 120 4m20s 2s168ms 12 120 3m52s 1s936ms 13 120 4m44s 2s374ms 14 120 5m3s 2s528ms 15 120 4m35s 2s297ms 16 120 4m49s 2s408ms 17 52 1m44s 2s9ms -
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 10:52:05 Duration: 5s128ms Bind query: yes
-
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 16:43:04 Duration: 4s692ms Bind query: yes
-
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 10:52:04 Duration: 4s642ms Bind query: yes
3 18m59s 313 107ms 9s431ms 3s639ms 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 #3
Day Hour Count Duration Avg duration Aug 14 09 24 1m37s 4s58ms 10 69 3m30s 3s54ms 11 43 2m28s 3s461ms 12 1 4s484ms 4s484ms 13 24 1m39s 4s137ms 14 46 3m8s 4s89ms 15 56 3m31s 3s769ms 16 50 2m59s 3s580ms -
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 = '66' 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 = '66' 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: 2023-08-14 13:59:49 Duration: 9s431ms 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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: 2023-08-14 14:51:32 Duration: 6s598ms 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 100;
Date: 2023-08-14 10:14:02 Duration: 6s463ms Bind query: yes
4 9m5s 313 134ms 3s734ms 1s741ms 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))::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 extract(year from f.data) = m.ano and extract(month from f.data) = m.id_mes and mdp.id_motivo_dispensa_periodo isnull and f.data <= coalesce(a.data_remanejamento - 1, a.data_primeira_saida, f.data) and rfgd.flg_concluido is true), ?)::int as faltas_mes, coalesce(( select sum(coalesce(falta_justificada, ?) + coalesce(falta_nao_justificada, ?)) from falta_anterior_aluno_globalizada fa where fa.id_aluno_matricula = a.id_aluno_matricula), ?)::int as faltas_anteriores from aluno_turma_diario_impresso a cross join ( select distinct min(tp.id_nota_periodo_aluno) as id_nota_periodo_aluno, extract(year from cpd.data)::int as ano, extract(month from cpd.data)::int as id_mes from calendario_periodo_data cpd inner join calendario_periodo cp on cp.id_calendario = cpd.id_calendario and cp.ordem = cpd.bimestre inner join dia_semana d on d.dia_semana = cpd.dia_semana inner join turma_periodo tp on cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim and tp.id_turma = ? left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = ? and cd.id_motivo_dia_nao_letivo isnull and (d.dia_semana between ? and ? or cd.id_motivo_dia_letivo_extra notnull) group by extract(year from cpd.data), extract(month from cpd.data)) m left join aluno_matr_dispensa_periodo amdp on amdp.id_aluno_matricula = a.id_aluno_matricula left join motivo_dispensa_periodo mdp on mdp.id_motivo_dispensa_periodo = amdp.id_motivo_dispensa_periodo and m.id_nota_periodo_aluno = any (mdp.periodos)) t order by id_aluno_matricula, ano, id_mes;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Aug 14 09 31 57s278ms 1s847ms 10 58 1m8s 1s176ms 11 28 31s811ms 1s136ms 12 6 7s569ms 1s261ms 13 64 2m4s 1s939ms 14 52 1m51s 2s144ms 15 39 1m15s 1s924ms 16 35 1m9s 1s987ms -
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))::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 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 = '230002972' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '704' 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: 2023-08-14 14:30:55 Duration: 3s734ms 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))::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 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 = '230002295' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '661' 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: 2023-08-14 16:16:21 Duration: 3s664ms 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))::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 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 = '230001816' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '705' 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: 2023-08-14 14:28:06 Duration: 3s447ms Bind query: yes
5 9m3s 417 135ms 3s973ms 1s303ms 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 #5
Day Hour Count Duration Avg duration Aug 14 09 28 28s705ms 1s25ms 10 68 1m37s 1s428ms 11 7 4s905ms 700ms 13 21 26s629ms 1s268ms 14 52 1m10s 1s354ms 15 58 1m19s 1s363ms 16 181 3m54s 1s298ms 17 2 1s828ms 914ms -
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('vitória&letícia&de&souza&duarte') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 10:38:17 Duration: 3s973ms 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('GEOVANA&LARISSA&PEREIRA&GOMES') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 15:13:04 Duration: 3s875ms 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('KEMILLY&GALLIZA&DO&ESPIRITO&SANTO') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 16:28:03 Duration: 3s566ms Bind query: yes
6 7m45s 879 100ms 5s401ms 529ms 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 #6
Day Hour Count Duration Avg duration Aug 14 09 98 40s889ms 417ms 10 163 1m7s 411ms 11 164 1m24s 515ms 12 72 38s346ms 532ms 13 87 1m8s 786ms 14 95 1m3s 664ms 15 106 1m1s 579ms 16 58 32s155ms 554ms 17 36 9s367ms 260ms -
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 = '3' and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo where t.id_turma in ('230003670', '230003671', '230003672', '230003673', '230003674', '230003675', '230003676', '230003677', '230003678', '230003679', '230003680', '230003681', '230003682', '230003683', '230003684', '230003685', '230003686', '230003687', '230003688', '230003690', '230003691', '230003692', '230003693', '230003694', '230003695', '230003697', '230003698', '230003699', '230003906') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('3', 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: 2023-08-14 15:59:27 Duration: 5s401ms 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 = '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 ('230003670', '230003671', '230003672', '230003673', '230003674', '230003675', '230003676', '230003677', '230003678', '230003679', '230003680', '230003681', '230003682', '230003683', '230003684', '230003685', '230003686', '230003687', '230003688', '230003690', '230003691', '230003692', '230003693', '230003694', '230003695', '230003697', '230003698', '230003699', '230003906') 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: 2023-08-14 15:59:32 Duration: 4s804ms 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 = '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 ('230002806', '230002807', '230002808', '230002809', '230002810', '230002811', '230002812', '230002813', '230002814', '230002815', '230002816', '230002817', '230002818', '230002819', '230002820', '230002821', '230002822', '230002823') 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: 2023-08-14 13:38:00 Duration: 4s82ms Bind query: yes
7 6m37s 2,926 100ms 883ms 135ms 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 notnull as flg_planejado, 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, ?) 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 #7
Day Hour Count Duration Avg duration Aug 14 09 241 22s124ms 91ms 10 703 1m37s 138ms 11 200 26s351ms 131ms 12 50 7s272ms 145ms 13 365 52s90ms 142ms 14 552 1m20s 145ms 15 406 53s233ms 131ms 16 383 55s441ms 144ms 17 26 3s74ms 118ms -
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 notnull as flg_planejado, 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 = '6615425' 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, '2147483647') and ts.id_turma = '230004956' and ts.id_serie = '2000' and cc.id_disciplina = '1834' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 14:51:54 Duration: 883ms 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 notnull as flg_planejado, 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 = '185078' 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, '2147483647') and ts.id_turma = '230003307' and ts.id_serie = '2014' and cc.id_disciplina = '1873' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 13:59:42 Duration: 708ms 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 notnull as flg_planejado, 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 = '185776' 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, '2147483647') and ts.id_turma = '230007539' and ts.id_serie = '1982' and cc.id_disciplina = '1836' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 12:09:00 Duration: 681ms Bind query: yes
8 4m26s 470 103ms 2s271ms 566ms 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) 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 (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Aug 14 09 37 28s609ms 773ms 10 77 44s18ms 571ms 11 128 1m12s 569ms 12 44 18s265ms 415ms 13 37 28s334ms 765ms 14 33 9s516ms 288ms 15 66 36s523ms 553ms 16 32 20s421ms 638ms 17 16 7s468ms 466ms -
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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('3', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230005505', '230005506', '230005507', '230005508', '230005509', '230005510', '230005511', '230005512', '230005513', '230005514') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 09:42:03 Duration: 2s271ms 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('3', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230005109', '230005110', '230005113', '230005120', '230005121', '230005123', '230005124', '230005125', '230005126', '230005127', '230005128', '230005130') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 11:19:02 Duration: 2s11ms 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('4', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230000379', '230000380', '230000382', '230000383', '230000384', '230000385', '230000386', '230000387', '230000388', '230004229') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 15:45:51 Duration: 1s448ms Bind query: yes
9 4m13s 1,770 100ms 372ms 143ms select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = ? and d.id_disciplina = ? and asem.ano = ?) and turma.id_unidade_funcional = ? union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = ? and ap.id_disciplina = ? and asem.ano = ?) and turma.id_unidade_funcional = ? order by nome;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Aug 14 09 104 15s425ms 148ms 10 58 7s407ms 127ms 13 344 1m 175ms 14 906 1m59s 131ms 15 3 306ms 102ms 16 355 50s494ms 142ms -
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '105' and d.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '345' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '105' and ap.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '345' order by nome;
Date: 2023-08-14 13:59:42 Duration: 372ms Bind query: yes
-
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '107' and d.id_disciplina = '8' and asem.ano = '2023') and turma.id_unidade_funcional = '350' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '107' and ap.id_disciplina = '8' and asem.ano = '2023') and turma.id_unidade_funcional = '350' order by nome;
Date: 2023-08-14 09:40:05 Duration: 370ms Bind query: yes
-
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '105' and d.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '372' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '105' and ap.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '372' order by nome;
Date: 2023-08-14 13:59:42 Duration: 365ms Bind query: yes
10 4m3s 1,621 100ms 440ms 150ms select a.id_album_portal, a.nome, i.identificador AS "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = ? and astatus.id_status_portal = ? where a.flg_exibir_album_portal = true and a.id_instituicao = ? order by astatus.data_publicacao desc nulls last, a.nome limit ?;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Aug 14 09 107 15s59ms 140ms 10 306 44s443ms 145ms 11 163 23s72ms 141ms 12 117 14s887ms 127ms 13 286 48s440ms 169ms 14 219 36s107ms 164ms 15 227 34s984ms 154ms 16 149 21s657ms 145ms 17 47 5s305ms 112ms -
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 440ms Bind query: yes
-
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 438ms Bind query: yes
-
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 433ms Bind query: yes
11 3m35s 70 118ms 6s274ms 3s84ms 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 ?;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Aug 14 09 3 10s961ms 3s653ms 10 20 52s663ms 2s633ms 11 12 35s145ms 2s928ms 13 7 28s524ms 4s74ms 14 8 23s473ms 2s934ms 15 10 31s711ms 3s171ms 16 10 33s459ms 3s345ms -
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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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;
Date: 2023-08-14 10:43:03 Duration: 6s274ms 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 = '66' 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 = '66' 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;
Date: 2023-08-14 10:23:03 Duration: 5s506ms 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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;
Date: 2023-08-14 11:05:05 Duration: 5s190ms Bind query: yes
12 3m28s 69 112ms 5s589ms 3s20ms select count(*) as contagem from ( 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) tabela;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Aug 14 09 3 11s401ms 3s800ms 10 20 49s275ms 2s463ms 11 11 32s483ms 2s953ms 13 7 26s279ms 3s754ms 14 8 25s20ms 3s127ms 15 10 32s224ms 3s222ms 16 10 31s698ms 3s169ms -
select count(*) as contagem from ( 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1980' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1980' 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) tabela;
Date: 2023-08-14 14:20:29 Duration: 5s589ms Bind query: yes
-
select count(*) as contagem from ( 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1980' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1980' 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) tabela;
Date: 2023-08-14 15:02:37 Duration: 4s577ms Bind query: yes
-
select count(*) as contagem from ( 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 = '66' 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 = '66' 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) tabela;
Date: 2023-08-14 11:45:47 Duration: 4s521ms Bind query: yes
13 2m56s 7 14s40ms 48s247ms 25s158ms select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and unidade_funcional.id_municipio = ? union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and unidade_funcional.id_municipio = ? order by escola, aluno;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Aug 14 12 1 23s144ms 23s144ms 14 2 33s532ms 16s766ms 15 3 1m20s 26s966ms 16 1 38s531ms 38s531ms -
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' order by escola, aluno;
Date: 2023-08-14 15:54:04 Duration: 48s247ms Bind query: yes
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' order by escola, aluno;
Date: 2023-08-14 16:28:56 Duration: 38s531ms Bind query: yes
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '82' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '60' and unidade_funcional.id_unidade_funcional in ( select '458' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '458' and id_assunto_hierarquia_unidade = '10') and unidade_funcional.id_municipio = '310670' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '82' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '60' and unidade_funcional.id_unidade_funcional in ( select '458' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '458' and id_assunto_hierarquia_unidade = '10') and unidade_funcional.id_municipio = '310670' order by escola, aluno;
Date: 2023-08-14 12:58:53 Duration: 23s144ms Bind query: yes
14 2m34s 421 101ms 3s859ms 367ms select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = ? as flg_atribuicao_componente, c.nome as professor, greatest (?, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = ? and ts.id_serie = ? and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Aug 14 09 39 10s581ms 271ms 10 89 40s128ms 450ms 11 18 7s37ms 390ms 12 10 7s748ms 774ms 13 89 21s536ms 241ms 14 98 30s51ms 306ms 15 44 18s864ms 428ms 16 34 18s716ms 550ms -
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230007847' and ts.id_serie = '1970' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 15:12:04 Duration: 3s859ms Bind query: yes
-
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230009114' and ts.id_serie = '1971' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 16:40:41 Duration: 3s470ms Bind query: yes
-
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230007886' and ts.id_serie = '1967' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 10:15:10 Duration: 3s403ms Bind query: yes
15 2m29s 1,166 100ms 972ms 128ms select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in (...) and exists ( select null from turma_professor tp where tp.id_cidadao = ? and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = ?) and rd.data_referencia = sda.data and rd.data_atualizacao > ? and t.id_periodicidade_conteudo in (...) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = ?) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > ? and t.id_periodicidade_conteudo = ?);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Aug 14 09 65 5s699ms 87ms 10 163 21s293ms 130ms 11 84 10s65ms 119ms 12 35 4s439ms 126ms 13 192 26s638ms 138ms 14 210 28s675ms 136ms 15 177 22s227ms 125ms 16 181 23s700ms 130ms 17 59 7s62ms 119ms -
select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in ('230005232', '230005233', '230005234', '230005235', '230005236', '230005237', '230005238', '230005239', '230005243', '230005245') and exists ( select null from turma_professor tp where tp.id_cidadao = '1711917' and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = 0) and rd.data_referencia = sda.data and rd.data_atualizacao > '2023-08-14 13:57:31.823' and t.id_periodicidade_conteudo in (1, 2, 4) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = 0) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > '2023-08-14 13:57:31.823' and t.id_periodicidade_conteudo = 3);
Date: 2023-08-14 13:59:43 Duration: 972ms Bind query: yes
-
select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in ('230000725', '230000726', '230000727', '230000728', '230000730', '230000731', '230000732', '230000733', '230000734') and exists ( select null from turma_professor tp where tp.id_cidadao = '1894876' and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = 0) and rd.data_referencia = sda.data and rd.data_atualizacao > '2023-08-14 14:50:05.638' and t.id_periodicidade_conteudo in (1, 2, 4) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = 0) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > '2023-08-14 14:50:05.638' and t.id_periodicidade_conteudo = 3);
Date: 2023-08-14 14:51:26 Duration: 455ms Bind query: yes
-
select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in ('230002248', '230003120', '230004339', '230004340', '230004341', '230004342', '230004343', '230004344', '230004345', '230004346') and exists ( select null from turma_professor tp where tp.id_cidadao = '1408086' and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = 0) and rd.data_referencia = sda.data and rd.data_atualizacao > '2023-08-14 14:15:58.414' and t.id_periodicidade_conteudo in (1, 2, 4) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = 0) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > '2023-08-14 14:15:58.414' and t.id_periodicidade_conteudo = 3);
Date: 2023-08-14 14:17:47 Duration: 389ms Bind query: yes
16 2m14s 1 2m14s 2m14s 2m14s select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) order by escola, aluno;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Aug 14 10 1 2m14s 2m14s -
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '91' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' and unidade_funcional.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '91' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' and unidade_funcional.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') order by escola, aluno;
Date: 2023-08-14 10:14:57 Duration: 2m14s Bind query: yes
17 2m11s 133 101ms 4s608ms 985ms 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 #17
Day Hour Count Duration Avg duration Aug 14 09 10 11s267ms 1s126ms 10 23 17s636ms 766ms 11 26 12s279ms 472ms 12 4 1s885ms 471ms 13 26 29s49ms 1s117ms 14 23 30s651ms 1s332ms 15 9 13s593ms 1s510ms 16 10 13s405ms 1s340ms 17 2 1s332ms 666ms -
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 = '5852' 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 = '1397917' and id_turma = '230002917' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '5852' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2023-08-14 09:48:03 Duration: 4s608ms 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 = '26886' 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 = '110864' and id_turma = '230000335' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '26886' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2023-08-14 14:07:18 Duration: 4s40ms 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 = '4423' 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 = '1404911' and id_turma = '230001219' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '4423' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2023-08-14 13:09:29 Duration: 3s546ms Bind query: yes
18 2m6s 1 2m6s 2m6s 2m6s 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 (ams.flg_status_ativo or ( select aluno_matr_status.flg_status_ativo from aluno_matr_status_hist amsh inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = amsh.id_aluno_matr_status where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by 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 #18
Day Hour Count Duration Avg duration Aug 14 14 1 2m6s 2m6s -
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 <= '2023-08-14'::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 <= '2023-08-14'::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 = '2023' and uf.id_instituicao = '92' 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 <= '2023-08-14' and (ams.flg_status_ativo or ( select aluno_matr_status.flg_status_ativo from aluno_matr_status_hist amsh inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = amsh.id_aluno_matr_status where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2023-08-14' order by 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 >= '2023-08-14'::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 '606178' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75') 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: 2023-08-14 14:52:50 Duration: 2m6s Bind query: yes
19 1m51s 2 1s915ms 1m49s 55s504ms select turma.id_turma, serie.id_serie, cc.id_disciplina, case when ano.semestre is null or ano.semestre = ? then nota_periodo_aluno.id_nota_periodo_aluno when ano.semestre = ? then nota_periodo_aluno.id_nota_periodo_aluno + ? end as bimestre, uf.codigo as codigo_escola, ( select opcao_atributo.nome from mec_escola_dados_opcao_atributo dados_opcao_atributo inner join mec_escola_opcao_atributo opcao_atributo on opcao_atributo.id_mec_escola_opcao_atributo = dados_opcao_atributo.id_mec_escola_opcao_atributo where opcao_atributo.id_mec_escola_atributo = ? and dados_opcao_atributo.id_unidade_funcional = uf.id_unidade_funcional) as zona_escola, uf.nome as nome_escola, curso.sigla as curso, turma.codigo as turma, serie.sigla as serie, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as enturmados, media_disciplina.alunos as alunos_media_disciplina, media_disciplina.media as media_disciplina, media_geral.alunos as alunos_media_geral, media_geral.media as media_geral from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_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 = turma.id_curso cross join nota_periodo_aluno inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas is true left join lateral ( select count(nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_disciplina = cc.id_disciplina and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> array[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_disciplina on true left join lateral ( select count(distinct nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> array[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_geral on true where uf.id_instituicao = ? and uf.id_municipio = ? and turma.id_turma_status in (...) and ano.ano = ? and ((ano.semestre is null and nota_periodo_aluno.id_nota_periodo_aluno <= ?) or (ano.semestre is not null and nota_periodo_aluno.id_nota_periodo_aluno <= ?)) and (turma.id_unidade_funcional = ? or turma.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?)) order by nome_escola, curso, turma, turma.id_turma, serie, serie.id_serie;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Aug 14 14 1 1s915ms 1s915ms 15 1 1m49s 1m49s -
select turma.id_turma, serie.id_serie, cc.id_disciplina, case when ano.semestre is null or ano.semestre = 1 then nota_periodo_aluno.id_nota_periodo_aluno when ano.semestre = 2 then nota_periodo_aluno.id_nota_periodo_aluno + 2 end as bimestre, uf.codigo as codigo_escola, ( select opcao_atributo.nome from mec_escola_dados_opcao_atributo dados_opcao_atributo inner join mec_escola_opcao_atributo opcao_atributo on opcao_atributo.id_mec_escola_opcao_atributo = dados_opcao_atributo.id_mec_escola_opcao_atributo where opcao_atributo.id_mec_escola_atributo = 2 and dados_opcao_atributo.id_unidade_funcional = uf.id_unidade_funcional) as zona_escola, uf.nome as nome_escola, curso.sigla as curso, turma.codigo as turma, serie.sigla as serie, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as enturmados, media_disciplina.alunos as alunos_media_disciplina, media_disciplina.media as media_disciplina, media_geral.alunos as alunos_media_geral, media_geral.media as media_geral from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_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 = turma.id_curso cross join nota_periodo_aluno inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas is true left join lateral ( select count(nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_disciplina = cc.id_disciplina and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_disciplina on true left join lateral ( select count(distinct nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_geral on true where uf.id_instituicao = '92' and uf.id_municipio = '260410' and turma.id_turma_status in ('1', '2') and ano.ano = '2023' and ((ano.semestre is null and nota_periodo_aluno.id_nota_periodo_aluno <= 4) or (ano.semestre is not null and nota_periodo_aluno.id_nota_periodo_aluno <= 2)) and (turma.id_unidade_funcional = '606178' or turma.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75')) order by nome_escola, curso, turma, turma.id_turma, serie, serie.id_serie;
Date: 2023-08-14 15:00:53 Duration: 1m49s Bind query: yes
-
select turma.id_turma, serie.id_serie, cc.id_disciplina, case when ano.semestre is null or ano.semestre = 1 then nota_periodo_aluno.id_nota_periodo_aluno when ano.semestre = 2 then nota_periodo_aluno.id_nota_periodo_aluno + 2 end as bimestre, uf.codigo as codigo_escola, ( select opcao_atributo.nome from mec_escola_dados_opcao_atributo dados_opcao_atributo inner join mec_escola_opcao_atributo opcao_atributo on opcao_atributo.id_mec_escola_opcao_atributo = dados_opcao_atributo.id_mec_escola_opcao_atributo where opcao_atributo.id_mec_escola_atributo = 2 and dados_opcao_atributo.id_unidade_funcional = uf.id_unidade_funcional) as zona_escola, uf.nome as nome_escola, curso.sigla as curso, turma.codigo as turma, serie.sigla as serie, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as enturmados, media_disciplina.alunos as alunos_media_disciplina, media_disciplina.media as media_disciplina, media_geral.alunos as alunos_media_geral, media_geral.media as media_geral from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_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 = turma.id_curso cross join nota_periodo_aluno inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas is true left join lateral ( select count(nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_disciplina = cc.id_disciplina and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_disciplina on true left join lateral ( select count(distinct nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_geral on true where uf.id_instituicao = '80' and uf.id_municipio = '312410' and turma.id_turma_status in ('1', '2') and ano.ano = '2023' and ((ano.semestre is null and nota_periodo_aluno.id_nota_periodo_aluno <= 4) or (ano.semestre is not null and nota_periodo_aluno.id_nota_periodo_aluno <= 2)) and (turma.id_unidade_funcional = '606134' or turma.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606134' and id_assunto_hierarquia_unidade = '72')) order by nome_escola, curso, turma, turma.id_turma, serie, serie.id_serie;
Date: 2023-08-14 14:31:22 Duration: 1s915ms Bind query: yes
20 1m42s 177 201ms 6s9ms 579ms select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, ( case when faltas_anteriores >= faltas_historico_total then faltas_anteriores - (faltas_historico_ate_atual - faltas_historico_mes) else faltas_anteriores + (faltas_historico_ate_atual - faltas_historico_mes) end + (faltas_mes_ate_atual - faltas_mes))::int as faltas_anteriores, (faltas_historico_mes + faltas_mes)::int as faltas_mes, ( case when faltas_anteriores >= faltas_historico_total then faltas_anteriores - faltas_historico_total else faltas_anteriores + faltas_historico_total end + faltas_mes_total)::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_historico_mes, faltas_mes, (sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_historico_ate_atual, sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_historico_total, (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual, sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_mes_total 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 count(to_char(fh.data, ? || fh.id_horario_turma)) as falta from aluno_lancamento.falta_aluno_disciplina_diario_hist fh 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.id_turma = ts.id_turma and fh.id_disciplina = cc.id_disciplina and fh.id_aluno_matricula = a.id_aluno_matricula and extract(year from fh.data) = m.ano and extract(month from fh.data) = m.id_mes and mdp.id_motivo_dispensa_periodo isnull and fh.data <= coalesce(a.data_primeira_saida, fh.data) and fh.data >= a.data_enturmacao and rfdd.flg_concluido is true), ?)::int as faltas_historico_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 #20
Day Hour Count Duration Avg duration Aug 14 09 4 1s635ms 408ms 10 42 20s315ms 483ms 12 6 2s321ms 386ms 13 46 26s73ms 566ms 14 47 31s690ms 674ms 15 13 10s159ms 781ms 16 19 10s390ms 546ms -
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - (faltas_historico_ate_atual - faltas_historico_mes) -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + (faltas_historico_ate_atual - faltas_historico_mes) end + (faltas_mes_ate_atual - faltas_mes))::int as faltas_anteriores, (faltas_historico_mes + faltas_mes)::int as faltas_mes, -- total: anteriores (subtraindo historicas onde aplicavel) + faltas mensais ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - faltas_historico_total -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + faltas_historico_total end + faltas_mes_total)::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_historico_mes, faltas_mes, -- faltas históricas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_historico_ate_atual, sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_historico_total, -- faltas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual, sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_mes_total 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, -- faltas diárias do mês na turma do aluno remnaeejado coalesce(( select count(to_char(fh.data, 'YYYY-MM-DD' || fh.id_horario_turma)) as falta from aluno_lancamento.falta_aluno_disciplina_diario_hist fh 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.id_turma = ts.id_turma and fh.id_disciplina = cc.id_disciplina and fh.id_aluno_matricula = a.id_aluno_matricula and extract(year from fh.data) = m.ano and extract(month from fh.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and fh.data <= coalesce(a.data_primeira_saida, fh.data) -- casos em que o aluno retorna para a turma: -- as faltas historicas de antes de entrar na turma de novo já estão no falta_anterior and fh.data >= a.data_enturmacao and rfdd.flg_concluido is true), 0)::int as faltas_historico_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 = '230009048' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '15033' 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 = '230009048' and ts.id_serie = '1924' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2023-08-14 15:37:02 Duration: 6s9ms Bind query: yes
-
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - (faltas_historico_ate_atual - faltas_historico_mes) -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + (faltas_historico_ate_atual - faltas_historico_mes) end + (faltas_mes_ate_atual - faltas_mes))::int as faltas_anteriores, (faltas_historico_mes + faltas_mes)::int as faltas_mes, -- total: anteriores (subtraindo historicas onde aplicavel) + faltas mensais ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - faltas_historico_total -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + faltas_historico_total end + faltas_mes_total)::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_historico_mes, faltas_mes, -- faltas históricas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_historico_ate_atual, sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_historico_total, -- faltas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual, sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_mes_total 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, -- faltas diárias do mês na turma do aluno remnaeejado coalesce(( select count(to_char(fh.data, 'YYYY-MM-DD' || fh.id_horario_turma)) as falta from aluno_lancamento.falta_aluno_disciplina_diario_hist fh 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.id_turma = ts.id_turma and fh.id_disciplina = cc.id_disciplina and fh.id_aluno_matricula = a.id_aluno_matricula and extract(year from fh.data) = m.ano and extract(month from fh.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and fh.data <= coalesce(a.data_primeira_saida, fh.data) -- casos em que o aluno retorna para a turma: -- as faltas historicas de antes de entrar na turma de novo já estão no falta_anterior and fh.data >= a.data_enturmacao and rfdd.flg_concluido is true), 0)::int as faltas_historico_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 = '230003424' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '729' 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 = '230003424' and ts.id_serie = '85' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2023-08-14 10:33:41 Duration: 4s946ms Bind query: yes
-
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - (faltas_historico_ate_atual - faltas_historico_mes) -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + (faltas_historico_ate_atual - faltas_historico_mes) end + (faltas_mes_ate_atual - faltas_mes))::int as faltas_anteriores, (faltas_historico_mes + faltas_mes)::int as faltas_mes, -- total: anteriores (subtraindo historicas onde aplicavel) + faltas mensais ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - faltas_historico_total -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + faltas_historico_total end + faltas_mes_total)::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_historico_mes, faltas_mes, -- faltas históricas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_historico_ate_atual, sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_historico_total, -- faltas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual, sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_mes_total 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, -- faltas diárias do mês na turma do aluno remnaeejado coalesce(( select count(to_char(fh.data, 'YYYY-MM-DD' || fh.id_horario_turma)) as falta from aluno_lancamento.falta_aluno_disciplina_diario_hist fh 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.id_turma = ts.id_turma and fh.id_disciplina = cc.id_disciplina and fh.id_aluno_matricula = a.id_aluno_matricula and extract(year from fh.data) = m.ano and extract(month from fh.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and fh.data <= coalesce(a.data_primeira_saida, fh.data) -- casos em que o aluno retorna para a turma: -- as faltas historicas de antes de entrar na turma de novo já estão no falta_anterior and fh.data >= a.data_enturmacao and rfdd.flg_concluido is true), 0)::int as faltas_historico_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 = '230001309' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '703' 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 = '230001309' and ts.id_serie = '101' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2023-08-14 14:29:24 Duration: 4s657ms Bind query: yes
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 6,017 0ms 0ms 0ms 0ms set statement_timeout = ?;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Aug 14 09 6,017 0ms 0ms 2 3,795 0ms 0ms 0ms 0ms set time zone ?;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Aug 14 09 3,795 0ms 0ms 3 2,926 6m37s 100ms 883ms 135ms 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 notnull as flg_planejado, 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, ?) 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 #3
Day Hour Count Duration Avg duration Aug 14 09 241 22s124ms 91ms 10 703 1m37s 138ms 11 200 26s351ms 131ms 12 50 7s272ms 145ms 13 365 52s90ms 142ms 14 552 1m20s 145ms 15 406 53s233ms 131ms 16 383 55s441ms 144ms 17 26 3s74ms 118ms -
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 notnull as flg_planejado, 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 = '6615425' 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, '2147483647') and ts.id_turma = '230004956' and ts.id_serie = '2000' and cc.id_disciplina = '1834' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 14:51:54 Duration: 883ms 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 notnull as flg_planejado, 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 = '185078' 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, '2147483647') and ts.id_turma = '230003307' and ts.id_serie = '2014' and cc.id_disciplina = '1873' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 13:59:42 Duration: 708ms 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 notnull as flg_planejado, 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 = '185776' 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, '2147483647') and ts.id_turma = '230007539' and ts.id_serie = '1982' and cc.id_disciplina = '1836' order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 12:09:00 Duration: 681ms Bind query: yes
4 1,770 4m13s 100ms 372ms 143ms select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = ? and d.id_disciplina = ? and asem.ano = ?) and turma.id_unidade_funcional = ? union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = ? and ap.id_disciplina = ? and asem.ano = ?) and turma.id_unidade_funcional = ? order by nome;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Aug 14 09 104 15s425ms 148ms 10 58 7s407ms 127ms 13 344 1m 175ms 14 906 1m59s 131ms 15 3 306ms 102ms 16 355 50s494ms 142ms -
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '105' and d.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '345' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '105' and ap.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '345' order by nome;
Date: 2023-08-14 13:59:42 Duration: 372ms Bind query: yes
-
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '107' and d.id_disciplina = '8' and asem.ano = '2023') and turma.id_unidade_funcional = '350' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '107' and ap.id_disciplina = '8' and asem.ano = '2023') and turma.id_unidade_funcional = '350' order by nome;
Date: 2023-08-14 09:40:05 Duration: 370ms Bind query: yes
-
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '105' and d.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '372' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '105' and ap.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '372' order by nome;
Date: 2023-08-14 13:59:42 Duration: 365ms Bind query: yes
5 1,621 4m3s 100ms 440ms 150ms select a.id_album_portal, a.nome, i.identificador AS "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = ? and astatus.id_status_portal = ? where a.flg_exibir_album_portal = true and a.id_instituicao = ? order by astatus.data_publicacao desc nulls last, a.nome limit ?;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Aug 14 09 107 15s59ms 140ms 10 306 44s443ms 145ms 11 163 23s72ms 141ms 12 117 14s887ms 127ms 13 286 48s440ms 169ms 14 219 36s107ms 164ms 15 227 34s984ms 154ms 16 149 21s657ms 145ms 17 47 5s305ms 112ms -
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 440ms Bind query: yes
-
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 438ms Bind query: yes
-
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 433ms Bind query: yes
6 1,166 2m29s 100ms 972ms 128ms select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in (...) and exists ( select null from turma_professor tp where tp.id_cidadao = ? and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = ?) and rd.data_referencia = sda.data and rd.data_atualizacao > ? and t.id_periodicidade_conteudo in (...) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = ?) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > ? and t.id_periodicidade_conteudo = ?);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Aug 14 09 65 5s699ms 87ms 10 163 21s293ms 130ms 11 84 10s65ms 119ms 12 35 4s439ms 126ms 13 192 26s638ms 138ms 14 210 28s675ms 136ms 15 177 22s227ms 125ms 16 181 23s700ms 130ms 17 59 7s62ms 119ms -
select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in ('230005232', '230005233', '230005234', '230005235', '230005236', '230005237', '230005238', '230005239', '230005243', '230005245') and exists ( select null from turma_professor tp where tp.id_cidadao = '1711917' and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = 0) and rd.data_referencia = sda.data and rd.data_atualizacao > '2023-08-14 13:57:31.823' and t.id_periodicidade_conteudo in (1, 2, 4) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = 0) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > '2023-08-14 13:57:31.823' and t.id_periodicidade_conteudo = 3);
Date: 2023-08-14 13:59:43 Duration: 972ms Bind query: yes
-
select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in ('230000725', '230000726', '230000727', '230000728', '230000730', '230000731', '230000732', '230000733', '230000734') and exists ( select null from turma_professor tp where tp.id_cidadao = '1894876' and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = 0) and rd.data_referencia = sda.data and rd.data_atualizacao > '2023-08-14 14:50:05.638' and t.id_periodicidade_conteudo in (1, 2, 4) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = 0) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > '2023-08-14 14:50:05.638' and t.id_periodicidade_conteudo = 3);
Date: 2023-08-14 14:51:26 Duration: 455ms Bind query: yes
-
select sda.id_situacao_didatica_aula, sda.id_turma, sda.id_serie, sda.id_componente_curricular, sda.data, sda.id_horario_turma, sda.numero_aula, sda.id_quinzena_ano, sda.data_atualizacao from situacao_didatica_aula sda inner join turma t on t.id_turma = sda.id_turma left join componente_curricular cc on cc.id_componente_curricular = sda.id_componente_curricular where sda.id_turma in ('230002248', '230003120', '230004339', '230004340', '230004341', '230004342', '230004343', '230004344', '230004345', '230004346') and exists ( select null from turma_professor tp where tp.id_cidadao = '1408086' and tp.id_turma = sda.id_turma and (cc.id_componente_curricular = tp.id_componente_curricular or cc.id_componente_curricular is null)) and exists ( select null from registro_lancamento_conteudo_diario rd where rd.id_turma = sda.id_turma and (rd.id_componente_curricular = sda.id_componente_curricular or rd.id_componente_curricular = 0) and rd.data_referencia = sda.data and rd.data_atualizacao > '2023-08-14 14:15:58.414' and t.id_periodicidade_conteudo in (1, 2, 4) union all select null from registro_lancamento_conteudo_quinzenal rq where rq.id_turma = sda.id_turma and (rq.id_componente_curricular = sda.id_componente_curricular or rq.id_componente_curricular = 0) and rq.id_quinzena_ano = sda.id_quinzena_ano and rq.data_atualizacao > '2023-08-14 14:15:58.414' and t.id_periodicidade_conteudo = 3);
Date: 2023-08-14 14:17:47 Duration: 389ms Bind query: yes
7 940 35m51s 1s487ms 5s128ms 2s288ms select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = ? and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, ?) < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = ?), ?) = ?;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Aug 14 09 48 1m48s 2s270ms 10 120 4m52s 2s435ms 11 120 4m20s 2s168ms 12 120 3m52s 1s936ms 13 120 4m44s 2s374ms 14 120 5m3s 2s528ms 15 120 4m35s 2s297ms 16 120 4m49s 2s408ms 17 52 1m44s 2s9ms -
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 10:52:05 Duration: 5s128ms Bind query: yes
-
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 16:43:04 Duration: 4s692ms Bind query: yes
-
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 10:52:04 Duration: 4s642ms Bind query: yes
8 879 7m45s 100ms 5s401ms 529ms 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 #8
Day Hour Count Duration Avg duration Aug 14 09 98 40s889ms 417ms 10 163 1m7s 411ms 11 164 1m24s 515ms 12 72 38s346ms 532ms 13 87 1m8s 786ms 14 95 1m3s 664ms 15 106 1m1s 579ms 16 58 32s155ms 554ms 17 36 9s367ms 260ms -
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 = '3' and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo where t.id_turma in ('230003670', '230003671', '230003672', '230003673', '230003674', '230003675', '230003676', '230003677', '230003678', '230003679', '230003680', '230003681', '230003682', '230003683', '230003684', '230003685', '230003686', '230003687', '230003688', '230003690', '230003691', '230003692', '230003693', '230003694', '230003695', '230003697', '230003698', '230003699', '230003906') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('3', 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: 2023-08-14 15:59:27 Duration: 5s401ms 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 = '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 ('230003670', '230003671', '230003672', '230003673', '230003674', '230003675', '230003676', '230003677', '230003678', '230003679', '230003680', '230003681', '230003682', '230003683', '230003684', '230003685', '230003686', '230003687', '230003688', '230003690', '230003691', '230003692', '230003693', '230003694', '230003695', '230003697', '230003698', '230003699', '230003906') 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: 2023-08-14 15:59:32 Duration: 4s804ms 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 = '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 ('230002806', '230002807', '230002808', '230002809', '230002810', '230002811', '230002812', '230002813', '230002814', '230002815', '230002816', '230002817', '230002818', '230002819', '230002820', '230002821', '230002822', '230002823') 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: 2023-08-14 13:38:00 Duration: 4s82ms Bind query: yes
9 493 0ms 0ms 0ms 0ms select exists ( select null from permissao_acesso where id_recurso = ? and id_grupo_usuario in ( select id_grupo_usuario from usuario_grupo_unidade where id_usuario = ?) and id_grupo_usuario in ( select id_grupo_usuario from grupo_usuario where id_instituicao = ?));Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Aug 14 09 493 0ms 0ms 10 470 4m26s 103ms 2s271ms 566ms 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) 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 (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Aug 14 09 37 28s609ms 773ms 10 77 44s18ms 571ms 11 128 1m12s 569ms 12 44 18s265ms 415ms 13 37 28s334ms 765ms 14 33 9s516ms 288ms 15 66 36s523ms 553ms 16 32 20s421ms 638ms 17 16 7s468ms 466ms -
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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('3', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230005505', '230005506', '230005507', '230005508', '230005509', '230005510', '230005511', '230005512', '230005513', '230005514') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 09:42:03 Duration: 2s271ms 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('3', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230005109', '230005110', '230005113', '230005120', '230005121', '230005123', '230005124', '230005125', '230005126', '230005127', '230005128', '230005130') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 11:19:02 Duration: 2s11ms 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('4', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230000379', '230000380', '230000382', '230000383', '230000384', '230000385', '230000386', '230000387', '230000388', '230004229') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 15:45:51 Duration: 1s448ms Bind query: yes
11 439 0ms 0ms 0ms 0ms select r.flg_ativo, coalesce(ri.id_status_recurso, ?) as id_status_recurso from recurso r left join recurso_instituicao ri on r.id_recurso = ri.id_recurso and ri.id_instituicao = ? where r.id_recurso = ?;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Aug 14 09 439 0ms 0ms 12 421 2m34s 101ms 3s859ms 367ms select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = ? as flg_atribuicao_componente, c.nome as professor, greatest (?, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = ? and ts.id_serie = ? and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Aug 14 09 39 10s581ms 271ms 10 89 40s128ms 450ms 11 18 7s37ms 390ms 12 10 7s748ms 774ms 13 89 21s536ms 241ms 14 98 30s51ms 306ms 15 44 18s864ms 428ms 16 34 18s716ms 550ms -
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230007847' and ts.id_serie = '1970' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 15:12:04 Duration: 3s859ms Bind query: yes
-
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230009114' and ts.id_serie = '1971' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 16:40:41 Duration: 3s470ms Bind query: yes
-
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230007886' and ts.id_serie = '1967' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 10:15:10 Duration: 3s403ms Bind query: yes
13 417 9m3s 135ms 3s973ms 1s303ms 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 #13
Day Hour Count Duration Avg duration Aug 14 09 28 28s705ms 1s25ms 10 68 1m37s 1s428ms 11 7 4s905ms 700ms 13 21 26s629ms 1s268ms 14 52 1m10s 1s354ms 15 58 1m19s 1s363ms 16 181 3m54s 1s298ms 17 2 1s828ms 914ms -
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('vitória&letícia&de&souza&duarte') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 10:38:17 Duration: 3s973ms 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('GEOVANA&LARISSA&PEREIRA&GOMES') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 15:13:04 Duration: 3s875ms 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('KEMILLY&GALLIZA&DO&ESPIRITO&SANTO') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 16:28:03 Duration: 3s566ms Bind query: yes
14 359 0ms 0ms 0ms 0ms select * from turma where id_turma = ?;Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Aug 14 09 359 0ms 0ms 15 313 18m59s 107ms 9s431ms 3s639ms 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 #15
Day Hour Count Duration Avg duration Aug 14 09 24 1m37s 4s58ms 10 69 3m30s 3s54ms 11 43 2m28s 3s461ms 12 1 4s484ms 4s484ms 13 24 1m39s 4s137ms 14 46 3m8s 4s89ms 15 56 3m31s 3s769ms 16 50 2m59s 3s580ms -
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 = '66' 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 = '66' 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: 2023-08-14 13:59:49 Duration: 9s431ms 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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: 2023-08-14 14:51:32 Duration: 6s598ms 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 100;
Date: 2023-08-14 10:14:02 Duration: 6s463ms Bind query: yes
16 313 9m5s 134ms 3s734ms 1s741ms 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))::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 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 14 09 31 57s278ms 1s847ms 10 58 1m8s 1s176ms 11 28 31s811ms 1s136ms 12 6 7s569ms 1s261ms 13 64 2m4s 1s939ms 14 52 1m51s 2s144ms 15 39 1m15s 1s924ms 16 35 1m9s 1s987ms -
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))::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 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 = '230002972' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '704' 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: 2023-08-14 14:30:55 Duration: 3s734ms 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))::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 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 = '230002295' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '661' 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: 2023-08-14 16:16:21 Duration: 3s664ms 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))::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 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 = '230001816' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '705' 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: 2023-08-14 14:28:06 Duration: 3s447ms Bind query: yes
17 284 0ms 0ms 0ms 0ms select currval(?);Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Aug 14 09 284 0ms 0ms 18 277 38s944ms 100ms 1s129ms 140ms 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 notnull as flg_planejado, 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, ?) and ts.id_turma = ? and ts.id_serie = ? and ogc.id_componente_curricular is null order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Aug 14 09 24 2s961ms 123ms 10 49 6s570ms 134ms 11 19 2s313ms 121ms 12 4 518ms 129ms 13 24 4s117ms 171ms 14 43 7s971ms 185ms 15 47 5s758ms 122ms 16 53 7s150ms 134ms 17 14 1s582ms 113ms -
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 notnull as flg_planejado, 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 = '6615424' 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, '2147483647') and ts.id_turma = '230000241' and ts.id_serie = '1696' and ogc.id_componente_curricular is null order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 14:51:54 Duration: 1s129ms 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 notnull as flg_planejado, 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 = '6615427' 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, '2147483647') and ts.id_turma = '230000241' and ts.id_serie = '1696' and ogc.id_componente_curricular is null order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 14:51:55 Duration: 441ms 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 notnull as flg_planejado, 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 = '190099' 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, '2147483647') and ts.id_turma = '230008403' and ts.id_serie = '1988' and ogc.id_componente_curricular is null order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 13:57:34 Duration: 434ms Bind query: yes
19 243 0ms 0ms 0ms 0ms select coalesce(t.id_calendario_turma, cc.id_calendario, ec.id_calendario) as id_calendario from turma t left join curso c on t.id_curso = c.id_curso inner join ano_semestre ano on ano.id_ano_semestre = t.id_ano_semestre left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = ano.ano left join curso_calendario cc on cc.id_curso = c.id_curso and cc.ano = ano.ano and cc.id_unidade_funcional = t.id_unidade_funcional and c.flg_calendario_diferenciado = true where t.id_turma = ?;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Aug 14 09 243 0ms 0ms 20 226 41s790ms 101ms 591ms 184ms 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 = ? 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 sda.id_horario_turma = q.id_horario_turma 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 (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 (extract(dow from cpd.data) not in (...) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (...) 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 = ? 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 (extract(dow from cpd.data) not in (...) or cd.id_motivo_dia_letivo_extra is not null) 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 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 #20
Day Hour Count Duration Avg duration Aug 14 09 16 2s708ms 169ms 10 29 5s2ms 172ms 11 59 11s458ms 194ms 12 20 3s469ms 173ms 13 18 3s226ms 179ms 14 51 10s560ms 207ms 15 16 2s764ms 172ms 16 14 2s251ms 160ms 17 3 349ms 116ms -
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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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' 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 sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') 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 (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (1, 4) 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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 ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') 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: 2023-08-14 11:44:43 Duration: 591ms 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '1' 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 sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('230002251', '230002252', '230002253', '230002254', '230002255', '230002256', '230002257', '230002258', '230002259', '230002260', '230003454', '230003455', '230003456', '230003457', '230004405', '230004406', '230008144', '230008145') 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 (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (1, 4) 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '1' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('230002251', '230002252', '230002253', '230002254', '230002255', '230002256', '230002257', '230002258', '230002259', '230002260', '230003454', '230003455', '230003456', '230003457', '230004405', '230004406', '230008144', '230008145') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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 = '1' 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 ('230002251', '230002252', '230002253', '230002254', '230002255', '230002256', '230002257', '230002258', '230002259', '230002260', '230003454', '230003455', '230003456', '230003457', '230004405', '230004406', '230008144', '230008145') 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: 2023-08-14 09:44:09 Duration: 591ms 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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' 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 sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') 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 (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (1, 4) 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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 ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') 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: 2023-08-14 11:44:42 Duration: 491ms Bind query: yes
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 2m14s 2m14s 2m14s 1 2m14s select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) order by escola, aluno;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Aug 14 10 1 2m14s 2m14s -
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '91' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '100' and unidade_funcional.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '91' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '100' and unidade_funcional.id_unidade_funcional in ( select '606177' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606177' and id_assunto_hierarquia_unidade = '74') order by escola, aluno;
Date: 2023-08-14 10:14:57 Duration: 2m14s Bind query: yes
2 2m6s 2m6s 2m6s 1 2m6s 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 (ams.flg_status_ativo or ( select aluno_matr_status.flg_status_ativo from aluno_matr_status_hist amsh inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = amsh.id_aluno_matr_status where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= ? order by 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 #2
Day Hour Count Duration Avg duration Aug 14 14 1 2m6s 2m6s -
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 <= '2023-08-14'::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 <= '2023-08-14'::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 = '2023' and uf.id_instituicao = '92' 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 <= '2023-08-14' and (ams.flg_status_ativo or ( select aluno_matr_status.flg_status_ativo from aluno_matr_status_hist amsh inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = amsh.id_aluno_matr_status where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= '2023-08-14' order by 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 >= '2023-08-14'::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 '606178' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75') 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: 2023-08-14 14:52:50 Duration: 2m6s Bind query: yes
3 1s915ms 1m49s 55s504ms 2 1m51s select turma.id_turma, serie.id_serie, cc.id_disciplina, case when ano.semestre is null or ano.semestre = ? then nota_periodo_aluno.id_nota_periodo_aluno when ano.semestre = ? then nota_periodo_aluno.id_nota_periodo_aluno + ? end as bimestre, uf.codigo as codigo_escola, ( select opcao_atributo.nome from mec_escola_dados_opcao_atributo dados_opcao_atributo inner join mec_escola_opcao_atributo opcao_atributo on opcao_atributo.id_mec_escola_opcao_atributo = dados_opcao_atributo.id_mec_escola_opcao_atributo where opcao_atributo.id_mec_escola_atributo = ? and dados_opcao_atributo.id_unidade_funcional = uf.id_unidade_funcional) as zona_escola, uf.nome as nome_escola, curso.sigla as curso, turma.codigo as turma, serie.sigla as serie, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as enturmados, media_disciplina.alunos as alunos_media_disciplina, media_disciplina.media as media_disciplina, media_geral.alunos as alunos_media_geral, media_geral.media as media_geral from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_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 = turma.id_curso cross join nota_periodo_aluno inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas is true left join lateral ( select count(nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_disciplina = cc.id_disciplina and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> array[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_disciplina on true left join lateral ( select count(distinct nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> array[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_geral on true where uf.id_instituicao = ? and uf.id_municipio = ? and turma.id_turma_status in (...) and ano.ano = ? and ((ano.semestre is null and nota_periodo_aluno.id_nota_periodo_aluno <= ?) or (ano.semestre is not null and nota_periodo_aluno.id_nota_periodo_aluno <= ?)) and (turma.id_unidade_funcional = ? or turma.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?)) order by nome_escola, curso, turma, turma.id_turma, serie, serie.id_serie;Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Aug 14 14 1 1s915ms 1s915ms 15 1 1m49s 1m49s -
select turma.id_turma, serie.id_serie, cc.id_disciplina, case when ano.semestre is null or ano.semestre = 1 then nota_periodo_aluno.id_nota_periodo_aluno when ano.semestre = 2 then nota_periodo_aluno.id_nota_periodo_aluno + 2 end as bimestre, uf.codigo as codigo_escola, ( select opcao_atributo.nome from mec_escola_dados_opcao_atributo dados_opcao_atributo inner join mec_escola_opcao_atributo opcao_atributo on opcao_atributo.id_mec_escola_opcao_atributo = dados_opcao_atributo.id_mec_escola_opcao_atributo where opcao_atributo.id_mec_escola_atributo = 2 and dados_opcao_atributo.id_unidade_funcional = uf.id_unidade_funcional) as zona_escola, uf.nome as nome_escola, curso.sigla as curso, turma.codigo as turma, serie.sigla as serie, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as enturmados, media_disciplina.alunos as alunos_media_disciplina, media_disciplina.media as media_disciplina, media_geral.alunos as alunos_media_geral, media_geral.media as media_geral from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_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 = turma.id_curso cross join nota_periodo_aluno inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas is true left join lateral ( select count(nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_disciplina = cc.id_disciplina and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_disciplina on true left join lateral ( select count(distinct nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_geral on true where uf.id_instituicao = '92' and uf.id_municipio = '260410' and turma.id_turma_status in ('1', '2') and ano.ano = '2023' and ((ano.semestre is null and nota_periodo_aluno.id_nota_periodo_aluno <= 4) or (ano.semestre is not null and nota_periodo_aluno.id_nota_periodo_aluno <= 2)) and (turma.id_unidade_funcional = '606178' or turma.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606178' and id_assunto_hierarquia_unidade = '75')) order by nome_escola, curso, turma, turma.id_turma, serie, serie.id_serie;
Date: 2023-08-14 15:00:53 Duration: 1m49s Bind query: yes
-
select turma.id_turma, serie.id_serie, cc.id_disciplina, case when ano.semestre is null or ano.semestre = 1 then nota_periodo_aluno.id_nota_periodo_aluno when ano.semestre = 2 then nota_periodo_aluno.id_nota_periodo_aluno + 2 end as bimestre, uf.codigo as codigo_escola, ( select opcao_atributo.nome from mec_escola_dados_opcao_atributo dados_opcao_atributo inner join mec_escola_opcao_atributo opcao_atributo on opcao_atributo.id_mec_escola_opcao_atributo = dados_opcao_atributo.id_mec_escola_opcao_atributo where opcao_atributo.id_mec_escola_atributo = 2 and dados_opcao_atributo.id_unidade_funcional = uf.id_unidade_funcional) as zona_escola, uf.nome as nome_escola, curso.sigla as curso, turma.codigo as turma, serie.sigla as serie, ts.num_vagas_oferecidas - ts.num_vagas_remanescentes as enturmados, media_disciplina.alunos as alunos_media_disciplina, media_disciplina.media as media_disciplina, media_geral.alunos as alunos_media_geral, media_geral.media as media_geral from turma inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional inner join ano_semestre ano on ano.id_ano_semestre = turma.id_ano_semestre inner join turma_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 = turma.id_curso cross join nota_periodo_aluno inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular and cc.flg_aponta_notas is true left join lateral ( select count(nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_disciplina = cc.id_disciplina and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_disciplina on true left join lateral ( select count(distinct nota.id_aluno_matricula)::int as alunos, avg(nota.nota) as media from nota_aluno nota inner join aluno_matr_turma amt on amt.id_turma = nota.id_turma and amt.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matricula am on am.id_aluno_matricula = nota.id_aluno_matricula inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status where nota.id_turma = turma.id_turma and nota.id_nota_periodo_aluno = nota_periodo_aluno.id_nota_periodo_aluno and amt.id_serie_enturmacao = serie.id_serie and ams.flg_status_ativo is true and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = nota.id_aluno_matricula and dispensa.id_turma = nota.id_turma and dispensa.id_disciplina = nota.id_disciplina) and not exists ( select null from aluno_matr_dispensa_periodo amdp inner join motivo_dispensa_periodo mdp on amdp.id_motivo_dispensa_periodo = mdp.id_motivo_dispensa_periodo where amdp.id_aluno_matricula = nota.id_aluno_matricula and (mdp.periodos @> ARRAY[nota_periodo_aluno.id_nota_periodo_aluno]) is true)) media_geral on true where uf.id_instituicao = '80' and uf.id_municipio = '312410' and turma.id_turma_status in ('1', '2') and ano.ano = '2023' and ((ano.semestre is null and nota_periodo_aluno.id_nota_periodo_aluno <= 4) or (ano.semestre is not null and nota_periodo_aluno.id_nota_periodo_aluno <= 2)) and (turma.id_unidade_funcional = '606134' or turma.id_unidade_funcional in ( select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606134' and id_assunto_hierarquia_unidade = '72')) order by nome_escola, curso, turma, turma.id_turma, serie, serie.id_serie;
Date: 2023-08-14 14:31:22 Duration: 1s915ms Bind query: yes
4 14s40ms 48s247ms 25s158ms 7 2m56s select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, coalesce(faltas_gloabl.fj, ?) as fj, coalesce(faltas_gloabl.fnj, ?) as fnj, (coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between ? and ? or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > ? and least ((coalesce(faltas_gloabl.fnj, ?) / (dias_letivos.dias_letivos * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and unidade_funcional.id_municipio = ? union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, ?) as fnj1, coalesce(faltas_mes.fnj2, ?) as fnj2, coalesce(faltas_mes.fnj3, ?) as fnj3, coalesce(faltas_mes.fnj4, ?) as fnj4, coalesce(faltas_mes.fnj5, ?) as fnj5, coalesce(faltas_mes.fnj6, ?) as fnj6, coalesce(faltas_mes.fnj7, ?) as fnj7, coalesce(faltas_mes.fnj8, ?) as fnj8, coalesce(faltas_mes.fnj9, ?) as fnj9, coalesce(faltas_mes.fnj10, ?) as fnj10, coalesce(faltas_mes.fnj11, ?) as fnj11, coalesce(faltas_mes.fnj12, ?) as fnj12, coalesce(faltas_disc.fj, ?) as fj, coalesce(faltas_disc.fnj, ?) as fnj, (coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ? as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj1, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj2, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj3, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj4, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj5, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj6, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj7, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj8, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj9, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj10, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj11, sum( case when falta.mes = ? then falta.faltas else ? end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = ?), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = ?)) as id_calendario) as calendario on ? = ? left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = ? and am.id_aluno_matr_status in (...) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = ?) and serie.flg_apon_falta_globalizado is false and aulas.aulas > ? and least ((coalesce(faltas_disc.fnj, ?) / (aulas.aulas * ?.?)) * ?, ?.?) between ? and ? and unidade_funcional.id_unidade_funcional in ( select ? union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = ? and id_assunto_hierarquia_unidade = ?) and unidade_funcional.id_municipio = ? order by escola, aluno;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Aug 14 12 1 23s144ms 23s144ms 14 2 33s532ms 16s766ms 15 3 1m20s 26s966ms 16 1 38s531ms 38s531ms -
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' order by escola, aluno;
Date: 2023-08-14 15:54:04 Duration: 48s247ms Bind query: yes
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '93' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '20' and '100' and unidade_funcional.id_unidade_funcional in ( select '606443' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '606443' and id_assunto_hierarquia_unidade = '76') and unidade_funcional.id_municipio = '260960' order by escola, aluno;
Date: 2023-08-14 16:28:56 Duration: 38s531ms Bind query: yes
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = '82' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between '0' and '60' and unidade_funcional.id_unidade_funcional in ( select '458' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '458' and id_assunto_hierarquia_unidade = '10') and unidade_funcional.id_municipio = '310670' union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = '2023'), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = '2023')) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = '82' and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = '2023') and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between '0' and '60' and unidade_funcional.id_unidade_funcional in ( select '458' union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = '458' and id_assunto_hierarquia_unidade = '10') and unidade_funcional.id_municipio = '310670' order by escola, aluno;
Date: 2023-08-14 12:58:53 Duration: 23s144ms Bind query: yes
5 108ms 2m17s 20s11ms 108 36m1s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = ? and cc.id_disciplina = ? order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Aug 14 09 9 5m58s 39s883ms 10 18 9m40s 32s263ms 11 21 4m44s 13s533ms 12 18 1m49s 6s61ms 13 9 7m19s 48s882ms 15 18 1m31s 5s94ms 16 15 4m56s 19s771ms -
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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230006665' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;
Date: 2023-08-14 09:42:04 Duration: 2m17s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230007753' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;
Date: 2023-08-14 13:57:09 Duration: 2m7s 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, 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 conteudo_matriz_conteudo pai on pai.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo_pai left join plano_aula_conteudo pac on pac.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo and pac.id_plano_aula in ( select pa.id_plano_aula from plano_aula pa where pa.id_turma = t.id_turma) where ano_turma.ano between org_inicio.ano and coalesce(org_fim.ano, ano_turma.ano) and ts.id_turma = '230007752' and cc.id_disciplina = '1851' order by ec.nivel, pai.id_conteudo_matriz_conteudo_pai, cmc.ordem;
Date: 2023-08-14 13:54:39 Duration: 2m5s Bind query: yes
6 107ms 9s431ms 3s639ms 313 18m59s 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 #6
Day Hour Count Duration Avg duration Aug 14 09 24 1m37s 4s58ms 10 69 3m30s 3s54ms 11 43 2m28s 3s461ms 12 1 4s484ms 4s484ms 13 24 1m39s 4s137ms 14 46 3m8s 4s89ms 15 56 3m31s 3s769ms 16 50 2m59s 3s580ms -
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 = '66' 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 = '66' 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: 2023-08-14 13:59:49 Duration: 9s431ms 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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: 2023-08-14 14:51:32 Duration: 6s598ms 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 100;
Date: 2023-08-14 10:14:02 Duration: 6s463ms Bind query: yes
7 118ms 6s274ms 3s84ms 70 3m35s 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 ?;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Aug 14 09 3 10s961ms 3s653ms 10 20 52s663ms 2s633ms 11 12 35s145ms 2s928ms 13 7 28s524ms 4s74ms 14 8 23s473ms 2s934ms 15 10 31s711ms 3s171ms 16 10 33s459ms 3s345ms -
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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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;
Date: 2023-08-14 10:43:03 Duration: 6s274ms 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 = '66' 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 = '66' 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;
Date: 2023-08-14 10:23:03 Duration: 5s506ms 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1982' 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;
Date: 2023-08-14 11:05:05 Duration: 5s190ms Bind query: yes
8 112ms 5s589ms 3s20ms 69 3m28s select count(*) as contagem from ( 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) tabela;Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Aug 14 09 3 11s401ms 3s800ms 10 20 49s275ms 2s463ms 11 11 32s483ms 2s953ms 13 7 26s279ms 3s754ms 14 8 25s20ms 3s127ms 15 10 32s224ms 3s222ms 16 10 31s698ms 3s169ms -
select count(*) as contagem from ( 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1980' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1980' 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) tabela;
Date: 2023-08-14 14:20:29 Duration: 5s589ms Bind query: yes
-
select count(*) as contagem from ( 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1980' 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 = '66' and modalidade.id_ensino_etapa = '2' and serie.id_serie = '1980' 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) tabela;
Date: 2023-08-14 15:02:37 Duration: 4s577ms Bind query: yes
-
select count(*) as contagem from ( 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 = '66' 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 = '66' 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) tabela;
Date: 2023-08-14 11:45:47 Duration: 4s521ms Bind query: yes
9 1s487ms 5s128ms 2s288ms 940 35m51s select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = ? and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, ?) < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = ?), ?) = ?;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Aug 14 09 48 1m48s 2s270ms 10 120 4m52s 2s435ms 11 120 4m20s 2s168ms 12 120 3m52s 1s936ms 13 120 4m44s 2s374ms 14 120 5m3s 2s528ms 15 120 4m35s 2s297ms 16 120 4m49s 2s408ms 17 52 1m44s 2s9ms -
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 10:52:05 Duration: 5s128ms Bind query: yes
-
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 16:43:04 Duration: 4s692ms Bind query: yes
-
select turma.id_turma from turma inner join unidade_funcional uf on uf.id_unidade_funcional = turma.id_unidade_funcional left join registro_turma_google_classroom registro on registro.id_turma = turma.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_especial is false and exists ( select null from movel.turma_mudanca where turma_mudanca.id_turma = turma.id_turma and coalesce(registro.data_ref_google_classroom, '1900-01-01') < turma_mudanca.data) and coalesce(( select ri.id_status_recurso from recurso inner join recurso_instituicao ri on recurso.id_recurso = ri.id_recurso where recurso.flg_ativo and ri.id_instituicao = uf.id_instituicao and ri.id_recurso = '5703'), 1) = '1';
Date: 2023-08-14 10:52:04 Duration: 4s642ms Bind query: yes
10 134ms 3s734ms 1s741ms 313 9m5s 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))::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 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 #10
Day Hour Count Duration Avg duration Aug 14 09 31 57s278ms 1s847ms 10 58 1m8s 1s176ms 11 28 31s811ms 1s136ms 12 6 7s569ms 1s261ms 13 64 2m4s 1s939ms 14 52 1m51s 2s144ms 15 39 1m15s 1s924ms 16 35 1m9s 1s987ms -
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))::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 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 = '230002972' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '704' 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: 2023-08-14 14:30:55 Duration: 3s734ms 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))::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 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 = '230002295' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '661' 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: 2023-08-14 16:16:21 Duration: 3s664ms 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))::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 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 = '230001816' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '705' 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: 2023-08-14 14:28:06 Duration: 3s447ms Bind query: yes
11 135ms 3s973ms 1s303ms 417 9m3s 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 #11
Day Hour Count Duration Avg duration Aug 14 09 28 28s705ms 1s25ms 10 68 1m37s 1s428ms 11 7 4s905ms 700ms 13 21 26s629ms 1s268ms 14 52 1m10s 1s354ms 15 58 1m19s 1s363ms 16 181 3m54s 1s298ms 17 2 1s828ms 914ms -
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('vitória&letícia&de&souza&duarte') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 10:38:17 Duration: 3s973ms 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('GEOVANA&LARISSA&PEREIRA&GOMES') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 15:13:04 Duration: 3s875ms 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('KEMILLY&GALLIZA&DO&ESPIRITO&SANTO') limit 21 offset 20 * '0') as alunos order by nome;
Date: 2023-08-14 16:28:03 Duration: 3s566ms Bind query: yes
12 101ms 4s608ms 985ms 133 2m11s 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 #12
Day Hour Count Duration Avg duration Aug 14 09 10 11s267ms 1s126ms 10 23 17s636ms 766ms 11 26 12s279ms 472ms 12 4 1s885ms 471ms 13 26 29s49ms 1s117ms 14 23 30s651ms 1s332ms 15 9 13s593ms 1s510ms 16 10 13s405ms 1s340ms 17 2 1s332ms 666ms -
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 = '5852' 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 = '1397917' and id_turma = '230002917' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '5852' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2023-08-14 09:48:03 Duration: 4s608ms 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 = '26886' 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 = '110864' and id_turma = '230000335' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '26886' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2023-08-14 14:07:18 Duration: 4s40ms 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 = '4423' 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 = '1404911' and id_turma = '230001219' and exists ( select null from aluno_atestado atestado where atestado.id_cidadao = '4423' and atestado.flg_ativo and falta_aluno_disciplina_diario.data between atestado.data_inicio and atestado.data_fim);
Date: 2023-08-14 13:09:29 Duration: 3s546ms Bind query: yes
13 201ms 6s9ms 579ms 177 1m42s select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, ( case when faltas_anteriores >= faltas_historico_total then faltas_anteriores - (faltas_historico_ate_atual - faltas_historico_mes) else faltas_anteriores + (faltas_historico_ate_atual - faltas_historico_mes) end + (faltas_mes_ate_atual - faltas_mes))::int as faltas_anteriores, (faltas_historico_mes + faltas_mes)::int as faltas_mes, ( case when faltas_anteriores >= faltas_historico_total then faltas_anteriores - faltas_historico_total else faltas_anteriores + faltas_historico_total end + faltas_mes_total)::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_historico_mes, faltas_mes, (sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_historico_ate_atual, sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_historico_total, (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual, sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_mes_total 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 count(to_char(fh.data, ? || fh.id_horario_turma)) as falta from aluno_lancamento.falta_aluno_disciplina_diario_hist fh 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.id_turma = ts.id_turma and fh.id_disciplina = cc.id_disciplina and fh.id_aluno_matricula = a.id_aluno_matricula and extract(year from fh.data) = m.ano and extract(month from fh.data) = m.id_mes and mdp.id_motivo_dispensa_periodo isnull and fh.data <= coalesce(a.data_primeira_saida, fh.data) and fh.data >= a.data_enturmacao and rfdd.flg_concluido is true), ?)::int as faltas_historico_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 #13
Day Hour Count Duration Avg duration Aug 14 09 4 1s635ms 408ms 10 42 20s315ms 483ms 12 6 2s321ms 386ms 13 46 26s73ms 566ms 14 47 31s690ms 674ms 15 13 10s159ms 781ms 16 19 10s390ms 546ms -
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - (faltas_historico_ate_atual - faltas_historico_mes) -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + (faltas_historico_ate_atual - faltas_historico_mes) end + (faltas_mes_ate_atual - faltas_mes))::int as faltas_anteriores, (faltas_historico_mes + faltas_mes)::int as faltas_mes, -- total: anteriores (subtraindo historicas onde aplicavel) + faltas mensais ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - faltas_historico_total -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + faltas_historico_total end + faltas_mes_total)::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_historico_mes, faltas_mes, -- faltas históricas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_historico_ate_atual, sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_historico_total, -- faltas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual, sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_mes_total 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, -- faltas diárias do mês na turma do aluno remnaeejado coalesce(( select count(to_char(fh.data, 'YYYY-MM-DD' || fh.id_horario_turma)) as falta from aluno_lancamento.falta_aluno_disciplina_diario_hist fh 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.id_turma = ts.id_turma and fh.id_disciplina = cc.id_disciplina and fh.id_aluno_matricula = a.id_aluno_matricula and extract(year from fh.data) = m.ano and extract(month from fh.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and fh.data <= coalesce(a.data_primeira_saida, fh.data) -- casos em que o aluno retorna para a turma: -- as faltas historicas de antes de entrar na turma de novo já estão no falta_anterior and fh.data >= a.data_enturmacao and rfdd.flg_concluido is true), 0)::int as faltas_historico_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 = '230009048' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '15033' 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 = '230009048' and ts.id_serie = '1924' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2023-08-14 15:37:02 Duration: 6s9ms Bind query: yes
-
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - (faltas_historico_ate_atual - faltas_historico_mes) -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + (faltas_historico_ate_atual - faltas_historico_mes) end + (faltas_mes_ate_atual - faltas_mes))::int as faltas_anteriores, (faltas_historico_mes + faltas_mes)::int as faltas_mes, -- total: anteriores (subtraindo historicas onde aplicavel) + faltas mensais ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - faltas_historico_total -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + faltas_historico_total end + faltas_mes_total)::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_historico_mes, faltas_mes, -- faltas históricas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_historico_ate_atual, sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_historico_total, -- faltas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual, sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_mes_total 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, -- faltas diárias do mês na turma do aluno remnaeejado coalesce(( select count(to_char(fh.data, 'YYYY-MM-DD' || fh.id_horario_turma)) as falta from aluno_lancamento.falta_aluno_disciplina_diario_hist fh 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.id_turma = ts.id_turma and fh.id_disciplina = cc.id_disciplina and fh.id_aluno_matricula = a.id_aluno_matricula and extract(year from fh.data) = m.ano and extract(month from fh.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and fh.data <= coalesce(a.data_primeira_saida, fh.data) -- casos em que o aluno retorna para a turma: -- as faltas historicas de antes de entrar na turma de novo já estão no falta_anterior and fh.data >= a.data_enturmacao and rfdd.flg_concluido is true), 0)::int as faltas_historico_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 = '230003424' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '729' 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 = '230003424' and ts.id_serie = '85' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2023-08-14 10:33:41 Duration: 4s946ms Bind query: yes
-
select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - (faltas_historico_ate_atual - faltas_historico_mes) -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + (faltas_historico_ate_atual - faltas_historico_mes) end + (faltas_mes_ate_atual - faltas_mes))::int as faltas_anteriores, (faltas_historico_mes + faltas_mes)::int as faltas_mes, -- total: anteriores (subtraindo historicas onde aplicavel) + faltas mensais ( case -- quando remaneja, as historicas vão pra dentro das anteriores -- descontar as historicas das anteriores, se possível when faltas_anteriores >= faltas_historico_total then faltas_anteriores - faltas_historico_total -- alguns casos (exclusão da turma de destino) não tem as historicas dentro das anterioroes else faltas_anteriores + faltas_historico_total end + faltas_mes_total)::int as faltas_total from ( select id_aluno_matricula, chamada, id_disciplina, flg_dispensado, id_nota_periodo_aluno, ano, id_mes, faltas_anteriores, faltas_historico_mes, faltas_mes, -- faltas históricas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_historico_ate_atual, sum(faltas_historico_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_historico_total, -- faltas até o mês atual pra contabilizar nas anteriores desse mês (sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina order by ano, id_mes)) as faltas_mes_ate_atual, sum(faltas_mes) over (partition by id_aluno_matricula, chamada, id_disciplina) as faltas_mes_total 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, -- faltas diárias do mês na turma do aluno remnaeejado coalesce(( select count(to_char(fh.data, 'YYYY-MM-DD' || fh.id_horario_turma)) as falta from aluno_lancamento.falta_aluno_disciplina_diario_hist fh 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.id_turma = ts.id_turma and fh.id_disciplina = cc.id_disciplina and fh.id_aluno_matricula = a.id_aluno_matricula and extract(year from fh.data) = m.ano and extract(month from fh.data) = m.id_mes -- nâo somar falta de período dispensado and mdp.id_motivo_dispensa_periodo isnull and fh.data <= coalesce(a.data_primeira_saida, fh.data) -- casos em que o aluno retorna para a turma: -- as faltas historicas de antes de entrar na turma de novo já estão no falta_anterior and fh.data >= a.data_enturmacao and rfdd.flg_concluido is true), 0)::int as faltas_historico_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 = '230001309' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = '703' 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 = '230001309' and ts.id_serie = '101' and cc.flg_aponta_faltas) t) x order by id_aluno_matricula, id_disciplina, ano, id_mes;
Date: 2023-08-14 14:29:24 Duration: 4s657ms Bind query: yes
14 103ms 2s271ms 566ms 470 4m26s 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) 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 (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Aug 14 09 37 28s609ms 773ms 10 77 44s18ms 571ms 11 128 1m12s 569ms 12 44 18s265ms 415ms 13 37 28s334ms 765ms 14 33 9s516ms 288ms 15 66 36s523ms 553ms 16 32 20s421ms 638ms 17 16 7s468ms 466ms -
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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('3', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230005505', '230005506', '230005507', '230005508', '230005509', '230005510', '230005511', '230005512', '230005513', '230005514') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 09:42:03 Duration: 2s271ms 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('3', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230005109', '230005110', '230005113', '230005120', '230005121', '230005123', '230005124', '230005125', '230005126', '230005127', '230005128', '230005130') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 11:19:02 Duration: 2s11ms 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 ogc.id_componente_curricular notnull and cc.id_componente_curricular = ogc.id_componente_curricular 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 (cc.id_disciplina = pb.id_disciplina or pb.id_disciplina is null) and ts.id_serie = pb.id_serie and pb.id_nota_periodo_aluno = bimestre_para_periodo ('4', curso.serie_duracao = 2, curso.id_periodicidade_apontamento = 3) where t.id_turma in ('230000379', '230000380', '230000382', '230000383', '230000384', '230000385', '230000386', '230000387', '230000388', '230004229') and (cc.id_componente_curricular is null or cc.flg_planejamento_bimestral is true);
Date: 2023-08-14 15:45:51 Duration: 1s448ms Bind query: yes
15 100ms 5s401ms 529ms 879 7m45s 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 #15
Day Hour Count Duration Avg duration Aug 14 09 98 40s889ms 417ms 10 163 1m7s 411ms 11 164 1m24s 515ms 12 72 38s346ms 532ms 13 87 1m8s 786ms 14 95 1m3s 664ms 15 106 1m1s 579ms 16 58 32s155ms 554ms 17 36 9s367ms 260ms -
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 = '3' and oc.flg_conteudo_somente_planejados left join planejamento_organizado_conteudo poc on poc.id_planejamento_bimestral_organizado = p.id_planejamento_bimestral_organizado and poc.id_conteudo_matriz_conteudo = cmc.id_conteudo_matriz_conteudo where t.id_turma in ('230003670', '230003671', '230003672', '230003673', '230003674', '230003675', '230003676', '230003677', '230003678', '230003679', '230003680', '230003681', '230003682', '230003683', '230003684', '230003685', '230003686', '230003687', '230003688', '230003690', '230003691', '230003692', '230003693', '230003694', '230003695', '230003697', '230003698', '230003699', '230003906') and (cc.flg_aponta_conteudo_curricular or not oc.flg_componente_curricular) and (cmc.id_nota_periodo_aluno = bimestre_para_periodo ('3', 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: 2023-08-14 15:59:27 Duration: 5s401ms 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 = '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 ('230003670', '230003671', '230003672', '230003673', '230003674', '230003675', '230003676', '230003677', '230003678', '230003679', '230003680', '230003681', '230003682', '230003683', '230003684', '230003685', '230003686', '230003687', '230003688', '230003690', '230003691', '230003692', '230003693', '230003694', '230003695', '230003697', '230003698', '230003699', '230003906') 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: 2023-08-14 15:59:32 Duration: 4s804ms 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 = '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 ('230002806', '230002807', '230002808', '230002809', '230002810', '230002811', '230002812', '230002813', '230002814', '230002815', '230002816', '230002817', '230002818', '230002819', '230002820', '230002821', '230002822', '230002823') 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: 2023-08-14 13:38:00 Duration: 4s82ms Bind query: yes
16 101ms 3s859ms 367ms 421 2m34s select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = ? as flg_atribuicao_componente, c.nome as professor, greatest (?, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = ? and ts.id_serie = ? and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Aug 14 09 39 10s581ms 271ms 10 89 40s128ms 450ms 11 18 7s37ms 390ms 12 10 7s748ms 774ms 13 89 21s536ms 241ms 14 98 30s51ms 306ms 15 44 18s864ms 428ms 16 34 18s716ms 550ms -
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230007847' and ts.id_serie = '1970' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 15:12:04 Duration: 3s859ms Bind query: yes
-
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230009114' and ts.id_serie = '1971' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 16:40:41 Duration: 3s470ms Bind query: yes
-
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = '230007886' and ts.id_serie = '1967' and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 10:15:10 Duration: 3s403ms Bind query: yes
17 101ms 591ms 184ms 226 41s790ms 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 = ? 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 sda.id_horario_turma = q.id_horario_turma 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 (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 (extract(dow from cpd.data) not in (...) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (...) 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 = ? 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 (extract(dow from cpd.data) not in (...) or cd.id_motivo_dia_letivo_extra is not null) 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 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 #17
Day Hour Count Duration Avg duration Aug 14 09 16 2s708ms 169ms 10 29 5s2ms 172ms 11 59 11s458ms 194ms 12 20 3s469ms 173ms 13 18 3s226ms 179ms 14 51 10s560ms 207ms 15 16 2s764ms 172ms 16 14 2s251ms 160ms 17 3 349ms 116ms -
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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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' 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 sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') 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 (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (1, 4) 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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 ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') 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: 2023-08-14 11:44:43 Duration: 591ms 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '1' 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 sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('230002251', '230002252', '230002253', '230002254', '230002255', '230002256', '230002257', '230002258', '230002259', '230002260', '230003454', '230003455', '230003456', '230003457', '230004405', '230004406', '230008144', '230008145') 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 (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (1, 4) 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = '1' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('230002251', '230002252', '230002253', '230002254', '230002255', '230002256', '230002257', '230002258', '230002259', '230002260', '230003454', '230003455', '230003456', '230003457', '230004405', '230004406', '230008144', '230008145') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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 = '1' 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 ('230002251', '230002252', '230002253', '230002254', '230002255', '230002256', '230002257', '230002258', '230002259', '230002260', '230003454', '230003455', '230003456', '230003457', '230004405', '230004406', '230008144', '230008145') 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: 2023-08-14 09:44:09 Duration: 591ms 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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' 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 sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') 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 (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (1, 4) 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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' left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 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 = '2023' left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = '2023' 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 ('230001559', '230001560', '230001561', '230001563', '230001565', '230001566', '230001567', '230001568', '230001569', '230001571', '230001572', '230001573', '230001574', '230001575', '230001577', '230001579', '230001580', '230001581', '230001582', '230001616', '230008340', '230008341', '230008343', '230008347', '230009522', '230009524', '230009525', '230009526', '230009527', '230009529', '230009530') 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: 2023-08-14 11:44:42 Duration: 491ms Bind query: yes
18 100ms 440ms 150ms 1,621 4m3s select a.id_album_portal, a.nome, i.identificador AS "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = ? and astatus.id_status_portal = ? where a.flg_exibir_album_portal = true and a.id_instituicao = ? order by astatus.data_publicacao desc nulls last, a.nome limit ?;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Aug 14 09 107 15s59ms 140ms 10 306 44s443ms 145ms 11 163 23s72ms 141ms 12 117 14s887ms 127ms 13 286 48s440ms 169ms 14 219 36s107ms 164ms 15 227 34s984ms 154ms 16 149 21s657ms 145ms 17 47 5s305ms 112ms -
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 440ms Bind query: yes
-
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 438ms Bind query: yes
-
select a.id_album_portal, a.nome, i.identificador as "identificadorImagem", i.tipo, i.legenda, imagens.imagens from album_portal a join ( select count(*) as imagens, id_album_portal from album_portal_imagem group by id_album_portal) as imagens on imagens.id_album_portal = a.id_album_portal join imagem i on i.id_imagem = a.id_imagem_chamada join album_unidade_funcional astatus on astatus.id_album_portal = a.id_album_portal and astatus.id_unidade_funcional = '8' and astatus.id_status_portal = 'pub' where a.flg_exibir_album_portal = true and a.id_instituicao = '8' order by astatus.data_publicacao desc nulls last, a.nome limit 3;
Date: 2023-08-14 13:59:46 Duration: 433ms Bind query: yes
19 100ms 372ms 143ms 1,770 4m13s select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = ? and d.id_disciplina = ? and asem.ano = ?) and turma.id_unidade_funcional = ? union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = ? and ap.id_disciplina = ? and asem.ano = ?) and turma.id_unidade_funcional = ? order by nome;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Aug 14 09 104 15s425ms 148ms 10 58 7s407ms 127ms 13 344 1m 175ms 14 906 1m59s 131ms 15 3 306ms 102ms 16 355 50s494ms 142ms -
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '105' and d.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '345' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '105' and ap.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '345' order by nome;
Date: 2023-08-14 13:59:42 Duration: 372ms Bind query: yes
-
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '107' and d.id_disciplina = '8' and asem.ano = '2023') and turma.id_unidade_funcional = '350' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '107' and ap.id_disciplina = '8' and asem.ano = '2023') and turma.id_unidade_funcional = '350' order by nome;
Date: 2023-08-14 09:40:05 Duration: 370ms Bind query: yes
-
select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select tp.id_turma from turma_professor tp inner join turma t on tp.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join componente_curricular cc on cc.id_componente_curricular = tp.id_componente_curricular inner join disciplina d on d.id_disciplina = cc.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and tp.id_serie = '105' and d.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '372' union select distinct turma.id_turma as id_turma, turma.nome as nome from turma where exists ( select ap.id_turma from avaliacao_interna.apontamento_avaliacao_interna ap inner join turma t on ap.id_turma = t.id_turma inner join turma_serie ts on ts.id_turma = t.id_turma inner join unidade_funcional uf on uf.id_unidade_funcional = t.id_unidade_funcional inner join disciplina d on d.id_disciplina = ap.id_disciplina inner join ano_semestre asem on asem.id_ano_semestre = t.id_ano_semestre where t.id_turma = turma.id_turma and ts.id_serie = '105' and ap.id_disciplina = '9' and asem.ano = '2023') and turma.id_unidade_funcional = '372' order by nome;
Date: 2023-08-14 13:59:42 Duration: 365ms Bind query: yes
20 100ms 1s129ms 140ms 277 38s944ms 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 notnull as flg_planejado, 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, ?) and ts.id_turma = ? and ts.id_serie = ? and ogc.id_componente_curricular is null order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Aug 14 09 24 2s961ms 123ms 10 49 6s570ms 134ms 11 19 2s313ms 121ms 12 4 518ms 129ms 13 24 4s117ms 171ms 14 43 7s971ms 185ms 15 47 5s758ms 122ms 16 53 7s150ms 134ms 17 14 1s582ms 113ms -
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 notnull as flg_planejado, 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 = '6615424' 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, '2147483647') and ts.id_turma = '230000241' and ts.id_serie = '1696' and ogc.id_componente_curricular is null order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 14:51:54 Duration: 1s129ms 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 notnull as flg_planejado, 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 = '6615427' 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, '2147483647') and ts.id_turma = '230000241' and ts.id_serie = '1696' and ogc.id_componente_curricular is null order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 14:51:55 Duration: 441ms 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 notnull as flg_planejado, 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 = '190099' 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, '2147483647') and ts.id_turma = '230008403' and ts.id_serie = '1988' and ogc.id_componente_curricular is null order by d.descricao, ec.nivel, cmc.ordem, pai.id_conteudo_matriz_conteudo_pai;
Date: 2023-08-14 13:57:34 Duration: 434ms 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 9s354ms 69 100ms 298ms 135ms select date_part('year', calendario_periodo_data.data)::integer as ano, date_part('month', calendario_periodo_data.data)::integer as mes, coalesce(count( case when calendario_data.id_motivo_dia_nao_letivo is null and cc.flg_aponta_faltas is true then qh.id_horario_quadro_homologado else null end), 0)::integer as aulas, coalesce(sum(faltas.faltas), 0)::integer as faltas from aluno_matricula am 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 turma on turma.id_turma = amt.id_turma inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = $1 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 amsh.id_aluno_matr_status, amsh.data_ocorrencia from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= $2 and amsh.id_aluno_matr_status not in (1, 5) order by amsh.data_ocorrencia desc limit 1) situacao on 1 = 1 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) calendario_periodo_turma on 1 = 1 inner join lateral ( select greatest (am.data_matricula::date, calendario_periodo_turma.inicio) as inicio, least (calendario_periodo_turma.fim, situacao.data_ocorrencia::date) as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario inner join dia_semana on dia_semana.dia_semana_postgresql = extract(dow from calendario_periodo_data.data) left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = dia_semana.dia_semana inner join horario_quadro_homologado on horario_quadro_homologado.id_horario_quadro_homologado = qh.id_horario_quadro_homologado inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular 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 lateral ( select count(falta.id_aluno_matricula)::integer as faltas from falta_aluno_disciplina_diario falta inner join horario_turma on horario_turma.id_horario_turma = falta.id_horario_turma where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and cc.flg_aponta_faltas is true and falta.data = calendario_periodo_data.data and calendario_data.id_motivo_dia_nao_letivo is null and falta.flg_justificada is false and horario_turma.horario_inicio = horario_quadro_homologado.horario_inicio and horario_turma.horario_termino = horario_quadro_homologado.horario_termino) as faltas on 1 = 1 where am.id_cidadao = $3 and ano.ano = $4 and calendario_periodo_data.data <= $5 and serie.flg_apon_falta_globalizado is false 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 (disp.flg_dispensado_todos_periodos is true or disp.periodos @> ARRAY[turma_periodo.id_nota_periodo_aluno])) and calendario_periodo_data.data between datas.inicio and datas.fim and (extract(dow from calendario_periodo_data.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not 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 date_part('year', calendario_periodo_data.data), date_part('month', calendario_periodo_data.data) order by ano, mes;Times Reported Time consuming bind #1
Day Hour Count Duration Avg duration Aug 14 09 7 880ms 125ms 10 7 1s67ms 152ms 11 4 649ms 162ms 12 4 484ms 121ms 13 13 1s957ms 150ms 14 13 1s738ms 133ms 15 6 751ms 125ms 16 13 1s599ms 123ms 17 2 227ms 113ms -
select date_part('year', calendario_periodo_data.data)::integer as ano, date_part('month', calendario_periodo_data.data)::integer as mes, coalesce(count( case when calendario_data.id_motivo_dia_nao_letivo is null and cc.flg_aponta_faltas is true then qh.id_horario_quadro_homologado else null end), 0)::integer as aulas, coalesce(sum(faltas.faltas), 0)::integer as faltas from aluno_matricula am 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 turma on turma.id_turma = amt.id_turma inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = $1 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 amsh.id_aluno_matr_status, amsh.data_ocorrencia from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= $2 and amsh.id_aluno_matr_status not in (1, 5) order by amsh.data_ocorrencia desc limit 1) situacao on 1 = 1 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) calendario_periodo_turma on 1 = 1 inner join lateral ( select greatest (am.data_matricula::date, calendario_periodo_turma.inicio) as inicio, least (calendario_periodo_turma.fim, situacao.data_ocorrencia::date) as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario inner join dia_semana on dia_semana.dia_semana_postgresql = extract(dow from calendario_periodo_data.data) left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = dia_semana.dia_semana inner join horario_quadro_homologado on horario_quadro_homologado.id_horario_quadro_homologado = qh.id_horario_quadro_homologado inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular 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 lateral ( select count(falta.id_aluno_matricula)::integer as faltas from falta_aluno_disciplina_diario falta inner join horario_turma on horario_turma.id_horario_turma = falta.id_horario_turma where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and cc.flg_aponta_faltas is true and falta.data = calendario_periodo_data.data and calendario_data.id_motivo_dia_nao_letivo is null and falta.flg_justificada is false and horario_turma.horario_inicio = horario_quadro_homologado.horario_inicio and horario_turma.horario_termino = horario_quadro_homologado.horario_termino) as faltas on 1 = 1 where am.id_cidadao = $3 and ano.ano = $4 and calendario_periodo_data.data <= $5 and serie.flg_apon_falta_globalizado is false 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 (disp.flg_dispensado_todos_periodos is true or disp.periodos @> ARRAY[turma_periodo.id_nota_periodo_aluno])) and calendario_periodo_data.data between datas.inicio and datas.fim and (extract(dow from calendario_periodo_data.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not 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 date_part('year', calendario_periodo_data.data), date_part('month', calendario_periodo_data.data) order by ano, mes;
Date: 2023-08-14 13:58:17 Duration: 298ms Database: postgres parameters: $1 = '230004734', $2 = '230004735', $3 = '230004736', $4 = '230004737', $5 = '230004738', $6 = '230004739', $7 = '230004740', $8 = '230004741', $9 = '230004746', $10 = '1774732', $11 = '2023-08-14 10:47:08.061', $12 = '2023-08-14 10:47:08.061'
-
select date_part('year', calendario_periodo_data.data)::integer as ano, date_part('month', calendario_periodo_data.data)::integer as mes, coalesce(count( case when calendario_data.id_motivo_dia_nao_letivo is null and cc.flg_aponta_faltas is true then qh.id_horario_quadro_homologado else null end), 0)::integer as aulas, coalesce(sum(faltas.faltas), 0)::integer as faltas from aluno_matricula am 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 turma on turma.id_turma = amt.id_turma inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = $1 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 amsh.id_aluno_matr_status, amsh.data_ocorrencia from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= $2 and amsh.id_aluno_matr_status not in (1, 5) order by amsh.data_ocorrencia desc limit 1) situacao on 1 = 1 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) calendario_periodo_turma on 1 = 1 inner join lateral ( select greatest (am.data_matricula::date, calendario_periodo_turma.inicio) as inicio, least (calendario_periodo_turma.fim, situacao.data_ocorrencia::date) as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario inner join dia_semana on dia_semana.dia_semana_postgresql = extract(dow from calendario_periodo_data.data) left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = dia_semana.dia_semana inner join horario_quadro_homologado on horario_quadro_homologado.id_horario_quadro_homologado = qh.id_horario_quadro_homologado inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular 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 lateral ( select count(falta.id_aluno_matricula)::integer as faltas from falta_aluno_disciplina_diario falta inner join horario_turma on horario_turma.id_horario_turma = falta.id_horario_turma where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and cc.flg_aponta_faltas is true and falta.data = calendario_periodo_data.data and calendario_data.id_motivo_dia_nao_letivo is null and falta.flg_justificada is false and horario_turma.horario_inicio = horario_quadro_homologado.horario_inicio and horario_turma.horario_termino = horario_quadro_homologado.horario_termino) as faltas on 1 = 1 where am.id_cidadao = $3 and ano.ano = $4 and calendario_periodo_data.data <= $5 and serie.flg_apon_falta_globalizado is false 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 (disp.flg_dispensado_todos_periodos is true or disp.periodos @> ARRAY[turma_periodo.id_nota_periodo_aluno])) and calendario_periodo_data.data between datas.inicio and datas.fim and (extract(dow from calendario_periodo_data.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not 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 date_part('year', calendario_periodo_data.data), date_part('month', calendario_periodo_data.data) order by ano, mes;
Date: 2023-08-14 13:56:54 Duration: 278ms Database: postgres parameters: $1 = '2023', $2 = '2023-08-14', $3 = '1687166', $4 = '2023', $5 = '2023-08-14'
-
select date_part('year', calendario_periodo_data.data)::integer as ano, date_part('month', calendario_periodo_data.data)::integer as mes, coalesce(count( case when calendario_data.id_motivo_dia_nao_letivo is null and cc.flg_aponta_faltas is true then qh.id_horario_quadro_homologado else null end), 0)::integer as aulas, coalesce(sum(faltas.faltas), 0)::integer as faltas from aluno_matricula am 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 turma on turma.id_turma = amt.id_turma inner join escola_calendario on escola_calendario.id_unidade_funcional = am.id_unidade_funcional and escola_calendario.ano = $1 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 amsh.id_aluno_matr_status, amsh.data_ocorrencia from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= $2 and amsh.id_aluno_matr_status not in (1, 5) order by amsh.data_ocorrencia desc limit 1) situacao on 1 = 1 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) calendario_periodo_turma on 1 = 1 inner join lateral ( select greatest (am.data_matricula::date, calendario_periodo_turma.inicio) as inicio, least (calendario_periodo_turma.fim, situacao.data_ocorrencia::date) as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario inner join dia_semana on dia_semana.dia_semana_postgresql = extract(dow from calendario_periodo_data.data) left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data inner join quadro_horario_homologado qh on qh.id_turma = amt.id_turma and qh.id_serie = amt.id_serie_enturmacao and qh.dia_semana = dia_semana.dia_semana inner join horario_quadro_homologado on horario_quadro_homologado.id_horario_quadro_homologado = qh.id_horario_quadro_homologado inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular 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 lateral ( select count(falta.id_aluno_matricula)::integer as faltas from falta_aluno_disciplina_diario falta inner join horario_turma on horario_turma.id_horario_turma = falta.id_horario_turma where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.id_disciplina = cc.id_disciplina and cc.flg_aponta_faltas is true and falta.data = calendario_periodo_data.data and calendario_data.id_motivo_dia_nao_letivo is null and falta.flg_justificada is false and horario_turma.horario_inicio = horario_quadro_homologado.horario_inicio and horario_turma.horario_termino = horario_quadro_homologado.horario_termino) as faltas on 1 = 1 where am.id_cidadao = $3 and ano.ano = $4 and calendario_periodo_data.data <= $5 and serie.flg_apon_falta_globalizado is false 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 (disp.flg_dispensado_todos_periodos is true or disp.periodos @> ARRAY[turma_periodo.id_nota_periodo_aluno])) and calendario_periodo_data.data between datas.inicio and datas.fim and (extract(dow from calendario_periodo_data.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not 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 date_part('year', calendario_periodo_data.data), date_part('month', calendario_periodo_data.data) order by ano, mes;
Date: 2023-08-14 14:19:46 Duration: 237ms Database: postgres parameters: $1 = '0', $2 = '0', $3 = '0', $4 = '2147483647', $5 = '230004734', $6 = '1999', $7 = '1836'
2 2s198ms 17 101ms 181ms 129ms select date_part('year', calendario_periodo_data.data)::integer as ano, date_part('month', calendario_periodo_data.data)::integer as mes, coalesce(count(distinct case when calendario_data.id_motivo_dia_nao_letivo is null then calendario_periodo_data.data else null end), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas from aluno_matricula am 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 = $1 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 amsh.id_aluno_matr_status, amsh.data_ocorrencia from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= $2 and amsh.id_aluno_matr_status not in (1, 5) order by amsh.data_ocorrencia desc limit 1) situacao on 1 = 1 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) calendario_periodo_turma on 1 = 1 inner join lateral ( select greatest (am.data_matricula::date, calendario_periodo_turma.inicio) as inicio, least (calendario_periodo_turma.fim, situacao.data_ocorrencia::date) as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and calendario_data.id_motivo_dia_nao_letivo is null where am.id_cidadao = $3 and ano.ano = $4 and calendario_periodo_data.data <= $5 and serie.flg_apon_falta_globalizado is true and calendario_periodo_data.data between datas.inicio and datas.fim and (extract(dow from calendario_periodo_data.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null) group by date_part('year', calendario_periodo_data.data), date_part('month', calendario_periodo_data.data) order by ano, mes;Times Reported Time consuming bind #2
Day Hour Count Duration Avg duration 08 3 361ms 120ms 09 1 131ms 131ms 10 1 152ms 152ms 12 8 1s47ms 130ms 13 4 505ms 126ms -
select date_part('year', calendario_periodo_data.data)::integer as ano, date_part('month', calendario_periodo_data.data)::integer as mes, coalesce(count(distinct case when calendario_data.id_motivo_dia_nao_letivo is null then calendario_periodo_data.data else null end), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas from aluno_matricula am 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 = $1 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 amsh.id_aluno_matr_status, amsh.data_ocorrencia from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= $2 and amsh.id_aluno_matr_status not in (1, 5) order by amsh.data_ocorrencia desc limit 1) situacao on 1 = 1 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) calendario_periodo_turma on 1 = 1 inner join lateral ( select greatest (am.data_matricula::date, calendario_periodo_turma.inicio) as inicio, least (calendario_periodo_turma.fim, situacao.data_ocorrencia::date) as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and calendario_data.id_motivo_dia_nao_letivo is null where am.id_cidadao = $3 and ano.ano = $4 and calendario_periodo_data.data <= $5 and serie.flg_apon_falta_globalizado is true and calendario_periodo_data.data between datas.inicio and datas.fim and (extract(dow from calendario_periodo_data.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null) group by date_part('year', calendario_periodo_data.data), date_part('month', calendario_periodo_data.data) order by ano, mes;
Date: 2023-08-14 14:19:20 Duration: 181ms Database: postgres parameters: $1 = '0', $2 = '6602467', $3 = '0', $4 = '2147483647', $5 = '230007898', $6 = '1949', $7 = '1804'
-
select date_part('year', calendario_periodo_data.data)::integer as ano, date_part('month', calendario_periodo_data.data)::integer as mes, coalesce(count(distinct case when calendario_data.id_motivo_dia_nao_letivo is null then calendario_periodo_data.data else null end), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas from aluno_matricula am 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 = $1 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 amsh.id_aluno_matr_status, amsh.data_ocorrencia from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= $2 and amsh.id_aluno_matr_status not in (1, 5) order by amsh.data_ocorrencia desc limit 1) situacao on 1 = 1 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) calendario_periodo_turma on 1 = 1 inner join lateral ( select greatest (am.data_matricula::date, calendario_periodo_turma.inicio) as inicio, least (calendario_periodo_turma.fim, situacao.data_ocorrencia::date) as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and calendario_data.id_motivo_dia_nao_letivo is null where am.id_cidadao = $3 and ano.ano = $4 and calendario_periodo_data.data <= $5 and serie.flg_apon_falta_globalizado is true and calendario_periodo_data.data between datas.inicio and datas.fim and (extract(dow from calendario_periodo_data.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null) group by date_part('year', calendario_periodo_data.data), date_part('month', calendario_periodo_data.data) order by ano, mes;
Date: 2023-08-14 13:59:46 Duration: 171ms Database: postgres parameters: $1 = '0', $2 = '0', $3 = '0', $4 = '2147483647', $5 = '230006513', $6 = '1983', $7 = '1837'
-
select date_part('year', calendario_periodo_data.data)::integer as ano, date_part('month', calendario_periodo_data.data)::integer as mes, coalesce(count(distinct case when calendario_data.id_motivo_dia_nao_letivo is null then calendario_periodo_data.data else null end), 0)::integer as aulas, coalesce(count(falta.id_aluno_matricula), 0)::integer as faltas from aluno_matricula am 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 = $1 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 amsh.id_aluno_matr_status, amsh.data_ocorrencia from aluno_matr_status_hist amsh where amsh.id_aluno_matricula = am.id_aluno_matricula and amsh.data_ocorrencia::date <= $2 and amsh.id_aluno_matr_status not in (1, 5) order by amsh.data_ocorrencia desc limit 1) situacao on 1 = 1 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) calendario_periodo_turma on 1 = 1 inner join lateral ( select greatest (am.data_matricula::date, calendario_periodo_turma.inicio) as inicio, least (calendario_periodo_turma.fim, situacao.data_ocorrencia::date) as fim) datas on 1 = 1 inner join calendario_periodo_data on calendario_periodo_data.id_calendario = escola_calendario.id_calendario left join calendario_data on calendario_data.id_calendario = calendario_periodo_data.id_calendario and calendario_data.data = calendario_periodo_data.data left join falta_aluno_globalizada_diario falta on falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = amt.id_turma and falta.data = calendario_periodo_data.data and falta.flg_justificada is false and calendario_data.id_motivo_dia_nao_letivo is null where am.id_cidadao = $3 and ano.ano = $4 and calendario_periodo_data.data <= $5 and serie.flg_apon_falta_globalizado is true and calendario_periodo_data.data between datas.inicio and datas.fim and (extract(dow from calendario_periodo_data.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null) group by date_part('year', calendario_periodo_data.data), date_part('month', calendario_periodo_data.data) order by ano, mes;
Date: 2023-08-14 13:59:45 Duration: 165ms Database: postgres parameters: $1 = '606651', $2 = '66', $3 = '2', $4 = '1981', $5 = '1', $6 = '2', $7 = '3', $8 = '0', $9 = '100', $10 = '606651', $11 = '66', $12 = '2', $13 = '1981', $14 = '1', $15 = '2', $16 = '3', $17 = '0', $18 = '100'
3 1s255ms 1 1s255ms 1s255ms 1s255ms select id_indicador, chave_texto, id_indicador || '_' || coalesce(chave::varchar, chave_texto, '') as identificador, valor, min, q1, mediana, q3, max, data from indicador_5min where id_indicador in (36, 24) and data > (now() - interval '1 day') and (id_instituicao is null or id_instituicao = $1) order by data;Times Reported Time consuming bind #3
Day Hour Count Duration Avg duration 14 1 1s255ms 1s255ms -
select id_indicador, chave_texto, id_indicador || '_' || coalesce(chave::varchar, chave_texto, '') as identificador, valor, min, q1, mediana, q3, max, data from indicador_5min where id_indicador in (36, 24) and data > (now() - interval '1 day') and (id_instituicao is null or id_instituicao = $1) order by data;
Date: 2023-08-14 15:41:00 Duration: 1s255ms Database: postgres parameters: $1 = '606651', $2 = '66', $3 = '2', $4 = '1981', $5 = '1', $6 = '2', $7 = '3', $8 = '0', $9 = '100', $10 = '606651', $11 = '66', $12 = '2', $13 = '1981', $14 = '1', $15 = '2', $16 = '3', $17 = '0', $18 = '100'
4 759ms 6 108ms 186ms 126ms insert into indicador_1hora (id_indicador, data, chave, chave_texto, id_instituicao, valor) select id_indicador, $1, chave, chave_texto, id_instituicao, sum(valor) from indicador_5min where data between $2 and $3 and id_indicador in ( select id_indicador from indicador where id_consolidacao_indicador = 2 and id_periodicidade_indicador in (1, 2)) group by id_indicador, chave, chave_texto, id_instituicao;Times Reported Time consuming bind #4
Day Hour Count Duration Avg duration 10 1 108ms 108ms 11 2 243ms 121ms 13 2 221ms 110ms 15 1 186ms 186ms -
insert into indicador_1hora (id_indicador, data, chave, chave_texto, id_instituicao, valor) select id_indicador, $1, chave, chave_texto, id_instituicao, sum(valor) from indicador_5min where data between $2 and $3 and id_indicador in ( select id_indicador from indicador where id_consolidacao_indicador = 2 and id_periodicidade_indicador in (1, 2)) group by id_indicador, chave, chave_texto, id_instituicao;
Date: 2023-08-14 16:05:00 Duration: 186ms Database: postgres
-
insert into indicador_1hora (id_indicador, data, chave, chave_texto, id_instituicao, valor) select id_indicador, $1, chave, chave_texto, id_instituicao, sum(valor) from indicador_5min where data between $2 and $3 and id_indicador in ( select id_indicador from indicador where id_consolidacao_indicador = 2 and id_periodicidade_indicador in (1, 2)) group by id_indicador, chave, chave_texto, id_instituicao;
Date: 2023-08-14 12:05:00 Duration: 124ms Database: postgres parameters: $1 = '2023-08-14', $2 = '2023-08-13 12:05:00', $3 = '2023-08-14 12:00:00'
-
insert into indicador_1hora (id_indicador, data, chave, chave_texto, id_instituicao, valor) select id_indicador, $1, chave, chave_texto, id_instituicao, sum(valor) from indicador_5min where data between $2 and $3 and id_indicador in ( select id_indicador from indicador where id_consolidacao_indicador = 2 and id_periodicidade_indicador in (1, 2)) group by id_indicador, chave, chave_texto, id_instituicao;
Date: 2023-08-14 11:05:00 Duration: 118ms Database: postgres parameters: $1 = '2023-08-14', $2 = '2023-08-13 12:05:00', $3 = '2023-08-14 12:00:00'
5 733ms 5 102ms 235ms 146ms 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))::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 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 = $1 left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = $2 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 #5
Day Hour Count Duration Avg duration 09 2 206ms 103ms 12 1 181ms 181ms 15 2 345ms 172ms -
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))::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 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 = $1 left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = $2 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: 2023-08-14 16:14:34 Duration: 235ms Database: postgres parameters: $1 = '230002019', $2 = '882'
-
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))::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 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 = $1 left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = $2 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: 2023-08-14 13:38:01 Duration: 181ms Database: postgres parameters: $1 = '230000770', $2 = '798'
-
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))::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 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 = $1 left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data = cpd.data where cpd.id_calendario = $2 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: 2023-08-14 16:37:08 Duration: 109ms Database: postgres parameters: $1 = '230003041', $2 = '729'
6 717ms 6 106ms 152ms 119ms select fad.id_turma, fad.id_aluno_matricula, fad.id_disciplina, fad.id_nota_periodo_aluno, fad.falta_justificada, fad.falta_nao_justificada, fad.qtd_faltas from falta_aluno_disciplina fad inner join turma on turma.id_turma = fad.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_frequencia_diaria is false and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = $1) and tc.id_turma = fad.id_turma and d.id_disciplina = fad.id_disciplina) and exists ( select null from registro_falta_disciplina registro where registro.data_atualizacao > $2 and registro.id_turma = fad.id_turma and registro.id_disciplina = fad.id_disciplina and registro.id_nota_periodo_aluno = fad.id_nota_periodo_aluno) union all select fad.id_turma, fad.id_aluno_matricula, fad.id_disciplina, fad.id_nota_periodo_aluno, fad.falta_justificada, fad.falta_nao_justificada, fad.qtd_faltas from falta_aluno_disciplina fad inner join turma on turma.id_turma = fad.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_frequencia_diaria is false and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = turma.id_turma and tras.id_cidadao = $3) and exists ( select null from registro_falta_disciplina registro where registro.data_atualizacao > $4 and registro.id_turma = fad.id_turma and registro.id_disciplina = fad.id_disciplina and registro.id_nota_periodo_aluno = fad.id_nota_periodo_aluno);Times Reported Time consuming bind #6
Day Hour Count Duration Avg duration 08 1 106ms 106ms 12 1 120ms 120ms 13 3 368ms 122ms 15 1 122ms 122ms -
select fad.id_turma, fad.id_aluno_matricula, fad.id_disciplina, fad.id_nota_periodo_aluno, fad.falta_justificada, fad.falta_nao_justificada, fad.qtd_faltas from falta_aluno_disciplina fad inner join turma on turma.id_turma = fad.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_frequencia_diaria is false and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = $1) and tc.id_turma = fad.id_turma and d.id_disciplina = fad.id_disciplina) and exists ( select null from registro_falta_disciplina registro where registro.data_atualizacao > $2 and registro.id_turma = fad.id_turma and registro.id_disciplina = fad.id_disciplina and registro.id_nota_periodo_aluno = fad.id_nota_periodo_aluno) union all select fad.id_turma, fad.id_aluno_matricula, fad.id_disciplina, fad.id_nota_periodo_aluno, fad.falta_justificada, fad.falta_nao_justificada, fad.qtd_faltas from falta_aluno_disciplina fad inner join turma on turma.id_turma = fad.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_frequencia_diaria is false and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = turma.id_turma and tras.id_cidadao = $3) and exists ( select null from registro_falta_disciplina registro where registro.data_atualizacao > $4 and registro.id_turma = fad.id_turma and registro.id_disciplina = fad.id_disciplina and registro.id_nota_periodo_aluno = fad.id_nota_periodo_aluno);
Date: 2023-08-14 14:51:26 Duration: 152ms Database: postgres parameters: $1 = '220003084', $2 = '230008401', $3 = '2023-08-14 14:49:37.914'
-
select fad.id_turma, fad.id_aluno_matricula, fad.id_disciplina, fad.id_nota_periodo_aluno, fad.falta_justificada, fad.falta_nao_justificada, fad.qtd_faltas from falta_aluno_disciplina fad inner join turma on turma.id_turma = fad.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_frequencia_diaria is false and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = $1) and tc.id_turma = fad.id_turma and d.id_disciplina = fad.id_disciplina) and exists ( select null from registro_falta_disciplina registro where registro.data_atualizacao > $2 and registro.id_turma = fad.id_turma and registro.id_disciplina = fad.id_disciplina and registro.id_nota_periodo_aluno = fad.id_nota_periodo_aluno) union all select fad.id_turma, fad.id_aluno_matricula, fad.id_disciplina, fad.id_nota_periodo_aluno, fad.falta_justificada, fad.falta_nao_justificada, fad.qtd_faltas from falta_aluno_disciplina fad inner join turma on turma.id_turma = fad.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_frequencia_diaria is false and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = turma.id_turma and tras.id_cidadao = $3) and exists ( select null from registro_falta_disciplina registro where registro.data_atualizacao > $4 and registro.id_turma = fad.id_turma and registro.id_disciplina = fad.id_disciplina and registro.id_nota_periodo_aluno = fad.id_nota_periodo_aluno);
Date: 2023-08-14 16:16:19 Duration: 122ms Database: postgres parameters: $1 = '220004044', $2 = '230007407', $3 = '2023-08-14 16:16:13.039'
-
select fad.id_turma, fad.id_aluno_matricula, fad.id_disciplina, fad.id_nota_periodo_aluno, fad.falta_justificada, fad.falta_nao_justificada, fad.qtd_faltas from falta_aluno_disciplina fad inner join turma on turma.id_turma = fad.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_frequencia_diaria is false and exists ( select null from turma_componente_servidor tcs inner join turma_componente tc on tc.id_turma_componente = tcs.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma_disciplina on turma_disciplina.id_turma = tc.id_turma and turma_disciplina.id_componente_curricular = cc.id_componente_curricular inner join disciplina d on d.id_disciplina = coalesce(cc.id_disciplina, turma_disciplina.id_disciplina) where tcs.id_servidor_cargo_base in ( select id_servidor_cargo_base from servidor_cargo_base where flg_aberto = true and id_cidadao = $1) and tc.id_turma = fad.id_turma and d.id_disciplina = fad.id_disciplina) and exists ( select null from registro_falta_disciplina registro where registro.data_atualizacao > $2 and registro.id_turma = fad.id_turma and registro.id_disciplina = fad.id_disciplina and registro.id_nota_periodo_aluno = fad.id_nota_periodo_aluno) union all select fad.id_turma, fad.id_aluno_matricula, fad.id_disciplina, fad.id_nota_periodo_aluno, fad.falta_justificada, fad.falta_nao_justificada, fad.qtd_faltas from falta_aluno_disciplina fad inner join turma on turma.id_turma = fad.id_turma where turma.id_turma_status = 1 and turma.flg_organizada is true and turma.flg_frequencia_diaria is false and exists ( select null from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tras.id_turma_regencia_atribuicao = tra.id_turma_regencia_atribuicao where tra.id_turma = turma.id_turma and tras.id_cidadao = $3) and exists ( select null from registro_falta_disciplina registro where registro.data_atualizacao > $4 and registro.id_turma = fad.id_turma and registro.id_disciplina = fad.id_disciplina and registro.id_nota_periodo_aluno = fad.id_nota_periodo_aluno);
Date: 2023-08-14 13:44:02 Duration: 120ms Database: postgres parameters: $1 = '82', $2 = 'ANA&PAULA&DA&SILVA&COSTA', $3 = '0'
7 676ms 4 131ms 204ms 169ms select matricula, aluno, curso, serie, turma, disciplina as "componenteCurricular", professor, nc1, round(cast(nota1 as numeric), 2) as media1, dispensa1, nc2, round(cast(nota2 as numeric), 2) as media2, dispensa2, nc3, round(cast(nota3 as numeric), 2) as media3, dispensa3, nc4, round(cast(nota4 as numeric), 2) as media4, dispensa4, ncrec, round(cast(nota_rec as numeric), 2) as media_rec, case when notas_lancadas > 0 then arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) else null end as "mediaGeral" from ( select a.codigo as matricula, cid.nome as aluno, c.sigla as curso, s.sigla as serie, t.codigo as turma, d.descricao as disciplina, na1.flg_nao_compareceu as nc1, na1.nota as nota1, dispensa.periodos is not null and dispensa.periodos @> ARRAY[1] dispensa1, na2.flg_nao_compareceu as nc2, na2.nota as nota2, dispensa.periodos is not null and dispensa.periodos @> ARRAY[2] dispensa2, na3.flg_nao_compareceu as nc3, na3.nota as nota3, dispensa.periodos is not null and dispensa.periodos @> ARRAY[3] dispensa3, na4.flg_nao_compareceu as nc4, na4.nota as nota4, dispensa.periodos is not null and dispensa.periodos @> ARRAY[4] dispensa4, narec.flg_nao_compareceu as ncrec, narec.nota as nota_rec, coalesce(na1.nota, 0) + coalesce(na2.nota, 0) + coalesce(na3.nota, 0) + coalesce(na4.nota, 0) as nota_soma, case when na1.flg_nao_compareceu is true or na1.nota is not null then 1 else 0 end + case when na2.flg_nao_compareceu is true or na2.nota is not null then 1 else 0 end + case when na3.flg_nao_compareceu is true or na3.nota is not null then 1 else 0 end + case when na4.flg_nao_compareceu is true or na4.nota is not null then 1 else 0 end as notas_lancadas, (pa.nota_min_aprovacao / 100.0) * s.valor_maximo_nota as nota_min_aprovacao, pa.id_tipo_arredondamento, (coalesce(( select cidadao.nome from turma_componente tc inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tcs.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tc.id_turma = t.id_turma and cc.id_componente_curricular = tc.id_componente_curricular), ( select cidadao.nome from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tras.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tra.id_turma = t.id_turma))) as professor from aluno a inner join cidadao cid on cid.id_cidadao = a.id_cidadao inner join aluno_matricula am on am.id_cidadao = a.id_cidadao inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join curso c on am.id_curso = c.id_curso inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join serie s on ts.id_serie = s.id_serie inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao 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 left join aluno_matr_dispensa_disciplina dispensa on dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = t.id_turma and dispensa.id_disciplina = d.id_disciplina left join nota_aluno na1 on na1.id_aluno_matricula = am.id_aluno_matricula and na1.id_turma = t.id_turma and na1.id_nota_periodo_aluno = 1 and na1.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[1]) left join nota_aluno na2 on na2.id_aluno_matricula = am.id_aluno_matricula and na2.id_turma = t.id_turma and na2.id_nota_periodo_aluno = 2 and na2.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[2]) left join nota_aluno na3 on na3.id_aluno_matricula = am.id_aluno_matricula and na3.id_turma = t.id_turma and na3.id_nota_periodo_aluno = 3 and na3.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[3]) left join nota_aluno na4 on na4.id_aluno_matricula = am.id_aluno_matricula and na4.id_turma = t.id_turma and na4.id_nota_periodo_aluno = 4 and na4.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[4]) left join nota_aluno narec on narec.id_aluno_matricula = am.id_aluno_matricula and narec.id_turma = t.id_turma and narec.id_nota_periodo_aluno = 6 and narec.id_disciplina = d.id_disciplina where cid.id_instituicao = $1 and asem.ano = $2 and am.id_aluno_matr_status in (1, 2, 7) and am.id_unidade_funcional = $3 and dispensa.flg_dispensado_todos_periodos is not true and s.id_forma_avaliacao in (1, 2)) as alunos where notas_lancadas > 0 and arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) < nota_min_aprovacao order by aluno, curso, serie, turma, "componenteCurricular" limit 10;Times Reported Time consuming bind #7
Day Hour Count Duration Avg duration 09 4 676ms 169ms -
select matricula, aluno, curso, serie, turma, disciplina as "componenteCurricular", professor, nc1, round(cast(nota1 as numeric), 2) as media1, dispensa1, nc2, round(cast(nota2 as numeric), 2) as media2, dispensa2, nc3, round(cast(nota3 as numeric), 2) as media3, dispensa3, nc4, round(cast(nota4 as numeric), 2) as media4, dispensa4, ncrec, round(cast(nota_rec as numeric), 2) as media_rec, case when notas_lancadas > 0 then arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) else null end as "mediaGeral" from ( select a.codigo as matricula, cid.nome as aluno, c.sigla as curso, s.sigla as serie, t.codigo as turma, d.descricao as disciplina, na1.flg_nao_compareceu as nc1, na1.nota as nota1, dispensa.periodos is not null and dispensa.periodos @> ARRAY[1] dispensa1, na2.flg_nao_compareceu as nc2, na2.nota as nota2, dispensa.periodos is not null and dispensa.periodos @> ARRAY[2] dispensa2, na3.flg_nao_compareceu as nc3, na3.nota as nota3, dispensa.periodos is not null and dispensa.periodos @> ARRAY[3] dispensa3, na4.flg_nao_compareceu as nc4, na4.nota as nota4, dispensa.periodos is not null and dispensa.periodos @> ARRAY[4] dispensa4, narec.flg_nao_compareceu as ncrec, narec.nota as nota_rec, coalesce(na1.nota, 0) + coalesce(na2.nota, 0) + coalesce(na3.nota, 0) + coalesce(na4.nota, 0) as nota_soma, case when na1.flg_nao_compareceu is true or na1.nota is not null then 1 else 0 end + case when na2.flg_nao_compareceu is true or na2.nota is not null then 1 else 0 end + case when na3.flg_nao_compareceu is true or na3.nota is not null then 1 else 0 end + case when na4.flg_nao_compareceu is true or na4.nota is not null then 1 else 0 end as notas_lancadas, (pa.nota_min_aprovacao / 100.0) * s.valor_maximo_nota as nota_min_aprovacao, pa.id_tipo_arredondamento, (coalesce(( select cidadao.nome from turma_componente tc inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tcs.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tc.id_turma = t.id_turma and cc.id_componente_curricular = tc.id_componente_curricular), ( select cidadao.nome from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tras.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tra.id_turma = t.id_turma))) as professor from aluno a inner join cidadao cid on cid.id_cidadao = a.id_cidadao inner join aluno_matricula am on am.id_cidadao = a.id_cidadao inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join curso c on am.id_curso = c.id_curso inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join serie s on ts.id_serie = s.id_serie inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao 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 left join aluno_matr_dispensa_disciplina dispensa on dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = t.id_turma and dispensa.id_disciplina = d.id_disciplina left join nota_aluno na1 on na1.id_aluno_matricula = am.id_aluno_matricula and na1.id_turma = t.id_turma and na1.id_nota_periodo_aluno = 1 and na1.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[1]) left join nota_aluno na2 on na2.id_aluno_matricula = am.id_aluno_matricula and na2.id_turma = t.id_turma and na2.id_nota_periodo_aluno = 2 and na2.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[2]) left join nota_aluno na3 on na3.id_aluno_matricula = am.id_aluno_matricula and na3.id_turma = t.id_turma and na3.id_nota_periodo_aluno = 3 and na3.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[3]) left join nota_aluno na4 on na4.id_aluno_matricula = am.id_aluno_matricula and na4.id_turma = t.id_turma and na4.id_nota_periodo_aluno = 4 and na4.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[4]) left join nota_aluno narec on narec.id_aluno_matricula = am.id_aluno_matricula and narec.id_turma = t.id_turma and narec.id_nota_periodo_aluno = 6 and narec.id_disciplina = d.id_disciplina where cid.id_instituicao = $1 and asem.ano = $2 and am.id_aluno_matr_status in (1, 2, 7) and am.id_unidade_funcional = $3 and dispensa.flg_dispensado_todos_periodos is not true and s.id_forma_avaliacao in (1, 2)) as alunos where notas_lancadas > 0 and arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) < nota_min_aprovacao order by aluno, curso, serie, turma, "componenteCurricular" limit 10;
Date: 2023-08-14 10:03:28 Duration: 204ms Database: postgres parameters: $1 = '91', $2 = '2023', $3 = '606219'
-
select matricula, aluno, curso, serie, turma, disciplina as "componenteCurricular", professor, nc1, round(cast(nota1 as numeric), 2) as media1, dispensa1, nc2, round(cast(nota2 as numeric), 2) as media2, dispensa2, nc3, round(cast(nota3 as numeric), 2) as media3, dispensa3, nc4, round(cast(nota4 as numeric), 2) as media4, dispensa4, ncrec, round(cast(nota_rec as numeric), 2) as media_rec, case when notas_lancadas > 0 then arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) else null end as "mediaGeral" from ( select a.codigo as matricula, cid.nome as aluno, c.sigla as curso, s.sigla as serie, t.codigo as turma, d.descricao as disciplina, na1.flg_nao_compareceu as nc1, na1.nota as nota1, dispensa.periodos is not null and dispensa.periodos @> ARRAY[1] dispensa1, na2.flg_nao_compareceu as nc2, na2.nota as nota2, dispensa.periodos is not null and dispensa.periodos @> ARRAY[2] dispensa2, na3.flg_nao_compareceu as nc3, na3.nota as nota3, dispensa.periodos is not null and dispensa.periodos @> ARRAY[3] dispensa3, na4.flg_nao_compareceu as nc4, na4.nota as nota4, dispensa.periodos is not null and dispensa.periodos @> ARRAY[4] dispensa4, narec.flg_nao_compareceu as ncrec, narec.nota as nota_rec, coalesce(na1.nota, 0) + coalesce(na2.nota, 0) + coalesce(na3.nota, 0) + coalesce(na4.nota, 0) as nota_soma, case when na1.flg_nao_compareceu is true or na1.nota is not null then 1 else 0 end + case when na2.flg_nao_compareceu is true or na2.nota is not null then 1 else 0 end + case when na3.flg_nao_compareceu is true or na3.nota is not null then 1 else 0 end + case when na4.flg_nao_compareceu is true or na4.nota is not null then 1 else 0 end as notas_lancadas, (pa.nota_min_aprovacao / 100.0) * s.valor_maximo_nota as nota_min_aprovacao, pa.id_tipo_arredondamento, (coalesce(( select cidadao.nome from turma_componente tc inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tcs.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tc.id_turma = t.id_turma and cc.id_componente_curricular = tc.id_componente_curricular), ( select cidadao.nome from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tras.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tra.id_turma = t.id_turma))) as professor from aluno a inner join cidadao cid on cid.id_cidadao = a.id_cidadao inner join aluno_matricula am on am.id_cidadao = a.id_cidadao inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join curso c on am.id_curso = c.id_curso inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join serie s on ts.id_serie = s.id_serie inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao 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 left join aluno_matr_dispensa_disciplina dispensa on dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = t.id_turma and dispensa.id_disciplina = d.id_disciplina left join nota_aluno na1 on na1.id_aluno_matricula = am.id_aluno_matricula and na1.id_turma = t.id_turma and na1.id_nota_periodo_aluno = 1 and na1.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[1]) left join nota_aluno na2 on na2.id_aluno_matricula = am.id_aluno_matricula and na2.id_turma = t.id_turma and na2.id_nota_periodo_aluno = 2 and na2.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[2]) left join nota_aluno na3 on na3.id_aluno_matricula = am.id_aluno_matricula and na3.id_turma = t.id_turma and na3.id_nota_periodo_aluno = 3 and na3.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[3]) left join nota_aluno na4 on na4.id_aluno_matricula = am.id_aluno_matricula and na4.id_turma = t.id_turma and na4.id_nota_periodo_aluno = 4 and na4.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[4]) left join nota_aluno narec on narec.id_aluno_matricula = am.id_aluno_matricula and narec.id_turma = t.id_turma and narec.id_nota_periodo_aluno = 6 and narec.id_disciplina = d.id_disciplina where cid.id_instituicao = $1 and asem.ano = $2 and am.id_aluno_matr_status in (1, 2, 7) and am.id_unidade_funcional = $3 and dispensa.flg_dispensado_todos_periodos is not true and s.id_forma_avaliacao in (1, 2)) as alunos where notas_lancadas > 0 and arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) < nota_min_aprovacao order by aluno, curso, serie, turma, "componenteCurricular" limit 10;
Date: 2023-08-14 10:02:02 Duration: 185ms Database: postgres parameters: $1 = '230005505', $2 = '2023-06-01', $3 = '2023-06-30', $4 = '230005505', $5 = '6', $6 = '15664', $7 = '92', $8 = '230005505'
-
select matricula, aluno, curso, serie, turma, disciplina as "componenteCurricular", professor, nc1, round(cast(nota1 as numeric), 2) as media1, dispensa1, nc2, round(cast(nota2 as numeric), 2) as media2, dispensa2, nc3, round(cast(nota3 as numeric), 2) as media3, dispensa3, nc4, round(cast(nota4 as numeric), 2) as media4, dispensa4, ncrec, round(cast(nota_rec as numeric), 2) as media_rec, case when notas_lancadas > 0 then arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) else null end as "mediaGeral" from ( select a.codigo as matricula, cid.nome as aluno, c.sigla as curso, s.sigla as serie, t.codigo as turma, d.descricao as disciplina, na1.flg_nao_compareceu as nc1, na1.nota as nota1, dispensa.periodos is not null and dispensa.periodos @> ARRAY[1] dispensa1, na2.flg_nao_compareceu as nc2, na2.nota as nota2, dispensa.periodos is not null and dispensa.periodos @> ARRAY[2] dispensa2, na3.flg_nao_compareceu as nc3, na3.nota as nota3, dispensa.periodos is not null and dispensa.periodos @> ARRAY[3] dispensa3, na4.flg_nao_compareceu as nc4, na4.nota as nota4, dispensa.periodos is not null and dispensa.periodos @> ARRAY[4] dispensa4, narec.flg_nao_compareceu as ncrec, narec.nota as nota_rec, coalesce(na1.nota, 0) + coalesce(na2.nota, 0) + coalesce(na3.nota, 0) + coalesce(na4.nota, 0) as nota_soma, case when na1.flg_nao_compareceu is true or na1.nota is not null then 1 else 0 end + case when na2.flg_nao_compareceu is true or na2.nota is not null then 1 else 0 end + case when na3.flg_nao_compareceu is true or na3.nota is not null then 1 else 0 end + case when na4.flg_nao_compareceu is true or na4.nota is not null then 1 else 0 end as notas_lancadas, (pa.nota_min_aprovacao / 100.0) * s.valor_maximo_nota as nota_min_aprovacao, pa.id_tipo_arredondamento, (coalesce(( select cidadao.nome from turma_componente tc inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tcs.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tc.id_turma = t.id_turma and cc.id_componente_curricular = tc.id_componente_curricular), ( select cidadao.nome from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tras.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tra.id_turma = t.id_turma))) as professor from aluno a inner join cidadao cid on cid.id_cidadao = a.id_cidadao inner join aluno_matricula am on am.id_cidadao = a.id_cidadao inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join curso c on am.id_curso = c.id_curso inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join serie s on ts.id_serie = s.id_serie inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao 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 left join aluno_matr_dispensa_disciplina dispensa on dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = t.id_turma and dispensa.id_disciplina = d.id_disciplina left join nota_aluno na1 on na1.id_aluno_matricula = am.id_aluno_matricula and na1.id_turma = t.id_turma and na1.id_nota_periodo_aluno = 1 and na1.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[1]) left join nota_aluno na2 on na2.id_aluno_matricula = am.id_aluno_matricula and na2.id_turma = t.id_turma and na2.id_nota_periodo_aluno = 2 and na2.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[2]) left join nota_aluno na3 on na3.id_aluno_matricula = am.id_aluno_matricula and na3.id_turma = t.id_turma and na3.id_nota_periodo_aluno = 3 and na3.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[3]) left join nota_aluno na4 on na4.id_aluno_matricula = am.id_aluno_matricula and na4.id_turma = t.id_turma and na4.id_nota_periodo_aluno = 4 and na4.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[4]) left join nota_aluno narec on narec.id_aluno_matricula = am.id_aluno_matricula and narec.id_turma = t.id_turma and narec.id_nota_periodo_aluno = 6 and narec.id_disciplina = d.id_disciplina where cid.id_instituicao = $1 and asem.ano = $2 and am.id_aluno_matr_status in (1, 2, 7) and am.id_unidade_funcional = $3 and dispensa.flg_dispensado_todos_periodos is not true and s.id_forma_avaliacao in (1, 2)) as alunos where notas_lancadas > 0 and arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) < nota_min_aprovacao order by aluno, curso, serie, turma, "componenteCurricular" limit 10;
Date: 2023-08-14 10:02:09 Duration: 154ms Database: postgres parameters: $1 = '2147483647', $2 = '230001659'
8 520ms 4 106ms 163ms 130ms 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 = $1) and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = $2)) 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 ct.telefone_recado_para is not null then '(' || ct.telefone_ddd || ') ' || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else '(' || 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 = $3 and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = $4 and uf.id_unidade_funcional in ( select $5 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $6 and id_assunto_hierarquia_unidade = $7) order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;Times Reported Time consuming bind #8
Day Hour Count Duration Avg duration 08 1 107ms 107ms 09 2 249ms 124ms 13 1 163ms 163ms -
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 = $1) and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = $2)) 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 ct.telefone_recado_para is not null then '(' || ct.telefone_ddd || ') ' || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else '(' || 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 = $3 and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = $4 and uf.id_unidade_funcional in ( select $5 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $6 and id_assunto_hierarquia_unidade = $7) order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2023-08-14 14:21:35 Duration: 163ms Database: postgres parameters: $1 = '2023', $2 = '82', $3 = '82', $4 = '2023', $5 = '389', $6 = '389', $7 = '10'
-
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 = $1) and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = $2)) 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 ct.telefone_recado_para is not null then '(' || ct.telefone_ddd || ') ' || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else '(' || 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 = $3 and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = $4 and uf.id_unidade_funcional in ( select $5 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $6 and id_assunto_hierarquia_unidade = $7) order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2023-08-14 10:25:18 Duration: 143ms Database: postgres parameters: $1 = '2023', $2 = '72', $3 = '72', $4 = '2023', $5 = '605703', $6 = '605703', $7 = '64'
-
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 = $1) and id_unidade_funcional in ( select id_unidade_funcional from unidade_funcional where id_instituicao = $2)) 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 ct.telefone_recado_para is not null then '(' || ct.telefone_ddd || ') ' || ct.telefone_numero || ' recado para: ' || ct.telefone_recado_para else '(' || 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 = $3 and am.id_aluno_matricula in ( select id_aluno_matricula from ultima_matricula) and asem.ano = $4 and uf.id_unidade_funcional in ( select $5 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $6 and id_assunto_hierarquia_unidade = $7) order by uf.codigo, uf.nome, modalidade, serie_etapa, curso, turma, turno, cid.nome;
Date: 2023-08-14 09:43:57 Duration: 107ms Database: postgres parameters: $1 = '2023', $2 = '82', $3 = '82', $4 = '2023', $5 = '325', $6 = '325', $7 = '10'
9 368ms 3 106ms 133ms 122ms select count(*) as contagem from (( select distinct professor_unidade.ano || '_cb_' || servidor_cargo.id_servidor_cargo_base as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, servidor_cargo.cl as cl, c.nome as professor, ca.descricao as cargo, sf.descricao as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_base as servidor_cargo, true as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, servidor_cargo.matricula_cargo as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_base servidor_cargo inner join professor_unidade_cargo_base professor_unidade on professor_unidade.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join situacao_funcional sf on sf.id_situacao_funcional = servidor_cargo.id_situacao_funcional inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_base apscb on apscb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscb.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $1 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $2) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_base) aula_disp_componente on aula_disp_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select trah.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $3) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_base) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tcs.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tras.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $5) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base where servidor_cargo.flg_aberto and (professor_unidade.ano = $6) and (c.nome ilike '%' || $7 || '%') and professor_unidade.id_unidade_funcional = $8 and (c.id_instituicao = $9)) union all ( select professor_unidade.ano || '_cs_' || servidor_cargo.id_servidor_cargo_sobr_alt as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, null as cl, c.nome as professor, ca.descricao as cargo, 'Sobreposto' as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, jtos.horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_sobr_alt as servidor_cargo, false as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, null as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_sobr_alt servidor_cargo inner join professor_unidade_cargo_sobr professor_unidade on professor_unidade.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_sobr apscs on apscs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt -- VAZIA left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscs.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $10 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $11) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_sobr_alt) aula_disp_componente on aula_disp_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select trah.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $12) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_sobr_alt) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tcs.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $13) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tras.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt where servidor_cargo.flg_aberto and (professor_unidade.ano = $15) and (c.nome ilike $16) and professor_unidade.id_unidade_funcional = $17 and (c.id_instituicao = $18)) order by rf_integer, professor, servidor_cargo) tabela;Times Reported Time consuming bind #9
Day Hour Count Duration Avg duration 13 2 262ms 131ms 14 1 106ms 106ms -
select count(*) as contagem from (( select distinct professor_unidade.ano || '_cb_' || servidor_cargo.id_servidor_cargo_base as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, servidor_cargo.cl as cl, c.nome as professor, ca.descricao as cargo, sf.descricao as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_base as servidor_cargo, true as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, servidor_cargo.matricula_cargo as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_base servidor_cargo inner join professor_unidade_cargo_base professor_unidade on professor_unidade.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join situacao_funcional sf on sf.id_situacao_funcional = servidor_cargo.id_situacao_funcional inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_base apscb on apscb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscb.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $1 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $2) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_base) aula_disp_componente on aula_disp_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select trah.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $3) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_base) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tcs.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tras.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $5) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base where servidor_cargo.flg_aberto and (professor_unidade.ano = $6) and (c.nome ilike '%' || $7 || '%') and professor_unidade.id_unidade_funcional = $8 and (c.id_instituicao = $9)) union all ( select professor_unidade.ano || '_cs_' || servidor_cargo.id_servidor_cargo_sobr_alt as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, null as cl, c.nome as professor, ca.descricao as cargo, 'Sobreposto' as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, jtos.horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_sobr_alt as servidor_cargo, false as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, null as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_sobr_alt servidor_cargo inner join professor_unidade_cargo_sobr professor_unidade on professor_unidade.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_sobr apscs on apscs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt -- VAZIA left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscs.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $10 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $11) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_sobr_alt) aula_disp_componente on aula_disp_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select trah.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $12) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_sobr_alt) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tcs.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $13) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tras.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt where servidor_cargo.flg_aberto and (professor_unidade.ano = $15) and (c.nome ilike $16) and professor_unidade.id_unidade_funcional = $17 and (c.id_instituicao = $18)) order by rf_integer, professor, servidor_cargo) tabela;
Date: 2023-08-14 14:52:10 Duration: 133ms Database: postgres parameters: $1 = '126100114312', $2 = '92', $3 = '1662181', $4 = '1'
-
select count(*) as contagem from (( select distinct professor_unidade.ano || '_cb_' || servidor_cargo.id_servidor_cargo_base as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, servidor_cargo.cl as cl, c.nome as professor, ca.descricao as cargo, sf.descricao as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_base as servidor_cargo, true as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, servidor_cargo.matricula_cargo as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_base servidor_cargo inner join professor_unidade_cargo_base professor_unidade on professor_unidade.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join situacao_funcional sf on sf.id_situacao_funcional = servidor_cargo.id_situacao_funcional inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_base apscb on apscb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscb.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $1 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $2) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_base) aula_disp_componente on aula_disp_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select trah.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $3) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_base) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tcs.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tras.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $5) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base where servidor_cargo.flg_aberto and (professor_unidade.ano = $6) and (c.nome ilike '%' || $7 || '%') and professor_unidade.id_unidade_funcional = $8 and (c.id_instituicao = $9)) union all ( select professor_unidade.ano || '_cs_' || servidor_cargo.id_servidor_cargo_sobr_alt as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, null as cl, c.nome as professor, ca.descricao as cargo, 'Sobreposto' as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, jtos.horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_sobr_alt as servidor_cargo, false as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, null as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_sobr_alt servidor_cargo inner join professor_unidade_cargo_sobr professor_unidade on professor_unidade.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_sobr apscs on apscs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt -- VAZIA left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscs.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $10 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $11) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_sobr_alt) aula_disp_componente on aula_disp_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select trah.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $12) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_sobr_alt) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tcs.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $13) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tras.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt where servidor_cargo.flg_aberto and (professor_unidade.ano = $15) and (c.nome ilike $16) and professor_unidade.id_unidade_funcional = $17 and (c.id_instituicao = $18)) order by rf_integer, professor, servidor_cargo) tabela;
Date: 2023-08-14 14:20:25 Duration: 129ms Database: postgres parameters: $1 = '230007898', $2 = '1949', $3 = '1804'
-
select count(*) as contagem from (( select distinct professor_unidade.ano || '_cb_' || servidor_cargo.id_servidor_cargo_base as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, servidor_cargo.cl as cl, c.nome as professor, ca.descricao as cargo, sf.descricao as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_base as servidor_cargo, true as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, servidor_cargo.matricula_cargo as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_base servidor_cargo inner join professor_unidade_cargo_base professor_unidade on professor_unidade.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join situacao_funcional sf on sf.id_situacao_funcional = servidor_cargo.id_situacao_funcional inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_base apscb on apscb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscb.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $1 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $2) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_base) aula_disp_componente on aula_disp_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select trah.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $3) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_base) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tcs.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tras.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $5) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base where servidor_cargo.flg_aberto and (professor_unidade.ano = $6) and (c.nome ilike '%' || $7 || '%') and professor_unidade.id_unidade_funcional = $8 and (c.id_instituicao = $9)) union all ( select professor_unidade.ano || '_cs_' || servidor_cargo.id_servidor_cargo_sobr_alt as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, null as cl, c.nome as professor, ca.descricao as cargo, 'Sobreposto' as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, jtos.horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_sobr_alt as servidor_cargo, false as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, null as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_sobr_alt servidor_cargo inner join professor_unidade_cargo_sobr professor_unidade on professor_unidade.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_sobr apscs on apscs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt -- VAZIA left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscs.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $10 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $11) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_sobr_alt) aula_disp_componente on aula_disp_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select trah.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $12) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_sobr_alt) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tcs.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $13) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tras.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt where servidor_cargo.flg_aberto and (professor_unidade.ano = $15) and (c.nome ilike $16) and professor_unidade.id_unidade_funcional = $17 and (c.id_instituicao = $18)) order by rf_integer, professor, servidor_cargo) tabela;
Date: 2023-08-14 15:20:03 Duration: 106ms Database: postgres parameters: $1 = '230003092'
10 344ms 3 102ms 135ms 114ms select c.id_cidadao, a.codigo, a.flg_protegido, case when c.denominacao notnull then c.denominacao else c.nome end as aluno, c.nascimento_data, c.sexo, ano.ano, ano.semestre, curso.sigla as sigla_curso, curso.descricao as curso, s.sigla as sigla_serie, s.descricao as serie, turma.nome as turma, turno.descricao as turno, coalesce(amc.data_matricula, am.data_matricula::date) as data_matricula, am.id_unidade_funcional, a.id_foto_oficial, c.flg_educador_apoio, s.idade_distorcao, amt.chamada, am.id_aluno_matricula, am.id_aluno_matr_status, ams.descricao as situacao, s.id_forma_avaliacao = $1 and exists ( select null from componente_curricular where componente_curricular.id_grade_curricular = turma_serie.id_grade_curricular and componente_curricular.id_disciplina = $2 and componente_curricular.id_expressao_resultado_componente = $3) as "flgConverteNotaConceito", s.flg_realiza_acompanhamento_para_casa as "flgParaCasa", am.id_curso as "idCurso", s.flg_realiza_acompanhamento_livro_lido as "flgLivroLido" from aluno_matricula am inner join aluno a on am.id_cidadao = a.id_cidadao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join cidadao c on am.id_cidadao = c.id_cidadao inner join serie s on am.id_serie = s.id_serie inner join curso on am.id_curso = curso.id_curso inner join ano_semestre ano on am.id_ano_semestre = ano.id_ano_semestre inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma_serie on turma_serie.id_turma = amt.id_turma and turma_serie.id_serie = amt.id_serie_enturmacao inner join turma on turma.id_turma = amt.id_turma inner join turno on turma.id_turno = turno.id_turno left join cidadao_usuario cu on cu.id_cidadao = c.id_cidadao left join usuario u on cu.id_usuario = u.id_usuario left join imagem i on a.id_foto_oficial = i.id_imagem left join aluno_matricula_componente amc on amc.id_aluno_matricula = am.id_aluno_matricula and amc.id_disciplina = $4 where amt.id_turma = $5 and am.id_aluno_matricula = $6 order by chamada;Times Reported Time consuming bind #10
Day Hour Count Duration Avg duration 09 2 208ms 104ms 15 1 135ms 135ms -
select c.id_cidadao, a.codigo, a.flg_protegido, case when c.denominacao notnull then c.denominacao else c.nome end as aluno, c.nascimento_data, c.sexo, ano.ano, ano.semestre, curso.sigla as sigla_curso, curso.descricao as curso, s.sigla as sigla_serie, s.descricao as serie, turma.nome as turma, turno.descricao as turno, coalesce(amc.data_matricula, am.data_matricula::date) as data_matricula, am.id_unidade_funcional, a.id_foto_oficial, c.flg_educador_apoio, s.idade_distorcao, amt.chamada, am.id_aluno_matricula, am.id_aluno_matr_status, ams.descricao as situacao, s.id_forma_avaliacao = $1 and exists ( select null from componente_curricular where componente_curricular.id_grade_curricular = turma_serie.id_grade_curricular and componente_curricular.id_disciplina = $2 and componente_curricular.id_expressao_resultado_componente = $3) as "flgConverteNotaConceito", s.flg_realiza_acompanhamento_para_casa as "flgParaCasa", am.id_curso as "idCurso", s.flg_realiza_acompanhamento_livro_lido as "flgLivroLido" from aluno_matricula am inner join aluno a on am.id_cidadao = a.id_cidadao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join cidadao c on am.id_cidadao = c.id_cidadao inner join serie s on am.id_serie = s.id_serie inner join curso on am.id_curso = curso.id_curso inner join ano_semestre ano on am.id_ano_semestre = ano.id_ano_semestre inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma_serie on turma_serie.id_turma = amt.id_turma and turma_serie.id_serie = amt.id_serie_enturmacao inner join turma on turma.id_turma = amt.id_turma inner join turno on turma.id_turno = turno.id_turno left join cidadao_usuario cu on cu.id_cidadao = c.id_cidadao left join usuario u on cu.id_usuario = u.id_usuario left join imagem i on a.id_foto_oficial = i.id_imagem left join aluno_matricula_componente amc on amc.id_aluno_matricula = am.id_aluno_matricula and amc.id_disciplina = $4 where amt.id_turma = $5 and am.id_aluno_matricula = $6 order by chamada;
Date: 2023-08-14 16:26:43 Duration: 135ms Database: postgres parameters: $1 = '606651', $2 = '66', $3 = '2', $4 = '1980', $5 = '1', $6 = '2', $7 = '3', $8 = '0', $9 = '100', $10 = '606651', $11 = '66', $12 = '2', $13 = '1980', $14 = '1', $15 = '2', $16 = '3', $17 = '0', $18 = '100'
-
select c.id_cidadao, a.codigo, a.flg_protegido, case when c.denominacao notnull then c.denominacao else c.nome end as aluno, c.nascimento_data, c.sexo, ano.ano, ano.semestre, curso.sigla as sigla_curso, curso.descricao as curso, s.sigla as sigla_serie, s.descricao as serie, turma.nome as turma, turno.descricao as turno, coalesce(amc.data_matricula, am.data_matricula::date) as data_matricula, am.id_unidade_funcional, a.id_foto_oficial, c.flg_educador_apoio, s.idade_distorcao, amt.chamada, am.id_aluno_matricula, am.id_aluno_matr_status, ams.descricao as situacao, s.id_forma_avaliacao = $1 and exists ( select null from componente_curricular where componente_curricular.id_grade_curricular = turma_serie.id_grade_curricular and componente_curricular.id_disciplina = $2 and componente_curricular.id_expressao_resultado_componente = $3) as "flgConverteNotaConceito", s.flg_realiza_acompanhamento_para_casa as "flgParaCasa", am.id_curso as "idCurso", s.flg_realiza_acompanhamento_livro_lido as "flgLivroLido" from aluno_matricula am inner join aluno a on am.id_cidadao = a.id_cidadao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join cidadao c on am.id_cidadao = c.id_cidadao inner join serie s on am.id_serie = s.id_serie inner join curso on am.id_curso = curso.id_curso inner join ano_semestre ano on am.id_ano_semestre = ano.id_ano_semestre inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma_serie on turma_serie.id_turma = amt.id_turma and turma_serie.id_serie = amt.id_serie_enturmacao inner join turma on turma.id_turma = amt.id_turma inner join turno on turma.id_turno = turno.id_turno left join cidadao_usuario cu on cu.id_cidadao = c.id_cidadao left join usuario u on cu.id_usuario = u.id_usuario left join imagem i on a.id_foto_oficial = i.id_imagem left join aluno_matricula_componente amc on amc.id_aluno_matricula = am.id_aluno_matricula and amc.id_disciplina = $4 where amt.id_turma = $5 and am.id_aluno_matricula = $6 order by chamada;
Date: 2023-08-14 10:14:01 Duration: 106ms Database: postgres
-
select c.id_cidadao, a.codigo, a.flg_protegido, case when c.denominacao notnull then c.denominacao else c.nome end as aluno, c.nascimento_data, c.sexo, ano.ano, ano.semestre, curso.sigla as sigla_curso, curso.descricao as curso, s.sigla as sigla_serie, s.descricao as serie, turma.nome as turma, turno.descricao as turno, coalesce(amc.data_matricula, am.data_matricula::date) as data_matricula, am.id_unidade_funcional, a.id_foto_oficial, c.flg_educador_apoio, s.idade_distorcao, amt.chamada, am.id_aluno_matricula, am.id_aluno_matr_status, ams.descricao as situacao, s.id_forma_avaliacao = $1 and exists ( select null from componente_curricular where componente_curricular.id_grade_curricular = turma_serie.id_grade_curricular and componente_curricular.id_disciplina = $2 and componente_curricular.id_expressao_resultado_componente = $3) as "flgConverteNotaConceito", s.flg_realiza_acompanhamento_para_casa as "flgParaCasa", am.id_curso as "idCurso", s.flg_realiza_acompanhamento_livro_lido as "flgLivroLido" from aluno_matricula am inner join aluno a on am.id_cidadao = a.id_cidadao inner join aluno_matr_status ams on ams.id_aluno_matr_status = am.id_aluno_matr_status inner join cidadao c on am.id_cidadao = c.id_cidadao inner join serie s on am.id_serie = s.id_serie inner join curso on am.id_curso = curso.id_curso inner join ano_semestre ano on am.id_ano_semestre = ano.id_ano_semestre inner join aluno_matr_turma amt on am.id_aluno_matricula = amt.id_aluno_matricula inner join turma_serie on turma_serie.id_turma = amt.id_turma and turma_serie.id_serie = amt.id_serie_enturmacao inner join turma on turma.id_turma = amt.id_turma inner join turno on turma.id_turno = turno.id_turno left join cidadao_usuario cu on cu.id_cidadao = c.id_cidadao left join usuario u on cu.id_usuario = u.id_usuario left join imagem i on a.id_foto_oficial = i.id_imagem left join aluno_matricula_componente amc on amc.id_aluno_matricula = am.id_aluno_matricula and amc.id_disciplina = $4 where amt.id_turma = $5 and am.id_aluno_matricula = $6 order by chamada;
Date: 2023-08-14 10:00:00 Duration: 102ms Database: postgres parameters: $1 = '181334', $2 = '0', $3 = '0', $4 = '2147483647', $5 = '230005187', $6 = '1984', $7 = '1839'
11 329ms 2 128ms 200ms 164ms select matricula, aluno, curso, serie, turma, disciplina as "componenteCurricular", professor, nc1, round(cast(nota1 as numeric), 2) as media1, dispensa1, nc2, round(cast(nota2 as numeric), 2) as media2, dispensa2, nc3, round(cast(nota3 as numeric), 2) as media3, dispensa3, nc4, round(cast(nota4 as numeric), 2) as media4, dispensa4, ncrec, round(cast(nota_rec as numeric), 2) as media_rec, case when notas_lancadas > 0 then arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) else null end as "mediaGeral" from ( select a.codigo as matricula, cid.nome as aluno, c.sigla as curso, s.sigla as serie, t.codigo as turma, d.descricao as disciplina, na1.flg_nao_compareceu as nc1, na1.nota as nota1, dispensa.periodos is not null and dispensa.periodos @> ARRAY[1] dispensa1, na2.flg_nao_compareceu as nc2, na2.nota as nota2, dispensa.periodos is not null and dispensa.periodos @> ARRAY[2] dispensa2, na3.flg_nao_compareceu as nc3, na3.nota as nota3, dispensa.periodos is not null and dispensa.periodos @> ARRAY[3] dispensa3, na4.flg_nao_compareceu as nc4, na4.nota as nota4, dispensa.periodos is not null and dispensa.periodos @> ARRAY[4] dispensa4, narec.flg_nao_compareceu as ncrec, narec.nota as nota_rec, coalesce(na1.nota, 0) + coalesce(na2.nota, 0) + coalesce(na3.nota, 0) + coalesce(na4.nota, 0) as nota_soma, case when na1.flg_nao_compareceu is true or na1.nota is not null then 1 else 0 end + case when na2.flg_nao_compareceu is true or na2.nota is not null then 1 else 0 end + case when na3.flg_nao_compareceu is true or na3.nota is not null then 1 else 0 end + case when na4.flg_nao_compareceu is true or na4.nota is not null then 1 else 0 end as notas_lancadas, (pa.nota_min_aprovacao / 100.0) * (vmnp.valor_maximo_nota / 100.0) * s.valor_maximo_nota as nota_min_aprovacao, pa.id_tipo_arredondamento, (coalesce(( select cidadao.nome from turma_componente tc inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tcs.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tc.id_turma = t.id_turma and cc.id_componente_curricular = tc.id_componente_curricular), ( select cidadao.nome from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tras.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tra.id_turma = t.id_turma))) as professor from aluno a inner join cidadao cid on cid.id_cidadao = a.id_cidadao inner join aluno_matricula am on am.id_cidadao = a.id_cidadao inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join curso c on am.id_curso = c.id_curso inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join serie s on ts.id_serie = s.id_serie inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao 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 left join aluno_matr_dispensa_disciplina dispensa on dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = t.id_turma and dispensa.id_disciplina = d.id_disciplina left join procedimento_avaliacao_valor_maximo_nota_periodo vmnp on pa.id_procedimento_avaliacao = vmnp.id_procedimento_avaliacao and vmnp.id_nota_periodo_aluno = $1 left join nota_aluno na1 on na1.id_aluno_matricula = am.id_aluno_matricula and na1.id_turma = t.id_turma and na1.id_nota_periodo_aluno = 1 and na1.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[1]) left join nota_aluno na2 on na2.id_aluno_matricula = am.id_aluno_matricula and na2.id_turma = t.id_turma and na2.id_nota_periodo_aluno = 2 and na2.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[2]) left join nota_aluno na3 on na3.id_aluno_matricula = am.id_aluno_matricula and na3.id_turma = t.id_turma and na3.id_nota_periodo_aluno = 3 and na3.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[3]) left join nota_aluno na4 on na4.id_aluno_matricula = am.id_aluno_matricula and na4.id_turma = t.id_turma and na4.id_nota_periodo_aluno = 4 and na4.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[4]) left join nota_aluno narec on narec.id_aluno_matricula = am.id_aluno_matricula and narec.id_turma = t.id_turma and narec.id_nota_periodo_aluno = 6 and narec.id_disciplina = d.id_disciplina where cid.id_instituicao = $2 and asem.ano = $3 and am.id_aluno_matr_status in (1, 2, 7) and am.id_unidade_funcional = $4 and dispensa.flg_dispensado_todos_periodos is not true and s.id_forma_avaliacao in (1, 2) and c.id_curso = $5 and s.id_serie = $6 and t.id_turma = $7 and t.id_turno = $8 and d.id_disciplina = $9) as alunos where (nc2 is true or nota2 < nota_min_aprovacao) order by aluno, curso, serie, turma, "componenteCurricular" limit 10;Times Reported Time consuming bind #11
Day Hour Count Duration Avg duration 09 2 329ms 164ms -
select matricula, aluno, curso, serie, turma, disciplina as "componenteCurricular", professor, nc1, round(cast(nota1 as numeric), 2) as media1, dispensa1, nc2, round(cast(nota2 as numeric), 2) as media2, dispensa2, nc3, round(cast(nota3 as numeric), 2) as media3, dispensa3, nc4, round(cast(nota4 as numeric), 2) as media4, dispensa4, ncrec, round(cast(nota_rec as numeric), 2) as media_rec, case when notas_lancadas > 0 then arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) else null end as "mediaGeral" from ( select a.codigo as matricula, cid.nome as aluno, c.sigla as curso, s.sigla as serie, t.codigo as turma, d.descricao as disciplina, na1.flg_nao_compareceu as nc1, na1.nota as nota1, dispensa.periodos is not null and dispensa.periodos @> ARRAY[1] dispensa1, na2.flg_nao_compareceu as nc2, na2.nota as nota2, dispensa.periodos is not null and dispensa.periodos @> ARRAY[2] dispensa2, na3.flg_nao_compareceu as nc3, na3.nota as nota3, dispensa.periodos is not null and dispensa.periodos @> ARRAY[3] dispensa3, na4.flg_nao_compareceu as nc4, na4.nota as nota4, dispensa.periodos is not null and dispensa.periodos @> ARRAY[4] dispensa4, narec.flg_nao_compareceu as ncrec, narec.nota as nota_rec, coalesce(na1.nota, 0) + coalesce(na2.nota, 0) + coalesce(na3.nota, 0) + coalesce(na4.nota, 0) as nota_soma, case when na1.flg_nao_compareceu is true or na1.nota is not null then 1 else 0 end + case when na2.flg_nao_compareceu is true or na2.nota is not null then 1 else 0 end + case when na3.flg_nao_compareceu is true or na3.nota is not null then 1 else 0 end + case when na4.flg_nao_compareceu is true or na4.nota is not null then 1 else 0 end as notas_lancadas, (pa.nota_min_aprovacao / 100.0) * (vmnp.valor_maximo_nota / 100.0) * s.valor_maximo_nota as nota_min_aprovacao, pa.id_tipo_arredondamento, (coalesce(( select cidadao.nome from turma_componente tc inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tcs.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tc.id_turma = t.id_turma and cc.id_componente_curricular = tc.id_componente_curricular), ( select cidadao.nome from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tras.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tra.id_turma = t.id_turma))) as professor from aluno a inner join cidadao cid on cid.id_cidadao = a.id_cidadao inner join aluno_matricula am on am.id_cidadao = a.id_cidadao inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join curso c on am.id_curso = c.id_curso inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join serie s on ts.id_serie = s.id_serie inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao 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 left join aluno_matr_dispensa_disciplina dispensa on dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = t.id_turma and dispensa.id_disciplina = d.id_disciplina left join procedimento_avaliacao_valor_maximo_nota_periodo vmnp on pa.id_procedimento_avaliacao = vmnp.id_procedimento_avaliacao and vmnp.id_nota_periodo_aluno = $1 left join nota_aluno na1 on na1.id_aluno_matricula = am.id_aluno_matricula and na1.id_turma = t.id_turma and na1.id_nota_periodo_aluno = 1 and na1.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[1]) left join nota_aluno na2 on na2.id_aluno_matricula = am.id_aluno_matricula and na2.id_turma = t.id_turma and na2.id_nota_periodo_aluno = 2 and na2.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[2]) left join nota_aluno na3 on na3.id_aluno_matricula = am.id_aluno_matricula and na3.id_turma = t.id_turma and na3.id_nota_periodo_aluno = 3 and na3.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[3]) left join nota_aluno na4 on na4.id_aluno_matricula = am.id_aluno_matricula and na4.id_turma = t.id_turma and na4.id_nota_periodo_aluno = 4 and na4.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[4]) left join nota_aluno narec on narec.id_aluno_matricula = am.id_aluno_matricula and narec.id_turma = t.id_turma and narec.id_nota_periodo_aluno = 6 and narec.id_disciplina = d.id_disciplina where cid.id_instituicao = $2 and asem.ano = $3 and am.id_aluno_matr_status in (1, 2, 7) and am.id_unidade_funcional = $4 and dispensa.flg_dispensado_todos_periodos is not true and s.id_forma_avaliacao in (1, 2) and c.id_curso = $5 and s.id_serie = $6 and t.id_turma = $7 and t.id_turno = $8 and d.id_disciplina = $9) as alunos where (nc2 is true or nota2 < nota_min_aprovacao) order by aluno, curso, serie, turma, "componenteCurricular" limit 10;
Date: 2023-08-14 10:46:03 Duration: 200ms Database: postgres parameters: $1 = '230005232', $2 = '230005233', $3 = '230005234', $4 = '230005235', $5 = '1711872', $6 = '2023-08-14 10:45:03.387', $7 = '2023-08-14 10:45:03.387'
-
select matricula, aluno, curso, serie, turma, disciplina as "componenteCurricular", professor, nc1, round(cast(nota1 as numeric), 2) as media1, dispensa1, nc2, round(cast(nota2 as numeric), 2) as media2, dispensa2, nc3, round(cast(nota3 as numeric), 2) as media3, dispensa3, nc4, round(cast(nota4 as numeric), 2) as media4, dispensa4, ncrec, round(cast(nota_rec as numeric), 2) as media_rec, case when notas_lancadas > 0 then arredondar (cast(greatest ((nota_soma / (notas_lancadas * 1.0)), nota_rec) as numeric), id_tipo_arredondamento, 2) else null end as "mediaGeral" from ( select a.codigo as matricula, cid.nome as aluno, c.sigla as curso, s.sigla as serie, t.codigo as turma, d.descricao as disciplina, na1.flg_nao_compareceu as nc1, na1.nota as nota1, dispensa.periodos is not null and dispensa.periodos @> ARRAY[1] dispensa1, na2.flg_nao_compareceu as nc2, na2.nota as nota2, dispensa.periodos is not null and dispensa.periodos @> ARRAY[2] dispensa2, na3.flg_nao_compareceu as nc3, na3.nota as nota3, dispensa.periodos is not null and dispensa.periodos @> ARRAY[3] dispensa3, na4.flg_nao_compareceu as nc4, na4.nota as nota4, dispensa.periodos is not null and dispensa.periodos @> ARRAY[4] dispensa4, narec.flg_nao_compareceu as ncrec, narec.nota as nota_rec, coalesce(na1.nota, 0) + coalesce(na2.nota, 0) + coalesce(na3.nota, 0) + coalesce(na4.nota, 0) as nota_soma, case when na1.flg_nao_compareceu is true or na1.nota is not null then 1 else 0 end + case when na2.flg_nao_compareceu is true or na2.nota is not null then 1 else 0 end + case when na3.flg_nao_compareceu is true or na3.nota is not null then 1 else 0 end + case when na4.flg_nao_compareceu is true or na4.nota is not null then 1 else 0 end as notas_lancadas, (pa.nota_min_aprovacao / 100.0) * (vmnp.valor_maximo_nota / 100.0) * s.valor_maximo_nota as nota_min_aprovacao, pa.id_tipo_arredondamento, (coalesce(( select cidadao.nome from turma_componente tc inner join turma_componente_servidor tcs on tcs.id_turma_componente = tc.id_turma_componente inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tcs.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tc.id_turma = t.id_turma and cc.id_componente_curricular = tc.id_componente_curricular), ( select cidadao.nome from turma_regencia_atribuicao tra inner join turma_regencia_atrib_srv tras on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join servidor_cargo_base scb on scb.id_servidor_cargo_base = tras.id_servidor_cargo_base inner join cidadao on cidadao.id_cidadao = scb.id_cidadao where tra.id_turma = t.id_turma))) as professor from aluno a inner join cidadao cid on cid.id_cidadao = a.id_cidadao inner join aluno_matricula am on am.id_cidadao = a.id_cidadao inner join ano_semestre asem on asem.id_ano_semestre = am.id_ano_semestre inner join aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula inner join turma t on t.id_turma = amt.id_turma inner join curso c on am.id_curso = c.id_curso inner join turma_serie ts on ts.id_turma = t.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join serie s on ts.id_serie = s.id_serie inner join procedimento_avaliacao pa on pa.id_procedimento_avaliacao = s.id_procedimento_avaliacao 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 left join aluno_matr_dispensa_disciplina dispensa on dispensa.id_aluno_matricula = am.id_aluno_matricula and dispensa.id_turma = t.id_turma and dispensa.id_disciplina = d.id_disciplina left join procedimento_avaliacao_valor_maximo_nota_periodo vmnp on pa.id_procedimento_avaliacao = vmnp.id_procedimento_avaliacao and vmnp.id_nota_periodo_aluno = $1 left join nota_aluno na1 on na1.id_aluno_matricula = am.id_aluno_matricula and na1.id_turma = t.id_turma and na1.id_nota_periodo_aluno = 1 and na1.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[1]) left join nota_aluno na2 on na2.id_aluno_matricula = am.id_aluno_matricula and na2.id_turma = t.id_turma and na2.id_nota_periodo_aluno = 2 and na2.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[2]) left join nota_aluno na3 on na3.id_aluno_matricula = am.id_aluno_matricula and na3.id_turma = t.id_turma and na3.id_nota_periodo_aluno = 3 and na3.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[3]) left join nota_aluno na4 on na4.id_aluno_matricula = am.id_aluno_matricula and na4.id_turma = t.id_turma and na4.id_nota_periodo_aluno = 4 and na4.id_disciplina = d.id_disciplina and (dispensa.periodos is null or not dispensa.periodos @> ARRAY[4]) left join nota_aluno narec on narec.id_aluno_matricula = am.id_aluno_matricula and narec.id_turma = t.id_turma and narec.id_nota_periodo_aluno = 6 and narec.id_disciplina = d.id_disciplina where cid.id_instituicao = $2 and asem.ano = $3 and am.id_aluno_matr_status in (1, 2, 7) and am.id_unidade_funcional = $4 and dispensa.flg_dispensado_todos_periodos is not true and s.id_forma_avaliacao in (1, 2) and c.id_curso = $5 and s.id_serie = $6 and t.id_turma = $7 and t.id_turno = $8 and d.id_disciplina = $9) as alunos where (nc2 is true or nota2 < nota_min_aprovacao) order by aluno, curso, serie, turma, "componenteCurricular" limit 10;
Date: 2023-08-14 10:55:02 Duration: 128ms Database: postgres parameters: $1 = '1628304', $2 = '2754514', $3 = '230008247', $4 = '1628304'
12 301ms 2 134ms 167ms 150ms select id_turma, id_serie, id_disciplina, id_componente_curricular, id_periodicidade_conteudo, string_agg(modificador || data || ':' || pendente::text, ',') as conteudo from ( select t.id_turma, ts.id_serie, d.id_disciplina, q.id_componente_curricular, t.id_periodicidade_conteudo, '' as modificador, cpd.data::text as data, case when count( case when sda.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 quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_grade_curricular = ts.id_grade_curricular inner join componente_curricular cc on cc.id_componente_curricular = q.id_componente_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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $1 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $2 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_periodo_data cpd on cpd.id_calendario = c.id_calendario and cpd.dia_semana = q.dia_semana left join calendario_data cd on cd.data = cpd.data and cd.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = q.id_turma and sda.data = cpd.data and sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, q.id_componente_curricular) = q.id_componente_curricular where q.id_turma in ($3, $4) 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 cpd.data between $5::date and $6::date and cd.id_motivo_dia_nao_letivo is null and ( -- conteúdo organizado que não é por componente -> exibe o apontamento mesmo se cc.flg_aponta_conteudo_curricular = false (t.id_periodicidade_conteudo = 1 and (cc.flg_aponta_conteudo_curricular or cc.flg_aponta_situacao_didatica)) or (t.id_periodicidade_conteudo = 4 and cc.flg_aponta_situacao_didatica)) group by t.id_turma, ts.id_serie, d.id_disciplina, q.id_componente_curricular, t.id_periodicidade_conteudo, cpd.data union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, '' as modificador, cpd.data::text as data, case when count( case when sda.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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $7 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $8 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_periodo_data cpd on cpd.id_calendario = c.id_calendario inner join dia_semana ds on ds.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data cd on cd.data = cpd.data and cd.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.data = cpd.data and sda.id_horario_turma is null and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ($9, $10) and cpd.data between $11::date and $12::date and cd.id_motivo_dia_nao_letivo is null and (ds.dia_semana not in (5, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 -- não considerar dias que tem registro em outro componente and (sda.id_situacao_didatica_aula notnull or not exists ( select null from situacao_didatica_aula sda2 where sda2.id_turma = t.id_turma and sda2.id_serie = ts.id_serie and sda2.data = cpd.data and sda2.id_horario_turma is null and coalesce(sda2.id_componente_curricular, cc.id_componente_curricular) <> cc.id_componente_curricular)) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, cpd.data union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, 'q' as modificador, cq.id_quinzena_ano::text as data, case when count( case when sda.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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $13 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $14 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_quinzena cq on cq.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_quinzena_ano = cq.id_quinzena_ano and sda.data is null and sda.id_horario_turma is null and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ($15, $16) and date_trunc('month', cq.data_inicio) >= date_trunc('month', $17::date) and date_trunc('month', cq.data_termino) <= date_trunc('month', $18::date) and t.id_periodicidade_conteudo = 3 group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, cq.id_quinzena_ano) as x group by id_turma, id_serie, id_disciplina, id_componente_curricular, id_periodicidade_conteudo;Times Reported Time consuming bind #12
Day Hour Count Duration Avg duration 08 1 167ms 167ms 12 1 134ms 134ms -
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_periodicidade_conteudo, string_agg(modificador || data || ':' || pendente::text, ',') as conteudo from ( select t.id_turma, ts.id_serie, d.id_disciplina, q.id_componente_curricular, t.id_periodicidade_conteudo, '' as modificador, cpd.data::text as data, case when count( case when sda.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 quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_grade_curricular = ts.id_grade_curricular inner join componente_curricular cc on cc.id_componente_curricular = q.id_componente_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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $1 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $2 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_periodo_data cpd on cpd.id_calendario = c.id_calendario and cpd.dia_semana = q.dia_semana left join calendario_data cd on cd.data = cpd.data and cd.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = q.id_turma and sda.data = cpd.data and sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, q.id_componente_curricular) = q.id_componente_curricular where q.id_turma in ($3, $4) 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 cpd.data between $5::date and $6::date and cd.id_motivo_dia_nao_letivo is null and ( -- conteúdo organizado que não é por componente -> exibe o apontamento mesmo se cc.flg_aponta_conteudo_curricular = false (t.id_periodicidade_conteudo = 1 and (cc.flg_aponta_conteudo_curricular or cc.flg_aponta_situacao_didatica)) or (t.id_periodicidade_conteudo = 4 and cc.flg_aponta_situacao_didatica)) group by t.id_turma, ts.id_serie, d.id_disciplina, q.id_componente_curricular, t.id_periodicidade_conteudo, cpd.data union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, '' as modificador, cpd.data::text as data, case when count( case when sda.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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $7 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $8 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_periodo_data cpd on cpd.id_calendario = c.id_calendario inner join dia_semana ds on ds.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data cd on cd.data = cpd.data and cd.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.data = cpd.data and sda.id_horario_turma is null and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ($9, $10) and cpd.data between $11::date and $12::date and cd.id_motivo_dia_nao_letivo is null and (ds.dia_semana not in (5, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 -- não considerar dias que tem registro em outro componente and (sda.id_situacao_didatica_aula notnull or not exists ( select null from situacao_didatica_aula sda2 where sda2.id_turma = t.id_turma and sda2.id_serie = ts.id_serie and sda2.data = cpd.data and sda2.id_horario_turma is null and coalesce(sda2.id_componente_curricular, cc.id_componente_curricular) <> cc.id_componente_curricular)) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, cpd.data union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, 'q' as modificador, cq.id_quinzena_ano::text as data, case when count( case when sda.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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $13 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $14 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_quinzena cq on cq.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_quinzena_ano = cq.id_quinzena_ano and sda.data is null and sda.id_horario_turma is null and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ($15, $16) and date_trunc('month', cq.data_inicio) >= date_trunc('month', $17::date) and date_trunc('month', cq.data_termino) <= date_trunc('month', $18::date) and t.id_periodicidade_conteudo = 3 group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, cq.id_quinzena_ano) as x group by id_turma, id_serie, id_disciplina, id_componente_curricular, id_periodicidade_conteudo;
Date: 2023-08-14 09:38:54 Duration: 167ms Database: postgres parameters: $1 = '0', $2 = '1701485', $3 = '0', $4 = '2147483647', $5 = '230002212', $6 = '109', $7 = '5'
-
select id_turma, id_serie, id_disciplina, id_componente_curricular, id_periodicidade_conteudo, string_agg(modificador || data || ':' || pendente::text, ',') as conteudo from ( select t.id_turma, ts.id_serie, d.id_disciplina, q.id_componente_curricular, t.id_periodicidade_conteudo, '' as modificador, cpd.data::text as data, case when count( case when sda.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 quadro_horario_homologado q on q.id_turma = t.id_turma and q.id_grade_curricular = ts.id_grade_curricular inner join componente_curricular cc on cc.id_componente_curricular = q.id_componente_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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $1 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $2 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_periodo_data cpd on cpd.id_calendario = c.id_calendario and cpd.dia_semana = q.dia_semana left join calendario_data cd on cd.data = cpd.data and cd.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = q.id_turma and sda.data = cpd.data and sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, q.id_componente_curricular) = q.id_componente_curricular where q.id_turma in ($3, $4) 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 cpd.data between $5::date and $6::date and cd.id_motivo_dia_nao_letivo is null and ( -- conteúdo organizado que não é por componente -> exibe o apontamento mesmo se cc.flg_aponta_conteudo_curricular = false (t.id_periodicidade_conteudo = 1 and (cc.flg_aponta_conteudo_curricular or cc.flg_aponta_situacao_didatica)) or (t.id_periodicidade_conteudo = 4 and cc.flg_aponta_situacao_didatica)) group by t.id_turma, ts.id_serie, d.id_disciplina, q.id_componente_curricular, t.id_periodicidade_conteudo, cpd.data union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, '' as modificador, cpd.data::text as data, case when count( case when sda.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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $7 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $8 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_periodo_data cpd on cpd.id_calendario = c.id_calendario inner join dia_semana ds on ds.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data cd on cd.data = cpd.data and cd.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.data = cpd.data and sda.id_horario_turma is null and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ($9, $10) and cpd.data between $11::date and $12::date and cd.id_motivo_dia_nao_letivo is null and (ds.dia_semana not in (5, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 -- não considerar dias que tem registro em outro componente and (sda.id_situacao_didatica_aula notnull or not exists ( select null from situacao_didatica_aula sda2 where sda2.id_turma = t.id_turma and sda2.id_serie = ts.id_serie and sda2.data = cpd.data and sda2.id_horario_turma is null and coalesce(sda2.id_componente_curricular, cc.id_componente_curricular) <> cc.id_componente_curricular)) group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, cpd.data union select t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, 'q' as modificador, cq.id_quinzena_ano::text as data, case when count( case when sda.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(td.id_disciplina, cc.id_disciplina) left join escola_calendario ec on ec.id_unidade_funcional = t.id_unidade_funcional and ec.ano = $13 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $14 inner join calendario c on c.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) inner join calendario_quinzena cq on cq.id_calendario = c.id_calendario left join situacao_didatica_aula sda on sda.id_turma = t.id_turma and sda.id_quinzena_ano = cq.id_quinzena_ano and sda.data is null and sda.id_horario_turma is null and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ($15, $16) and date_trunc('month', cq.data_inicio) >= date_trunc('month', $17::date) and date_trunc('month', cq.data_termino) <= date_trunc('month', $18::date) and t.id_periodicidade_conteudo = 3 group by t.id_turma, ts.id_serie, d.id_disciplina, cc.id_componente_curricular, t.id_periodicidade_conteudo, cq.id_quinzena_ano) as x group by id_turma, id_serie, id_disciplina, id_componente_curricular, id_periodicidade_conteudo;
Date: 2023-08-14 13:40:02 Duration: 134ms Database: postgres parameters: $1 = '1', $2 = '230004339', $3 = '230004340', $4 = '230004341', $5 = '230004342', $6 = '230004343', $7 = '230004344', $8 = '230004345', $9 = '230004346'
13 266ms 2 126ms 139ms 133ms select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = $1), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = $2)) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = $3 and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between $5 and $6 and unidade_funcional.id_unidade_funcional in ( select $7 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $8 and id_assunto_hierarquia_unidade = $9) and unidade_funcional.id_municipio = $10 union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = $11), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = $12)) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = $13 and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between $15 and $16 and unidade_funcional.id_unidade_funcional in ( select $17 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $18 and id_assunto_hierarquia_unidade = $19) and unidade_funcional.id_municipio = $20 order by escola, aluno;Times Reported Time consuming bind #13
Day Hour Count Duration Avg duration 13 1 139ms 139ms 14 1 126ms 126ms -
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = $1), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = $2)) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = $3 and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between $5 and $6 and unidade_funcional.id_unidade_funcional in ( select $7 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $8 and id_assunto_hierarquia_unidade = $9) and unidade_funcional.id_municipio = $10 union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = $11), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = $12)) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = $13 and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between $15 and $16 and unidade_funcional.id_unidade_funcional in ( select $17 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $18 and id_assunto_hierarquia_unidade = $19) and unidade_funcional.id_municipio = $20 order by escola, aluno;
Date: 2023-08-14 14:15:14 Duration: 139ms Database: postgres parameters: $1 = '2023', $2 = '2023', $3 = '82', $4 = '2023', $5 = '0', $6 = '61', $7 = '460', $8 = '460', $9 = '10', $10 = '310670', $11 = '2023', $12 = '2023', $13 = '82', $14 = '2023', $15 = '0', $16 = '61', $17 = '460', $18 = '460', $19 = '10', $20 = '310670'
-
select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_gloabl.fj, 0) as fj, coalesce(faltas_gloabl.fnj, 0) as fnj, (coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_globalizada falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma group by falta.id_aluno_matricula, falta.id_turma) as faltas_gloabl on faltas_gloabl.id_aluno_matricula = am.id_aluno_matricula and faltas_gloabl.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_globalizada_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = $1), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = $2)) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as dias_letivos from calendario_periodo_data as cpd left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and calendario_data.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) between 1 and 5 or calendario_data.id_motivo_dia_letivo_extra is not null)) as dias_letivos on serie.flg_apon_falta_globalizado is true where unidade_funcional.id_instituicao = $3 and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and serie.flg_apon_falta_globalizado is true and dias_letivos.dias_letivos > 0 and least ((coalesce(faltas_gloabl.fnj, 0) / (dias_letivos.dias_letivos * 1.0)) * 100, 100.0) between $5 and $6 and unidade_funcional.id_unidade_funcional in ( select $7 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $8 and id_assunto_hierarquia_unidade = $9) and unidade_funcional.id_municipio = $10 union all select unidade_funcional.codigo, unidade_funcional.nome as escola, aluno.codigo as matricula, cidadao.nome as aluno, turma.codigo as turma, curso.sigla as curso, serie.sigla as serie, coalesce(faltas_mes.fnj1, 0) as fnj1, coalesce(faltas_mes.fnj2, 0) as fnj2, coalesce(faltas_mes.fnj3, 0) as fnj3, coalesce(faltas_mes.fnj4, 0) as fnj4, coalesce(faltas_mes.fnj5, 0) as fnj5, coalesce(faltas_mes.fnj6, 0) as fnj6, coalesce(faltas_mes.fnj7, 0) as fnj7, coalesce(faltas_mes.fnj8, 0) as fnj8, coalesce(faltas_mes.fnj9, 0) as fnj9, coalesce(faltas_mes.fnj10, 0) as fnj10, coalesce(faltas_mes.fnj11, 0) as fnj11, coalesce(faltas_mes.fnj12, 0) as fnj12, coalesce(faltas_disc.fj, 0) as fj, coalesce(faltas_disc.fnj, 0) as fnj, (coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100 as perc_fnj, sp_percentual_frequencia (amt.id_aluno_matricula, amt.id_turma) as perc_frequencia_periodo_letivo from turma inner join turma_serie ts on ts.id_turma = turma.id_turma inner join aluno_matr_turma amt on turma.id_turma = amt.id_turma and ts.id_serie = amt.id_serie_enturmacao inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula inner join aluno on aluno.id_cidadao = am.id_cidadao inner join cidadao on cidadao.id_cidadao = aluno.id_cidadao inner join serie on serie.id_serie = ts.id_serie inner join serie serie_aluno on serie_aluno.id_serie = am.id_serie inner join curso on curso.id_curso = serie_aluno.id_curso inner join unidade_funcional on unidade_funcional.id_unidade_funcional = turma.id_unidade_funcional left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum(falta.falta_justificada) as fj, sum(falta.falta_nao_justificada) as fnj from falta_aluno_disciplina falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma) as faltas_disc on faltas_disc.id_aluno_matricula = am.id_aluno_matricula and faltas_disc.id_turma = turma.id_turma left join lateral ( select falta.id_aluno_matricula, falta.id_turma, sum( case when falta.mes = 1 then falta.faltas else 0 end) as fnj1, sum( case when falta.mes = 2 then falta.faltas else 0 end) as fnj2, sum( case when falta.mes = 3 then falta.faltas else 0 end) as fnj3, sum( case when falta.mes = 4 then falta.faltas else 0 end) as fnj4, sum( case when falta.mes = 5 then falta.faltas else 0 end) as fnj5, sum( case when falta.mes = 6 then falta.faltas else 0 end) as fnj6, sum( case when falta.mes = 7 then falta.faltas else 0 end) as fnj7, sum( case when falta.mes = 8 then falta.faltas else 0 end) as fnj8, sum( case when falta.mes = 9 then falta.faltas else 0 end) as fnj9, sum( case when falta.mes = 10 then falta.faltas else 0 end) as fnj10, sum( case when falta.mes = 11 then falta.faltas else 0 end) as fnj11, sum( case when falta.mes = 12 then falta.faltas else 0 end) as fnj12 from ( select falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data) as mes, count(*) as faltas from falta_aluno_disciplina_diario falta where falta.id_aluno_matricula = am.id_aluno_matricula and falta.id_turma = turma.id_turma and falta.flg_justificada is false and not exists ( select null from aluno_matr_dispensa_disciplina dispensa where dispensa.id_aluno_matricula = falta.id_aluno_matricula and dispensa.id_turma = falta.id_turma and dispensa.id_disciplina = falta.id_disciplina and (dispensa.flg_dispensado_todos_periodos or dispensa.periodos @> array[falta.id_nota_periodo_aluno])) group by falta.id_aluno_matricula, falta.id_turma, extract(month from falta.data)) as falta group by falta.id_aluno_matricula, falta.id_turma) as faltas_mes on faltas_mes.id_aluno_matricula = am.id_aluno_matricula and faltas_mes.id_turma = turma.id_turma inner join lateral ( select coalesce(( select id_calendario from curso_calendario where id_curso = turma.id_curso and id_unidade_funcional = turma.id_unidade_funcional and ano = $11), ( select id_calendario from escola_calendario where id_unidade_funcional = turma.id_unidade_funcional and ano = $12)) as id_calendario) as calendario on 1 = 1 left join lateral ( select cast(count(cpd.data) as integer) as aulas from quadro_horario_homologado qh inner join componente_curricular cc on cc.id_componente_curricular = qh.id_componente_curricular inner join dia_semana on dia_semana.dia_semana = qh.dia_semana inner join calendario_periodo_data as cpd on cpd.id_calendario = calendario.id_calendario and dia_semana.dia_semana_postgresql = extract(dow from cpd.data) left join calendario_data on calendario_data.id_calendario = cpd.id_calendario and calendario_data.data = cpd.data inner join turma_periodo tp on tp.id_turma = turma.id_turma and cpd.bimestre between tp.periodo_calendario_inicio and tp.periodo_calendario_fim where cpd.id_calendario = calendario.id_calendario and cpd.data <= current_date and qh.id_turma = turma.id_turma and qh.id_serie = amt.id_serie_enturmacao and cc.flg_aponta_faltas is true and calendario_data.id_motivo_dia_nao_letivo is null and (qh.data_inicio_vigencia is null or qh.data_inicio_vigencia <= cpd.data) and (qh.data_termino_vigencia is null or qh.data_termino_vigencia >= cpd.data) and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = turma.id_turma and amdd.id_disciplina = cc.id_disciplina and (amdd.flg_dispensado_todos_periodos or amdd.periodos @> array[tp.id_nota_periodo_aluno]))) as aulas on serie.flg_apon_falta_globalizado is false where unidade_funcional.id_instituicao = $13 and am.id_aluno_matr_status in (1, 2, 7) and turma.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and serie.flg_apon_falta_globalizado is false and aulas.aulas > 0 and least ((coalesce(faltas_disc.fnj, 0) / (aulas.aulas * 1.0)) * 100, 100.0) between $15 and $16 and unidade_funcional.id_unidade_funcional in ( select $17 union all select id_unidade_funcional_filha from hierarquia_unidade_extendida where id_unidade_funcional_mae = $18 and id_assunto_hierarquia_unidade = $19) and unidade_funcional.id_municipio = $20 order by escola, aluno;
Date: 2023-08-14 15:16:25 Duration: 126ms Database: postgres parameters: $1 = '2023', $2 = '2023', $3 = '82', $4 = '2023', $5 = '0', $6 = '100', $7 = '460', $8 = '460', $9 = '10', $10 = '310670', $11 = '2023', $12 = '2023', $13 = '82', $14 = '2023', $15 = '0', $16 = '100', $17 = '460', $18 = '460', $19 = '10', $20 = '310670'
14 240ms 2 118ms 122ms 120ms ( select distinct professor_unidade.ano || '_cb_' || servidor_cargo.id_servidor_cargo_base as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, servidor_cargo.cl as cl, c.nome as professor, ca.descricao as cargo, sf.descricao as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_base as servidor_cargo, true as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, servidor_cargo.matricula_cargo as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_base servidor_cargo inner join professor_unidade_cargo_base professor_unidade on professor_unidade.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join situacao_funcional sf on sf.id_situacao_funcional = servidor_cargo.id_situacao_funcional inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_base apscb on apscb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscb.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $1 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $2) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_base) aula_disp_componente on aula_disp_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select trah.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $3) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_base) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tcs.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tras.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $5) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base where servidor_cargo.flg_aberto and (professor_unidade.ano = $6) and (c.nome ilike '%' || $7 || '%') and professor_unidade.id_unidade_funcional = $8 and (c.id_instituicao = $9)) union all ( select professor_unidade.ano || '_cs_' || servidor_cargo.id_servidor_cargo_sobr_alt as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, null as cl, c.nome as professor, ca.descricao as cargo, 'Sobreposto' as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, jtos.horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_sobr_alt as servidor_cargo, false as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, null as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_sobr_alt servidor_cargo inner join professor_unidade_cargo_sobr professor_unidade on professor_unidade.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_sobr apscs on apscs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt -- VAZIA left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscs.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $10 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $11) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_sobr_alt) aula_disp_componente on aula_disp_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select trah.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $12) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_sobr_alt) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tcs.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $13) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tras.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt where servidor_cargo.flg_aberto and (professor_unidade.ano = $15) and (c.nome ilike $16) and professor_unidade.id_unidade_funcional = $17 and (c.id_instituicao = $18)) order by rf_integer, professor, servidor_cargo limit 20;Times Reported Time consuming bind #14
Day Hour Count Duration Avg duration 13 1 118ms 118ms 14 1 122ms 122ms -
( select distinct professor_unidade.ano || '_cb_' || servidor_cargo.id_servidor_cargo_base as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, servidor_cargo.cl as cl, c.nome as professor, ca.descricao as cargo, sf.descricao as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_base as servidor_cargo, true as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, servidor_cargo.matricula_cargo as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_base servidor_cargo inner join professor_unidade_cargo_base professor_unidade on professor_unidade.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join situacao_funcional sf on sf.id_situacao_funcional = servidor_cargo.id_situacao_funcional inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_base apscb on apscb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscb.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $1 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $2) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_base) aula_disp_componente on aula_disp_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select trah.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $3) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_base) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tcs.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tras.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $5) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base where servidor_cargo.flg_aberto and (professor_unidade.ano = $6) and (c.nome ilike '%' || $7 || '%') and professor_unidade.id_unidade_funcional = $8 and (c.id_instituicao = $9)) union all ( select professor_unidade.ano || '_cs_' || servidor_cargo.id_servidor_cargo_sobr_alt as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, null as cl, c.nome as professor, ca.descricao as cargo, 'Sobreposto' as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, jtos.horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_sobr_alt as servidor_cargo, false as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, null as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_sobr_alt servidor_cargo inner join professor_unidade_cargo_sobr professor_unidade on professor_unidade.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_sobr apscs on apscs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt -- VAZIA left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscs.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $10 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $11) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_sobr_alt) aula_disp_componente on aula_disp_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select trah.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $12) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_sobr_alt) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tcs.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $13) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tras.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt where servidor_cargo.flg_aberto and (professor_unidade.ano = $15) and (c.nome ilike $16) and professor_unidade.id_unidade_funcional = $17 and (c.id_instituicao = $18)) order by rf_integer, professor, servidor_cargo limit 20;
Date: 2023-08-14 15:19:46 Duration: 122ms Database: postgres parameters: $1 = '230003487', $2 = '230003492', $3 = '230003496', $4 = '230003497', $5 = '230004219', $6 = '230004222', $7 = '1774332', $8 = '2023-08-14 15:18:01.91', $9 = '2023-08-14 15:18:01.91'
-
( select distinct professor_unidade.ano || '_cb_' || servidor_cargo.id_servidor_cargo_base as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, servidor_cargo.cl as cl, c.nome as professor, ca.descricao as cargo, sf.descricao as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_base as servidor_cargo, true as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, servidor_cargo.matricula_cargo as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_base servidor_cargo inner join professor_unidade_cargo_base professor_unidade on professor_unidade.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join situacao_funcional sf on sf.id_situacao_funcional = servidor_cargo.id_situacao_funcional inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_base jtocb on jtocb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocb.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_base apscb on apscb.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscb.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $1 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $2) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_base) aula_disp_componente on aula_disp_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select trah.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $3) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_base) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tcs.id_servidor_cargo_base, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $4) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tras.id_servidor_cargo_base, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $5) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_base, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base where servidor_cargo.flg_aberto and (professor_unidade.ano = $6) and (c.nome ilike '%' || $7 || '%') and professor_unidade.id_unidade_funcional = $8 and (c.id_instituicao = $9)) union all ( select professor_unidade.ano || '_cs_' || servidor_cargo.id_servidor_cargo_sobr_alt as id, professor_unidade.ano, null as semestre, s.registro_funcional as rf, null as cl, c.nome as professor, ca.descricao as cargo, 'Sobreposto' as situacao_funcional, coalesce(aps.coluna1 + aps.coluna2, 0) as pontos, jtt.descricao as descricao_jornada_opcao, jtos.horas_atribuidas, null as jex, servidor_cargo.id_servidor_cargo_sobr_alt as servidor_cargo, false as is_servidor_cargo_base, c.id_cidadao, null as id_ano_semestre, s.registro_funcional_numerico as rf_integer, jtt.sigla || ' (' || jtt.carga_horaria || ')' as jornada_opcao, null as matricula, jtt.carga_horaria as carga, case when ato_historico.contador notnull then 'Afastado/ Licença' else 'Ativo' end as situacao_atual, coalesce(aula_disp_componente.aulas, 0) + coalesce(aula_disp_regencia.aulas, 0) as horas_disponibilizadas from servidor_cargo_sobr_alt servidor_cargo inner join professor_unidade_cargo_sobr professor_unidade on professor_unidade.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join servidor s on s.id_cidadao = servidor_cargo.id_cidadao inner join cidadao c on s.id_cidadao = c.id_cidadao inner join cargo ca on ca.id_cargo = servidor_cargo.id_cargo inner join jorn_trabalho_opcao_car_sobr jtocs on jtocs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt inner join jorn_trabalho_opcao_serv jtos on jtos.id_jorn_trabalho_opcao_serv = jtocs.id_jorn_trabalho_opcao_serv and jtos.id_cidadao = c.id_cidadao and jtos.ano = professor_unidade.ano inner join jornada_trabalho_tipo jtt on jtt.id_jornada_trabalho_tipo = jtos.id_jornada_trabalho_tipo left join atrib_pont_serv_cargo_sobr apscs on apscs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt -- VAZIA left join atrib_pontuacao_serv aps on aps.id_atrib_pontuacao_serv = apscs.id_atrib_pontuacao_serv and aps.ano = professor_unidade.ano left join ( select sah.id_servidor_cargo_base, count(sah.id_servidor_cargo_base) as contador from servidor_ato_historico sah inner join ato_historico_tipo aht2 on aht2.id_ato_historico_tipo = sah.id_ato_historico_tipo where aht2.id_categoria_ato_historico = $10 and sah.data_referencia <= now() and (sah.data_fim isnull or sah.data_fim >= now()) group by id_servidor_cargo_base) as ato_historico on ato_historico.id_servidor_cargo_base = servidor_cargo.id_servidor_cargo_base left join lateral ( select tch.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas from turma_componente_historico tch inner join turma_componente tc on tch.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular where tch.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $11) and tc.id_turma_componente_status <> 4 group by tch.id_servidor_cargo_sobr_alt) aula_disp_componente on aula_disp_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select trah.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas from turma_regencia_atrib_hist trah inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = trah.id_turma_regencia_atribuicao where trah.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $12) and tra.id_turma_regencia_atrib_status <> 4 group by trah.id_servidor_cargo_sobr_alt) aula_disp_regencia on aula_disp_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tcs.id_servidor_cargo_sobr_alt, sum(cc.qtd_aulas_semanal) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_componente_servidor tcs inner join turma_componente tc on tcs.id_turma_componente = tc.id_turma_componente inner join componente_curricular cc on cc.id_componente_curricular = tc.id_componente_curricular inner join turma on tc.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tcs.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tc.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $13) and tc.id_turma_componente_status <> 4 group by tcs.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_componente on aula_atrib_componente.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt left join lateral ( select tras.id_servidor_cargo_sobr_alt, sum(tra.aulas_semanal_qtd) as aulas, turma.id_unidade_funcional, ambiente.id_unidade_referencia from turma_regencia_atrib_srv tras inner join turma_regencia_atribuicao tra on tra.id_turma_regencia_atribuicao = tras.id_turma_regencia_atribuicao inner join turma on tra.id_turma = turma.id_turma inner join ambiente on ambiente.id_ambiente = turma.id_ambiente where tras.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt and tra.id_ano_semestre in ( select id_ano_semestre from ano_semestre where ano = $14) and tra.id_turma_regencia_atrib_status <> 4 group by tras.id_servidor_cargo_sobr_alt, turma.id_unidade_funcional, ambiente.id_unidade_referencia) aula_atrib_regencia on aula_atrib_regencia.id_servidor_cargo_sobr_alt = servidor_cargo.id_servidor_cargo_sobr_alt where servidor_cargo.flg_aberto and (professor_unidade.ano = $15) and (c.nome ilike $16) and professor_unidade.id_unidade_funcional = $17 and (c.id_instituicao = $18)) order by rf_integer, professor, servidor_cargo limit 20;
Date: 2023-08-14 14:26:23 Duration: 118ms Database: postgres
15 237ms 2 113ms 123ms 118ms select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = $1 and ts.id_serie = $2 and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;Times Reported Time consuming bind #15
Day Hour Count Duration Avg duration 13 1 113ms 113ms 14 1 123ms 123ms -
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = $1 and ts.id_serie = $2 and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 15:12:01 Duration: 123ms Database: postgres parameters: $1 = '230007847', $2 = '1970'
-
select cc.id_componente_curricular, d.id_disciplina, d.sigla, d.descricao, cc.flg_aponta_notas, cc.flg_aponta_faltas, cc.flg_planejamento_bimestral, cc.id_expressao_resultado_componente, cc.id_tipo_atribuicao_componente = 2 as flg_atribuicao_componente, c.nome as professor, greatest (1, ( select max(tp.id_nota_periodo_aluno) from nota_aluno na inner join nota_periodo_aluno npa on npa.id_nota_periodo_aluno = na.id_nota_periodo_aluno inner join turma_periodo tp on tp.id_nota_periodo_aluno = npa.id_nota_periodo_aluno where na.id_turma = ts.id_turma and na.id_disciplina = cc.id_disciplina)) as ultimo_periodo_apontamento, ( select o.id_organizador_curricular from organizacao_grade_curricular ogc inner join organizador_curricular o on o.id_organizador_curricular = ogc.id_organizador_curricular inner join ano_semestre oai on oai.id_ano_semestre = ogc.id_ano_semestre_inicio left join ano_semestre oaf on oaf.id_ano_semestre = ogc.id_ano_semestre_termino where ogc.id_grade_curricular = ts.id_grade_curricular and a.ano between oai.ano and coalesce(oaf.ano, a.ano) and ogc.id_componente_curricular = cc.id_componente_curricular) as id_organizador_curricular from turma t inner join turma_serie ts on ts.id_turma = t.id_turma inner join ano_semestre a on a.id_ano_semestre = t.id_ano_semestre 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 left join turma_professor tp on tp.id_componente_curricular = cc.id_componente_curricular and tp.id_turma = ts.id_turma left join cidadao c on c.id_cidadao = tp.id_cidadao where ts.id_turma = $1 and ts.id_serie = $2 and (cc.flg_aponta_notas or cc.flg_aponta_faltas) order by d.sigla;
Date: 2023-08-14 14:15:14 Duration: 113ms Database: postgres parameters: $1 = '230009048', $2 = '1924'
16 236ms 2 114ms 121ms 118ms insert into indicador_1hora (id_indicador, data, chave, chave_texto, id_instituicao, valor, min, max) select i5.id_indicador, $1, i5.chave, i5.chave_texto, i5.id_instituicao, avg(i5.valor), case when i.flg_sumario then min(i5.min) else min(i5.valor) end, case when i.flg_sumario then max(i5.max) else max(i5.valor) end from indicador_5min i5 join indicador i on i.id_indicador = i5.id_indicador where data between $2 and $3 and i.id_consolidacao_indicador = 1 and i.id_periodicidade_indicador in (1, 2) group by i5.id_indicador, i5.chave, i5.chave_texto, i5.id_instituicao, i.flg_sumario;Times Reported Time consuming bind #16
Day Hour Count Duration Avg duration 09 1 121ms 121ms 12 1 114ms 114ms -
insert into indicador_1hora (id_indicador, data, chave, chave_texto, id_instituicao, valor, min, max) select i5.id_indicador, $1, i5.chave, i5.chave_texto, i5.id_instituicao, avg(i5.valor), case when i.flg_sumario then min(i5.min) else min(i5.valor) end, case when i.flg_sumario then max(i5.max) else max(i5.valor) end from indicador_5min i5 join indicador i on i.id_indicador = i5.id_indicador where data between $2 and $3 and i.id_consolidacao_indicador = 1 and i.id_periodicidade_indicador in (1, 2) group by i5.id_indicador, i5.chave, i5.chave_texto, i5.id_instituicao, i.flg_sumario;
Date: 2023-08-14 10:05:00 Duration: 121ms Database: postgres
-
insert into indicador_1hora (id_indicador, data, chave, chave_texto, id_instituicao, valor, min, max) select i5.id_indicador, $1, i5.chave, i5.chave_texto, i5.id_instituicao, avg(i5.valor), case when i.flg_sumario then min(i5.min) else min(i5.valor) end, case when i.flg_sumario then max(i5.max) else max(i5.valor) end from indicador_5min i5 join indicador i on i.id_indicador = i5.id_indicador where data between $2 and $3 and i.id_consolidacao_indicador = 1 and i.id_periodicidade_indicador in (1, 2) group by i5.id_indicador, i5.chave, i5.chave_texto, i5.id_instituicao, i.flg_sumario;
Date: 2023-08-14 13:05:00 Duration: 114ms Database: postgres
17 231ms 2 108ms 122ms 115ms 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 = $1 and ano.id_ano_semestre = $2 and modalidade.id_ensino_etapa = $3 and serie.id_serie = $4 and tp.id_nota_periodo_aluno in ($5, $6, $7) 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 $8 and $9 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 = $10 and ano.id_ano_semestre = $11 and modalidade.id_ensino_etapa = $12 and serie.id_serie = $13 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 ($14, $15, $16) 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 $17 and $18 order by nome_cidadao, codigo_aluno limit 10 offset 40;Times Reported Time consuming bind #17
Day Hour Count Duration Avg duration 09 2 231ms 115ms -
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 = $1 and ano.id_ano_semestre = $2 and modalidade.id_ensino_etapa = $3 and serie.id_serie = $4 and tp.id_nota_periodo_aluno in ($5, $6, $7) 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 $8 and $9 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 = $10 and ano.id_ano_semestre = $11 and modalidade.id_ensino_etapa = $12 and serie.id_serie = $13 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 ($14, $15, $16) 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 $17 and $18 order by nome_cidadao, codigo_aluno limit 10 offset 40;
Date: 2023-08-14 10:52:12 Duration: 122ms Database: postgres parameters: $1 = '606651', $2 = '66', $3 = '2', $4 = '1980', $5 = '1', $6 = '2', $7 = '3', $8 = '0', $9 = '100', $10 = '606651', $11 = '66', $12 = '2', $13 = '1980', $14 = '1', $15 = '2', $16 = '3', $17 = '0', $18 = '100'
-
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 = $1 and ano.id_ano_semestre = $2 and modalidade.id_ensino_etapa = $3 and serie.id_serie = $4 and tp.id_nota_periodo_aluno in ($5, $6, $7) 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 $8 and $9 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 = $10 and ano.id_ano_semestre = $11 and modalidade.id_ensino_etapa = $12 and serie.id_serie = $13 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 ($14, $15, $16) 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 $17 and $18 order by nome_cidadao, codigo_aluno limit 10 offset 40;
Date: 2023-08-14 10:33:01 Duration: 108ms Database: postgres parameters: $1 = '606651', $2 = '66', $3 = '2', $4 = '1982', $5 = '1', $6 = '2', $7 = '3', $8 = '0', $9 = '100', $10 = '606651', $11 = '66', $12 = '2', $13 = '1982', $14 = '1', $15 = '2', $16 = '3', $17 = '0', $18 = '100'
18 224ms 2 108ms 115ms 112ms select serie.id_serie, turma.id_turma, disciplina.id_disciplina, cc.id_componente_curricular, turma.nome as nome_turma, serie.sigla as sigla_serie, turno.sigla as sigla_turno, disciplina.descricao as disciplina, cidadao.nome as professor, serie.id_forma_avaliacao, cc.flg_aponta_notas, cc.flg_aponta_faltas, serie.flg_apon_falta_globalizado, ano_semestre.semestre, cc.flg_aponta_conteudo_curricular and exists ( select null from conteudo_curricular_componente ccc where cc.id_componente_curricular = ccc.id_componente_curricular) as flg_aponta_conteudo_curricular, ts.num_vagas_oferecidas <> ts.num_vagas_remanescentes and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula where amt.id_turma = turma.id_turma and am.id_aluno_matr_status = 1 and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = disciplina.id_disciplina)) as flg_possui_alunos, curso.sigla as curso from turma inner join turno on turno.id_turno = turma.id_turno inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional 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 inner join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano_semestre.ano inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina using (id_disciplina) left join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma and id_tipo_atribuicao_componente = 1 left join turma_regencia_atrib_srv tras using (id_turma_regencia_atribuicao) left join turma_componente tc on tc.id_turma = turma.id_turma and tc.id_componente_curricular = cc.id_componente_curricular and id_tipo_atribuicao_componente = 2 left join turma_componente_servidor tcs using (id_turma_componente) left join cidadao on (id_tipo_atribuicao_componente = 1 and tras.id_cidadao = cidadao.id_cidadao) or (id_tipo_atribuicao_componente = 2 and tcs.id_cidadao = cidadao.id_cidadao) where turma.id_turma_status = 1 and turma.id_unidade_funcional = $1 and ano_semestre.ano = $2 and turma.flg_organizada is true order by curso, sigla_serie, serie.id_serie, nome_turma, turma.id_turma, sigla_turno, disciplina.ordem, disciplina.descricao;Times Reported Time consuming bind #18
Day Hour Count Duration Avg duration 10 1 108ms 108ms 13 1 115ms 115ms -
select serie.id_serie, turma.id_turma, disciplina.id_disciplina, cc.id_componente_curricular, turma.nome as nome_turma, serie.sigla as sigla_serie, turno.sigla as sigla_turno, disciplina.descricao as disciplina, cidadao.nome as professor, serie.id_forma_avaliacao, cc.flg_aponta_notas, cc.flg_aponta_faltas, serie.flg_apon_falta_globalizado, ano_semestre.semestre, cc.flg_aponta_conteudo_curricular and exists ( select null from conteudo_curricular_componente ccc where cc.id_componente_curricular = ccc.id_componente_curricular) as flg_aponta_conteudo_curricular, ts.num_vagas_oferecidas <> ts.num_vagas_remanescentes and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula where amt.id_turma = turma.id_turma and am.id_aluno_matr_status = 1 and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = disciplina.id_disciplina)) as flg_possui_alunos, curso.sigla as curso from turma inner join turno on turno.id_turno = turma.id_turno inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional 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 inner join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano_semestre.ano inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina using (id_disciplina) left join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma and id_tipo_atribuicao_componente = 1 left join turma_regencia_atrib_srv tras using (id_turma_regencia_atribuicao) left join turma_componente tc on tc.id_turma = turma.id_turma and tc.id_componente_curricular = cc.id_componente_curricular and id_tipo_atribuicao_componente = 2 left join turma_componente_servidor tcs using (id_turma_componente) left join cidadao on (id_tipo_atribuicao_componente = 1 and tras.id_cidadao = cidadao.id_cidadao) or (id_tipo_atribuicao_componente = 2 and tcs.id_cidadao = cidadao.id_cidadao) where turma.id_turma_status = 1 and turma.id_unidade_funcional = $1 and ano_semestre.ano = $2 and turma.flg_organizada is true order by curso, sigla_serie, serie.id_serie, nome_turma, turma.id_turma, sigla_turno, disciplina.ordem, disciplina.descricao;
Date: 2023-08-14 14:10:44 Duration: 115ms Database: postgres parameters: $1 = '2023', $2 = '230003373', $3 = '230003371', $4 = '230003372', $5 = '230003370', $6 = '230003366', $7 = '230003367', $8 = '230003368', $9 = '230008592', $10 = '230003369', $11 = '230003362', $12 = '230003363', $13 = '230003364', $14 = '230003358', $15 = '230003359', $16 = '230003360', $17 = '230003361', $18 = '230007092', $19 = '230007091', $20 = '230007089', $21 = '230007086', $22 = '230007087', $23 = '230007085', $24 = '230007084', $25 = '230007096', $26 = '230007097', $27 = '230007093', $28 = '230007099', $29 = '230007098', $30 = '230008596', $31 = '230007090', $32 = '230007095', $33 = '230007094', $34 = '1', $35 = '1', $36 = '1', $37 = '1', $38 = '1'
-
select serie.id_serie, turma.id_turma, disciplina.id_disciplina, cc.id_componente_curricular, turma.nome as nome_turma, serie.sigla as sigla_serie, turno.sigla as sigla_turno, disciplina.descricao as disciplina, cidadao.nome as professor, serie.id_forma_avaliacao, cc.flg_aponta_notas, cc.flg_aponta_faltas, serie.flg_apon_falta_globalizado, ano_semestre.semestre, cc.flg_aponta_conteudo_curricular and exists ( select null from conteudo_curricular_componente ccc where cc.id_componente_curricular = ccc.id_componente_curricular) as flg_aponta_conteudo_curricular, ts.num_vagas_oferecidas <> ts.num_vagas_remanescentes and exists ( select null from aluno_matr_turma amt inner join aluno_matricula am on am.id_aluno_matricula = amt.id_aluno_matricula where amt.id_turma = turma.id_turma and am.id_aluno_matr_status = 1 and not exists ( select null from aluno_matr_dispensa_disciplina amdd where amdd.id_aluno_matricula = amt.id_aluno_matricula and amdd.id_turma = amt.id_turma and amdd.id_disciplina = disciplina.id_disciplina)) as flg_possui_alunos, curso.sigla as curso from turma inner join turno on turno.id_turno = turma.id_turno inner join ano_semestre on ano_semestre.id_ano_semestre = turma.id_ano_semestre inner join unidade_funcional uf on turma.id_unidade_funcional = uf.id_unidade_funcional 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 inner join escola_calendario ec on ec.id_unidade_funcional = turma.id_unidade_funcional and ec.ano = ano_semestre.ano inner join componente_curricular cc on cc.id_grade_curricular = ts.id_grade_curricular inner join disciplina using (id_disciplina) left join turma_regencia_atribuicao tra on tra.id_turma = turma.id_turma and id_tipo_atribuicao_componente = 1 left join turma_regencia_atrib_srv tras using (id_turma_regencia_atribuicao) left join turma_componente tc on tc.id_turma = turma.id_turma and tc.id_componente_curricular = cc.id_componente_curricular and id_tipo_atribuicao_componente = 2 left join turma_componente_servidor tcs using (id_turma_componente) left join cidadao on (id_tipo_atribuicao_componente = 1 and tras.id_cidadao = cidadao.id_cidadao) or (id_tipo_atribuicao_componente = 2 and tcs.id_cidadao = cidadao.id_cidadao) where turma.id_turma_status = 1 and turma.id_unidade_funcional = $1 and ano_semestre.ano = $2 and turma.flg_organizada is true order by curso, sigla_serie, serie.id_serie, nome_turma, turma.id_turma, sigla_turno, disciplina.ordem, disciplina.descricao;
Date: 2023-08-14 11:16:25 Duration: 108ms Database: postgres parameters: $1 = '606285', $2 = '2023'
19 203ms 1 203ms 203ms 203ms 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 = $1 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $2 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 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 sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ($4) 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 (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (1, 4) 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 = $5 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $6 inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = $7 left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ($8) and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 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 = $9 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $10 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 = $11 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 ($12) 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;Times Reported Time consuming bind #19
Day Hour Count Duration Avg duration 13 1 203ms 203ms -
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 = $1 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $2 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 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 sda.id_horario_turma = q.id_horario_turma and coalesce(sda.id_componente_curricular, cc.id_componente_curricular) = cc.id_componente_curricular where t.id_turma in ($4) 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 (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and (t.id_periodicidade_conteudo in (1, 4) 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 = $5 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $6 inner join calendario_periodo_data cpd on cpd.id_calendario = coalesce(t.id_calendario_turma, cu.id_calendario, ec.id_calendario) and cpd.bimestre = $7 left join calendario_data cd on cd.id_calendario = cpd.id_calendario and cd.data::date = cpd.data where t.id_turma in ($8) and t.flg_situacao_didatica and cc.flg_aponta_situacao_didatica and cd.id_motivo_dia_nao_letivo is null and (extract(dow from cpd.data) not in (0, 6) or cd.id_motivo_dia_letivo_extra is not null) and t.id_periodicidade_conteudo = 2 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 = $9 left join curso_calendario cu on cu.id_curso = t.id_curso and cu.id_unidade_funcional = t.id_unidade_funcional and cu.ano = $10 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 = $11 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 ($12) 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: 2023-08-14 14:52:04 Duration: 203ms Database: postgres parameters: $1 = '2', $2 = '230002206', $3 = '2'
20 202ms 2 100ms 101ms 101ms 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 = $1 and ano.id_ano_semestre = $2 and modalidade.id_ensino_etapa = $3 and serie.id_serie = $4 and tp.id_nota_periodo_aluno in ($5, $6, $7) 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 $8 and $9 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 = $10 and ano.id_ano_semestre = $11 and modalidade.id_ensino_etapa = $12 and serie.id_serie = $13 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 ($14, $15, $16) 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 $17 and $18 order by nome_cidadao, codigo_aluno limit 10 offset 110;Times Reported Time consuming bind #20
Day Hour Count Duration Avg duration 12 1 101ms 101ms 13 1 100ms 100ms -
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 = $1 and ano.id_ano_semestre = $2 and modalidade.id_ensino_etapa = $3 and serie.id_serie = $4 and tp.id_nota_periodo_aluno in ($5, $6, $7) 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 $8 and $9 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 = $10 and ano.id_ano_semestre = $11 and modalidade.id_ensino_etapa = $12 and serie.id_serie = $13 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 ($14, $15, $16) 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 $17 and $18 order by nome_cidadao, codigo_aluno limit 10 offset 110;
Date: 2023-08-14 13:26:01 Duration: 101ms Database: postgres parameters: $1 = '0', $2 = '0', $3 = '0', $4 = '2147483647', $5 = '230002526', $6 = '1776', $7 = '1419'
-
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 = $1 and ano.id_ano_semestre = $2 and modalidade.id_ensino_etapa = $3 and serie.id_serie = $4 and tp.id_nota_periodo_aluno in ($5, $6, $7) 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 $8 and $9 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 = $10 and ano.id_ano_semestre = $11 and modalidade.id_ensino_etapa = $12 and serie.id_serie = $13 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 ($14, $15, $16) 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 $17 and $18 order by nome_cidadao, codigo_aluno limit 10 offset 110;
Date: 2023-08-14 14:51:53 Duration: 100ms Database: postgres parameters: $1 = '606651', $2 = '66', $3 = '2', $4 = '1982', $5 = '1', $6 = '2', $7 = '3', $8 = '0', $9 = '100', $10 = '606651', $11 = '66', $12 = '2', $13 = '1982', $14 = '1', $15 = '2', $16 = '3', $17 = '0', $18 = '100'
-
Events
Log levels
Key values
- 60,037 Log entries
Events distribution
Key values
- 0 PANIC entries
- 0 FATAL entries
- 41 ERROR entries
- 0 WARNING entries
Most Frequent Errors/Events
Key values
- 23 Max number of times the same event was reported
- 41 Total events found
Rank Times reported Error 1 23 ERROR: duplicate key value violates unique constraint "..."
Times Reported Most Frequent Error / Event #1
Day Hour Count Aug 13 00 1 23 2 Aug 14 00 1 08 6 09 7 10 1 11 1 13 2 14 1 16 1 - ERROR: duplicate key value violates unique constraint "pk_bolsa_escola_remessa_aluno"
- ERROR: duplicate key value violates unique constraint "iu_planejamento_bimestral_organizado_disciplina"
- ERROR: duplicate key value violates unique constraint "iu_reuniao_familiar_tipo"
Detail: Key (id_bolsa_escola_remessa_resp, id_aluno)=(50940256, 1368395) already exists.
Statement: insert into bolsa_escola_remessa_aluno (id_aluno, id_bolsa_escola_remessa_resp) values ($1, $2)Date: 2023-08-13 00:09:19
Detail: Key (id_turma, id_serie, id_nota_periodo_aluno, id_disciplina)=(230005151, 1979, 3, 1834) already exists.
Statement: insert into planejamento_bimestral_organizado (data_atualizacao, flg_aprovacao_diretor, flg_aprovacao_professor, id_turma, data_alteracao_planejamento, flg_aprovacao_secretario, id_serie, data_inclusao, id_nota_periodo_aluno, id_disciplina) values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)Date: 2023-08-13 23:44:10
Detail: Key (id_unidade_funcional, ano, id_nota_periodo_aluno)=(606015, 2023, 3) already exists.
Statement: insert into reuniao_familiar (ano, data_prevista, id_unidade_funcional, id_nota_periodo_aluno, id_reuniao_familiar_tipo, descricao) values ($1, $2, $3, $4, $5, $6)Date: 2023-08-14 08:32:06
2 6 ERROR: update or delete on table "..." violates foreign key constraint "..." on table "..."
Times Reported Most Frequent Error / Event #2
Day Hour Count Aug 14 15 3 16 3 - ERROR: update or delete on table "serie" violates foreign key constraint "fk_serie" on table "grade_curricular"
- ERROR: update or delete on table "serie" violates foreign key constraint "fk_serie_origem" on table "equivalencia_serie"
Detail: Key (id_serie)=(2170) is still referenced from table "grade_curricular".
Statement: delete from serie where id_serie = $1Date: 2023-08-14 15:56:59
Detail: Key (id_serie)=(2170) is still referenced from table "equivalencia_serie".
Statement: delete from serie where id_serie = $1Date: 2023-08-14 16:05:04
3 4 ERROR: null value in column "..." of relation "..." violates not-null constraint
Times Reported Most Frequent Error / Event #3
Day Hour Count Aug 13 00 1 03 1 Aug 14 00 1 03 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: 2023-08-13 00:38:05
4 3 LOG: parameter "..." changed to "..."
Times Reported Most Frequent Error / Event #4
Day Hour Count Aug 14 09 3 - LOG: parameter "log_min_duration_statement" changed to "100"
- LOG: parameter "log_statement" changed to "all"
- LOG: parameter "log_statement" changed to "none"
Date: 2023-08-14 09:35:02
Date: 2023-08-14 09:35:02
Date: 2023-08-14 09:36:07
5 3 ERROR: column "..." does not exist
Times Reported Most Frequent Error / Event #5
Day Hour Count Aug 14 10 3 - ERROR: column pm.id_unidade_localizacao does not exist at character 3347
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 uf.id_municipio = $8 and pm.data_matricula::date <= $9 and ( ams.flg_status_ativo or ( select aluno_matr_status.flg_status_ativo from aluno_matr_status_hist amsh inner join aluno_matr_status on aluno_matr_status.id_aluno_matr_status = amsh.id_aluno_matr_status where amsh.id_aluno_matricula = pm.id_aluno_matricula and amsh.data_ocorrencia::date <= $10 order by 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 >= $11::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 = $12 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: 2023-08-14 10:37:35
6 2 ERROR: canceling statement due to statement timeout
Times Reported Most Frequent Error / Event #6
Day Hour Count Aug 13 22 1 Aug 14 08 1 - ERROR: canceling statement due to statement timeout
Statement: select distinct id_cidadao, id_aluno_matricula, codigo, nome, nascimento_data, ano || coalesce(' / ' || CAST(semestre AS VARCHAR), '') as ano, situacao, codigo_turma, curso, serie from ( SELECT distinct c.id_cidadao, am.id_aluno_matricula, a.codigo, c.nome, c.nascimento_data, ase.ano, ase.semestre, ams.descricao as situacao, t.codigo as codigo_turma, curso.sigla as curso, serie.sigla as serie, am.flg_matricula_atual, max(am.id_aluno_matricula) over(partition by am.id_cidadao) as ultima_matricula_escola, c.id_instituicao, am.id_unidade_funcional FROM cidadao c INNER JOIN aluno a ON a.id_cidadao = c.id_cidadao INNER JOIN aluno_matricula am ON am.id_cidadao = c.id_cidadao INNER join serie on serie.id_serie = am.id_serie INNER join curso on curso.id_curso = serie.id_curso INNER JOIN ano_semestre ase USING (id_ano_semestre) INNER JOIN aluno_matr_status ams USING (id_aluno_matr_status) LEFT JOIN aluno_matr_turma amt on amt.id_aluno_matricula = am.id_aluno_matricula and amt.id_tipo_enturmacao = 1 LEFT JOIN turma t ON t.id_turma = amt.id_turma where c.id_instituicao = 82 and am.id_unidade_funcional = 351 and am.id_aluno_matricula in ( select am.id_aluno_matricula from aluno_matricula am inner join ano_semestre ano on ano.id_ano_semestre = am.id_ano_semestre where am.id_cidadao = c.id_cidadao and am.id_unidade_funcional = 351 order by ano.ano * 10 + coalesce(ano.semestre, 0) desc, am.data_matricula desc, am.id_aluno_matricula desc limit 1 ) ) as alunos WHERE 1 = 1 AND (alunos.id_unidade_funcional = 351) AND (alunos.id_instituicao = 82) AND (upper(alunos.nome) LIKE '%YURI LUIZ%') order by alunos.nome
Date: 2023-08-13 22:46:58