SQL Query:

    
/* 'OR' Strategy
   SELECT ...
   left join (...)
   AUTH ON (AUTH.RESOURCE_ID_ = RES.ID_ OR AUTH.RESOURCE_ID_ = D.KEY_ OR AUTH.RESOURCE_ID_ = '*' )  
*/
EXPLAIN select count(distinct RES.ID_ )
    from ACT_RU_TASK RES
      inner join ACT_RE_PROCDEF D on RES.PROC_DEF_ID_ = D.ID_
      left join ACT_RE_PROCDEF PROCDEF
      on RES.PROC_DEF_ID_ = PROCDEF.ID_           
    left JOIN (
    SELECT A.*
    FROM ACT_RU_AUTHORIZATION A
    WHERE A.TYPE_ < 2     
    AND ( A.USER_ID_ in ( 'kermit', '*')           
      OR A.GROUP_ID_ IN  (  'Gerentes' , 'Atendentes' , 'AtendentesSAC' , 'Bko-formalizacao' , 'Backoffices' ) 
    )
      AND (
         (  
          A.RESOURCE_TYPE_ = 7 AND A.PERMS_ & 2 = 2
         OR 
          A.RESOURCE_TYPE_ = 6 AND A.PERMS_ & 64 = 64
         ) 
      )
    )
AUTH ON (AUTH.RESOURCE_ID_ = RES.ID_ OR AUTH.RESOURCE_ID_ = D.KEY_ OR AUTH.RESOURCE_ID_ = '*' )
    
  
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE RES NULL index ACT_FK_TASK_PROCDEF ACT_FK_TASK_PROCDEF 195 NULL 10981 100.00 Using index
1 SIMPLE D NULL ALL PRIMARY NULL NULL NULL 3 33.33 Using where; Using join buffer (Block Nested Loop)
1 SIMPLE PROCDEF NULL eq_ref PRIMARY PRIMARY 194 camunda.RES.PROC_DEF_ID_ 1 100.00 Using index
1 SIMPLE A NULL ALL ACT_UNIQ_AUTH_USER,ACT_UNIQ_AUTH_GROUP,ACT_IDX_AUTH_GROUP_ID,ACT_IDX_AUTH_RESOURCE_ID NULL NULL NULL 9800 100.00 Using where; Using join buffer (Block Nested Loop)