sql >> Databáze >  >> RDS >> Oracle

potřebujete pomoc s optimalizací dotazu Oracle

Zde je dotaz, který naivně kombinuje dva výše uvedené dotazy, takže se ujistěte, že zkontrolujete a porovnáte výstupy z těchto dvou metod.

select 
  r.user_id, r.role_id, r.participant_code, max(status_id)
from 
  user_role r, 
  cmp_role c
where 
      r.role_id = c.role_id
  and r.active in (0,1,3)
  and r.participant_code is not null
  and sysdate between r.effective_from_date and r.effective_to_date
  and c.group_id = 3
group by 
  r.user_id, r.role_id, r.participant_code;

Pro získání požadovaných výsledků není nutné používat dočasnou tabulku a poté záznamy mazat. I když pro jeho použití mohl být důvod, možná výkon?

Také to vypadá jako dotaz a připojení k USER tabulka je zbytečná jako USER_ID je k dispozici od USER_ROLES . Z výše uvedeného dotazu jsem to vynechal. Doufejme, že vám to poskytne dobrý začátek k jeho vylepšování.



  1. Odstraňte zámky bez pid v postgresu

  2. CHYBA MYSQL 2049 (HY000):Připojení pomocí starého (před 4.1.1) použitého referenčního protokolu ověřování (možnost klienta 'secure_auth' povolena)

  3. Jak mohu použít PDO k načtení pole výsledků v PHP?

  4. Jak načítat a spravovat data v rámci Microsoft Power BI