Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

butuh bantuan untuk mengoptimalkan kueri oracle

Berikut adalah kueri yang secara naif menggabungkan dua kueri di atas, jadi pastikan Anda memeriksa dan membandingkan keluaran dari kedua metode tersebut.

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;

Tidak perlu menggunakan tabel sementara dan kemudian menghapus catatan setelahnya untuk mendapatkan hasil yang diperlukan. Meskipun, mungkin ada alasan untuk penggunaannya, mungkin kinerja?

Juga, sepertinya kueri dan bergabung dengan USER tabel tidak diperlukan karena USER_ID tersedia dari USER_ROLES . Saya telah menghilangkannya dari kueri di atas. Semoga itu memberi Anda awal yang baik untuk meningkatkannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memformat Angka Negatif dengan Kurung Sudut di Oracle

  2. Cara menjalankan kueri mentah dengan kembali di sqlalchemy

  3. Memfilter Log Peringatan di EM13c

  4. Butuh bantuan untuk memahami perilaku SELECT ... FOR UPDATE yang menyebabkan kebuntuan

  5. Kesalahan ORA-12514 setelah memulai ulang server