http://analytics.2im.com.br/gps/visao-avaliado/dashboard

Query Metrics

17 Database Queries
17 Different statements
422.14 ms Query time
7 Invalid entities

Queries

Group similar statements

default connection

# Time Info
1 1.61 ms
SELECT t0.id_usuario AS id_usuario_1, t0.nome AS nome_2, t0.email AS email_3, t0.login AS login_4, t0.id_avaliado AS id_avaliado_5, t0.senha AS senha_6, t0.ativo AS ativo_7, t0.data_add AS data_add_8, t0.data_upd AS data_upd_9, t0.force_update AS force_update_10, t0.senha_update AS senha_update_11, t0.data_limite_acesso AS data_limite_acesso_12, t0.onboard AS onboard_13, t0.foto AS foto_14, t0.googleAuthenticatorSecret AS googleauthenticatorsecret_15, t0.passwordless_token AS passwordless_token_16, t0.id_perfil AS id_perfil_17 FROM analytics.usuario t0 WHERE t0.id_usuario = ?
Parameters:
[
  7707
]
2 1.20 ms
SELECT t0.id_perfil AS id_perfil_1, t0.titulo AS titulo_2, t0.data_add AS data_add_3, t0.data_upd AS data_upd_4, t0.rota_default AS rota_default_5, t0.role AS role_6, t0.permissao AS permissao_7 FROM analytics.perfil t0 WHERE t0.id_perfil = ?
Parameters:
[
  2
]
3 1.14 ms
SELECT t0.id_usuario_cliente AS id_usuario_cliente_1, t0.id_cliente AS id_cliente_2, t0.id_usuario AS id_usuario_3, t0.nome AS nome_4, t0.permissao AS permissao_5, t0.data_add AS data_add_6, t0.data_aceite_termo AS data_aceite_termo_7 FROM analytics.usuario_cliente t0 WHERE t0.id_usuario = ? AND t0.id_cliente = ? LIMIT 1
Parameters:
[
  7707
  228
]
4 1.20 ms
SELECT t0.id_visao AS id_visao_1, t0.titulo AS titulo_2, t0.rota_default AS rota_default_3, t0.slug AS slug_4, t0.icone AS icone_5 FROM analytics.visao t0 WHERE t0.slug = ? LIMIT 1
Parameters:
[
  "avaliado"
]

cliente connection

# Time Info
1 1.55 ms
SELECT
                    id_solicitacao,
                    id_usuario,
                    nome_usuario,
                    nome_documento,
                    pasta_slug,
                    extensao,
                    especialidade,
                    aprovacao,
                    envios_permitidos,
                    data_add
                FROM fornecidos.solicitacao
                WHERE especialidade->>'301' IS NOT NULL OR especialidade = '[]'
                GROUP BY 1,2,3,4,5,8,9,10
Parameters:
[]
2 0.51 ms
SELECT
                    *
                FROM fornecidos.arquivos a
                WHERE a.id_avaliado = 1009922
Parameters:
[]
3 3.67 ms
SELECT
                    Array_To_String(Array_Agg(Concat(periodo->>'ano',periodo->>'periodo')::integer ORDER BY periodo->>'periodo'),',') periodos
                FROM
                    dados.gps
                WHERE
                    id_avaliado = :id_avaliado
                    AND id_grupo = :id_grupo
                    AND id_programa = :id_programa
                    AND id_modelagem = :id_modelagem
                     AND periodo->>'tipo' = 'mes' AND (periodo->>'ano')::int = 2026 AND (periodo->>'periodo')::int = 01
Parameters:
[
  ":id_avaliado" => 1009922
  ":id_programa" => 1
  ":id_modelagem" => 1
  ":id_grupo" => 301
]
4 214.50 ms
SELECT
                    id_dominio,
                    nome_dominio,
                    peso::float,
                    COALESCE(AVG(score), 0)::float valor,
                    jsonb_agg(
                        jsonb_build_object(
                            'periodo', periodo,
                            'performance', performance
                        ) ORDER BY periodo ASC
                    ) performances
                FROM (
                    SELECT
                        id_modelagem,
                        nome_modelagem,
                        id_dominio,
                        nome_dominio,
                        periodo,
                        peso,
                        ROUND(AVG(score) FILTER(WHERE score IS NOT NULL), 2) score,
                        ROUND(AVG(performance) FILTER(WHERE score IS NOT NULL), 2) performance
                    FROM (
                        SELECT
                            a.*,
                            p.peso,
                            COALESCE(SUM(score), 0) score,
                            CASE
                                WHEN SUM(score) IS NOT NULL THEN (SUM(score)/p.peso)*100
							    ELSE null
                            END performance
                        FROM (
                            SELECT DISTINCT
                                id_modelagem,
                                nome_modelagem,
                                id_grupo,
                                id_avaliado,
                                periodo,
                                id_dominio,
                                nome_dominio
                            FROM modelagem.scorecard_avaliados
                            JOIN LATERAL (
                                SELECT generate_periodo periodo FROM generate_periodo(202601,202601)
                            ) p ON periodo BETWEEN avaliacao_inicio AND avaliacao_fim
                            WHERE TRUE
                                 AND avaliacao_inicio  <= 202601 AND avaliacao_fim >= 202601 AND scorecard_inicio  <= 202601 AND scorecard_fim >= 202601
                                AND id_programa = 1 AND id_modelagem = 1
                                 AND id_avaliado = 1009922
                                 AND id_grupo = 301
                                
                            ORDER BY 1,3,4,5,6
                        ) a
                        LEFT JOIN (
                            SELECT
                                id_modelagem,
                                id_grupo,
                                id_dominio,
                                SUM(peso) peso
                            FROM (
                                SELECT DISTINCT
                                    id_modelagem,
                                    id_dominio,
                                    id_grupo,
                                    id_indicador,
                                    ROUND(AVG(peso), 2) peso
                                FROM modelagem.scorecard_avaliados
                                WHERE TRUE  AND avaliacao_inicio  <= 202601 AND avaliacao_fim >= 202601 AND scorecard_inicio  <= 202601 AND scorecard_fim >= 202601
                                GROUP BY 1,2,3,4
                            ) a
                            GROUP BY 1,2,3
                        ) p USING (id_modelagem, id_dominio, id_grupo)
                        LEFT JOIN dados.calculo c ON (
                            a.id_modelagem = c.id_modelagem
                            AND a.id_grupo = c.id_grupo
                            AND a.id_avaliado = c.id_avaliado
                            AND a.periodo = CONCAT(c.periodo->>'ano', LPAD(c.periodo->>'periodo', 2, '0'))::int
                            AND a.id_dominio = c.id_dominio
                        )
                        GROUP BY 1,2,3,4,5,6,7,8
                    ) b
                    GROUP BY 1,2,3,4,5,6
                ) c
                GROUP BY 1,2,3
Parameters:
[]
5 5.09 ms
SELECT
                    id
                    ,titulo
                    ,tipo
                    ,Jsonb_Agg(jsonb_build_object(ano, json)) AS json
                FROM (
                    SELECT
                        id
                        ,titulo
                        ,tipo
                        ,CASE WHEN ano_null IS NULL THEN 'ND' ELSE ano END AS ano
                        ,Jsonb_Agg(Jsonb_Build_Object('titulo', periodo_titulo, 'referencia', referencia) ORDER BY referencia) AS json
                    FROM (
                        SELECT
                            *
                        FROM (
                            SELECT
                                periodo->>'ano' AS ano
                                ,periodo->>'tipo' AS tipo_periodo
                                ,periodo->>'periodo' AS periodo
                            FROM (
                                SELECT DISTINCT
                                    periodo
                                FROM
                                    dados.gps
                                WHERE TRUE
                                AND
                                     id_modelagem = 1 AND id_programa = 1
                                     AND id_avaliado = 1009922 
                                    --  AND homologado = true
                            ) a
                        ) b
                        JOIN (
                            SELECT
                                CASE WHEN ano IS NULL THEN p.titulo->>'pt_BR' ELSE ano::text END AS ano
                                ,ano AS ano_null
                                ,CASE WHEN referencia_coluna_periodo = 'mes' THEN periodo.referencia(p.titulo->>'pt_BR') ELSE p.titulo->>'pt_BR' END AS periodo
                                ,p.titulo->>'pt_BR' AS periodo_titulo
                                ,referencia_coluna_periodo AS tipo_periodo
                                ,p.id_categoria_periodo AS id
                                ,cp.titulo->>'pt_BR' AS titulo
                                ,p.id_periodo AS id_periodo
                                ,CASE WHEN referencia_coluna_periodo = 'mes' THEN periodo.referencia(p.titulo->>'pt_BR') ELSE p.titulo->>'pt_BR' END AS referencia
                                ,tipo
                            FROM
                                periodo.periodo p
                                JOIN periodo.categoria_periodo cp USING(id_categoria_periodo)
                        ) c USING(ano, periodo, tipo_periodo)
                    ) a
                    GROUP BY 1,2,3,4
                    ORDER BY id, ano ASC
                ) b
                GROUP BY 1,2,3
Parameters:
[]
6 3.59 ms
SELECT
                    ROUND(AVG(performance), 2) performance
                FROM (
                    SELECT 
                        id_programa id
                        , nome_programa nome
                        , performance
                    FROM dados.gps
                    WHERE TRUE
                        AND id_programa = 1 AND id_modelagem = 1
                         AND periodo->>'tipo' = 'mes' AND (periodo->>'ano')::int = 2026 AND (periodo->>'periodo')::int = 01
                         AND id_avaliado = 1009922
                         AND id_grupo = 301
                        
                ) a
Parameters:
[]
7 4.91 ms
SELECT
                jsonb_agg(periodo) periodo
                ,jsonb_agg(valor ORDER BY periodo ASC) valor
            FROM(
                SELECT 
                     periodo
                    ,ROUND(performance, 2) AS valor
                FROM (
                    SELECT 
                         CONCAT(periodo->>'ano', LPAD(periodo->>'periodo', 2, '0'))::int AS periodo 
                        ,AVG(performance) AS performance
                    FROM
                        dados.gps
                        JOIN LATERAL (
                SELECT generate_periodo_retro periodo_retro FROM generate_periodo_retro(202601, 12)
            ) p ON periodo_retro = CONCAT(periodo->>'ano', LPAD(periodo->>'periodo', 2, '0'))::int
                    WHERE
                        TRUE
                        AND id_programa = 1 AND id_modelagem = 1
                        
                         AND id_grupo = 301
                         AND id_avaliado = 1009922
                        
                    GROUP BY 1
                ) periodos
            ) principal
Parameters:
[]
8 7.69 ms
SELECT
                jsonb_agg(periodo) periodo
                ,jsonb_agg(valor ORDER BY periodo ASC) valor
            FROM(
                SELECT 
                     periodo
                    ,ROUND(performance, 2) AS valor
                FROM (
                    SELECT 
                         CONCAT(periodo->>'ano', LPAD(periodo->>'periodo', 2, '0'))::int AS periodo 
                        ,AVG(performance) AS performance
                    FROM
                        dados.gps
                        
                    WHERE
                        TRUE
                        AND id_programa = 1 AND id_modelagem = 1
                         AND CONCAT(periodo->>'ano', periodo->>'periodo') in ('202502', '202503', '202504', '202505', '202506', '202507', '202508', '202509', '202510', '202511', '202512', '202601')
                         AND id_grupo = 301
                        
                        
                    GROUP BY 1
                ) periodos
            ) principal
Parameters:
[]
9 2.99 ms
SELECT 
                    ROUND(AVG(performance), 2) AS media
                FROM
                    dados.gps
                WHERE
                    TRUE
                        AND id_programa = 1 AND id_modelagem = 1
                         AND periodo->>'ano' = '2026'
                         AND id_grupo = 301
                         AND id_avaliado = 1009922
Parameters:
[]
10 5.68 ms
SELECT 
                    ROUND(AVG(performance), 2) AS media
                FROM
                    dados.gps
                WHERE
                    TRUE
                        AND id_programa = 1 AND id_modelagem = 1
                         AND CONCAT(periodo->>'ano', periodo->>'periodo') in ('202502', '202503', '202504', '202505', '202506', '202507', '202508', '202509', '202510', '202511', '202512', '202601')
                         AND id_grupo = 301
Parameters:
[]
11 151.90 ms
SELECT
                    id_dominio,
                    nome_dominio,
                    peso::float,
                    COALESCE(AVG(score), 0)::float valor,
                    jsonb_agg(
                        jsonb_build_object(
                            'periodo', periodo,
                            'performance', performance
                        ) ORDER BY periodo ASC
                    ) performances
                FROM (
                    SELECT
                        id_modelagem,
                        nome_modelagem,
                        id_dominio,
                        nome_dominio,
                        periodo,
                        peso,
                        ROUND(AVG(score) FILTER(WHERE score IS NOT NULL), 2) score,
                        ROUND(AVG(performance) FILTER(WHERE score IS NOT NULL), 2) performance
                    FROM (
                        SELECT
                            a.*,
                            p.peso,
                            COALESCE(SUM(score), 0) score,
                            CASE
                                WHEN SUM(score) IS NOT NULL THEN (SUM(score)/p.peso)*100
							    ELSE null
                            END performance
                        FROM (
                            SELECT DISTINCT
                                id_modelagem,
                                nome_modelagem,
                                id_grupo,
                                id_avaliado,
                                periodo,
                                id_dominio,
                                nome_dominio
                            FROM modelagem.scorecard_avaliados
                            JOIN LATERAL (
                                SELECT generate_periodo_retro periodo FROM generate_periodo_retro(202601, 12)
                            ) p ON periodo BETWEEN avaliacao_inicio AND avaliacao_fim
                            WHERE TRUE
                                 AND avaliacao_inicio  <= 202601 AND avaliacao_fim >= 202601 AND scorecard_inicio  <= 202601 AND scorecard_fim >= 202601
                                AND id_programa = 1 AND id_modelagem = 1
                                 AND id_grupo = 301
                                 AND id_avaliado = 1009922
                                
                            ORDER BY 1,3,4,5,6
                        ) a
                        LEFT JOIN (
                            SELECT
                                id_modelagem,
                                id_grupo,
                                id_dominio,
                                SUM(peso) peso
                            FROM (
                                SELECT DISTINCT
                                    id_modelagem,
                                    id_dominio,
                                    id_grupo,
                                    id_indicador,
                                    ROUND(AVG(peso), 2) peso
                                FROM modelagem.scorecard_avaliados
                                WHERE TRUE  AND avaliacao_inicio  <= 202601 AND avaliacao_fim >= 202601 AND scorecard_inicio  <= 202601 AND scorecard_fim >= 202601
                                GROUP BY 1,2,3,4
                            ) a
                            GROUP BY 1,2,3
                        ) p USING (id_modelagem, id_dominio, id_grupo)
                        LEFT JOIN dados.calculo c ON (
                            a.id_modelagem = c.id_modelagem
                            AND a.id_grupo = c.id_grupo
                            AND a.id_avaliado = c.id_avaliado
                            AND a.periodo = CONCAT(c.periodo->>'ano', LPAD(c.periodo->>'periodo', 2, '0'))::int
                            AND a.id_dominio = c.id_dominio
                        )
                        GROUP BY 1,2,3,4,5,6,7,8
                    ) b
                    GROUP BY 1,2,3,4,5,6
                ) c
                GROUP BY 1,2,3
Parameters:
[]
12 4.96 ms
SELECT
                    ROUND(AVG(performance), 2) performance
                FROM (
                    SELECT 
                        id_programa id
                        , nome_programa nome
                        , performance
                    FROM dados.gps
                    WHERE TRUE
                        AND id_programa = 1 AND id_modelagem = 1
                         AND periodo->>'tipo' = 'mes' AND (periodo->>'ano')::int = 2026 AND (periodo->>'periodo')::int = 01
                         AND id_grupo = 301
                        
                        
                ) a
Parameters:
[]
13 9.95 ms
WITH _modelagem AS (
                SELECT
                    ms.id_modelagem
                    ,ms.id_grupo
                    ,ms.peso
                    ,mi.id_indicador
                    ,mi.titulo nome_indicador
                    ,mi.unidade unidade_indicador
                    ,md.id_dominio
                    ,md.titulo nome_dominio
                    ,md.ordem
                    ,it.layout indicador_componente_detalhe
                    ,mi.calculo->>'decimais' as decimais
                FROM
                    modelagem.scorecard ms
                    JOIN modelagem.indicador mi USING(id_indicador)
                    JOIN modelagem.indicador_tipo it USING(id_indicador_tipo)
                    JOIN modelagem.dominio md USING(id_dominio)
                WHERE
                    ms.id_modelagem = :id_modelagem
                    AND ms.id_grupo = :id_grupo
                    AND :periodo BETWEEN ms.inicio AND ms.fim
            ), _calculo AS (
                SELECT ms.*, dc.valor, dc.performance, dc.id_avaliado, dc.banda, dc.texto_nd FROM _modelagem ms LEFT JOIN (
                    SELECT DISTINCT ON(id_indicador)
                         dc.id_indicador
                        , dc.id_avaliado
                        , dados->'resultado'->>'banda' banda
                        , dados->'resultado'->>'txt' texto_nd
                        , Avg(dc.valor) OVER(PARTITION BY id_indicador) valor
                        , Avg(dc.performance) OVER(PARTITION BY id_indicador) performance
                    FROM
                        dados.calculo dc
                    WHERE
                        Concat(periodo->>'ano', periodo->>'periodo')::integer = :periodo
                        AND dc.id_modelagem = :id_modelagem
                        AND dc.id_grupo = :id_grupo
                        AND dc.id_avaliado = :id_avaliado
                        
                ) dc USING(id_indicador)
            )
            SELECT nome_dominio, Jsonb_Agg(c) dados FROM _calculo c GROUP BY nome_dominio, ordem ORDER BY ordem
Parameters:
[
  ":id_avaliado" => 1009922
  ":id_modelagem" => 1
  ":id_grupo" => 301
  ":periodo" => 202601
]

benchmark connection

No database queries were performed.

Database Connections

Name Service
default doctrine.dbal.default_connection
cliente doctrine.dbal.cliente_connection
benchmark doctrine.dbal.benchmark_connection

Entity Managers

Name Service
default doctrine.orm.default_entity_manager
cliente doctrine.orm.cliente_entity_manager
benchmark doctrine.orm.benchmark_entity_manager

Second Level Cache

Second Level Cache is not enabled.

Entities Mapping

default entity manager

Class Mapping errors
App\Entity\Painel\UsuarioLog No errors.
App\Entity\Painel\ClienteUsuario No errors.
App\Entity\Painel\SSO No errors.
App\Entity\Painel\Passwordless No errors.
App\Entity\Painel\Usuario No errors.
App\Entity\Painel\Visao No errors.
App\Entity\Painel\Cliente No errors.
App\Entity\Painel\Perfil No errors.
App\Entity\Painel\UsuarioAcesso No errors.
App\Entity\Painel\LogSenha No errors.
App\Entity\Painel\Tipo No errors.

cliente entity manager

Class Mapping errors
App\Entity\Cliente\Acesso\UsuarioLog
  • The association App\Entity\Cliente\Acesso\UsuarioLog#usuario refers to the inverse side field App\Entity\Cliente\Acesso\Usuario#usuarioLog which does not exist.
App\Entity\Cliente\Acesso\Usuario
  • The association App\Entity\Cliente\Acesso\Usuario#avaliado refers to the inverse side field App\Entity\Cliente\Modelagem\Avaliado#avaliado which does not exist.
App\Entity\Cliente\Modelagem\Avaliado
  • The mappings App\Entity\Cliente\Modelagem\Avaliado#login and App\Entity\Cliente\Acesso\Usuario#avaliado are inconsistent with each other.
App\Entity\Cliente\Modelagem\Modelagem No errors.
App\Entity\Cliente\Modelagem\Programa No errors.
App\Entity\Cliente\Dados\Gps No errors.
App\Entity\Cliente\Fornecidos\Solicitacao No errors.
App\Entity\Cliente\Fornecidos\DadosEnviados No errors.
App\Entity\Cliente\Acesso\Equipe
  • The association App\Entity\Cliente\Acesso\Equipe#gestor refers to the owning side field App\Entity\Cliente\Acesso\Usuario#id_usuario which is not defined as association, but as field.
  • The association App\Entity\Cliente\Acesso\Equipe#gestor refers to the owning side field App\Entity\Cliente\Acesso\Usuario#id_usuario which does not exist.
  • The association App\Entity\Cliente\Acesso\Equipe#avaliado refers to the owning side field App\Entity\Cliente\Modelagem\Avaliado#id_avaliado which does not exist.
App\Entity\Cliente\Acesso\Perfil No errors.
App\Entity\Cliente\Modelagem\AvaliadoTipo No errors.
App\Entity\Cliente\Modelagem\Avaliacao No errors.
App\Entity\Cliente\Comunicacao\Mensagem
  • The association App\Entity\Cliente\Comunicacao\Mensagem#conversa refers to the owning side field App\Entity\Cliente\Comunicacao\Conversa#id_conversa which is not defined as association, but as field.
  • The association App\Entity\Cliente\Comunicacao\Mensagem#conversa refers to the owning side field App\Entity\Cliente\Comunicacao\Conversa#id_conversa which does not exist.
  • The association App\Entity\Cliente\Comunicacao\Mensagem#usuario refers to the owning side field App\Entity\Cliente\Acesso\Usuario#id_usuario which is not defined as association, but as field.
  • The association App\Entity\Cliente\Comunicacao\Mensagem#usuario refers to the owning side field App\Entity\Cliente\Acesso\Usuario#id_usuario which does not exist.
App\Entity\Cliente\Comunicacao\Conversa
  • The field App\Entity\Cliente\Comunicacao\Conversa#mensagens is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity App\Entity\Cliente\Comunicacao\Mensagem#conversa does not contain the required 'inversedBy="mensagens"' attribute.
  • The field App\Entity\Cliente\Comunicacao\Conversa#participantes is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity App\Entity\Cliente\Comunicacao\Participantes#conversa does not contain the required 'inversedBy="participantes"' attribute.
App\Entity\Cliente\Comunicacao\Participantes
  • The association App\Entity\Cliente\Comunicacao\Participantes#conversa refers to the owning side field App\Entity\Cliente\Comunicacao\Conversa#id_conversa which is not defined as association, but as field.
  • The association App\Entity\Cliente\Comunicacao\Participantes#conversa refers to the owning side field App\Entity\Cliente\Comunicacao\Conversa#id_conversa which does not exist.
  • The association App\Entity\Cliente\Comunicacao\Participantes#usuario refers to the owning side field App\Entity\Cliente\Acesso\Usuario#id_usuario which is not defined as association, but as field.
  • The association App\Entity\Cliente\Comunicacao\Participantes#usuario refers to the owning side field App\Entity\Cliente\Acesso\Usuario#id_usuario which does not exist.
App\Entity\Cliente\Periodo\Periodo No errors.
App\Entity\Cliente\Dados\Calculo No errors.
App\Entity\Cliente\Modelagem\Grupo No errors.
App\Entity\Cliente\Dados\Scorecard No errors.

benchmark entity manager

No loaded entities.