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

Adakah dampak kinerja di Oracle untuk menggunakan LIKE 'string' vs ='string'?

Ada perbedaan yang jelas ketika Anda menggunakan variabel bind, yang seharusnya Anda gunakan di Oracle untuk apa pun selain pergudangan data atau operasi data massal lainnya.

Ambil kasus:

SELECT * FROM SOME_TABLE WHERE SOME_FIELD LIKE :b1

Oracle tidak dapat mengetahui bahwa nilai :b1 adalah '%some_value%', atau 'some_value' dll. sampai waktu eksekusi, jadi Oracle akan membuat estimasi kardinalitas hasil berdasarkan heuristik dan menghasilkan rencana yang sesuai yang mungkin cocok atau tidak untuk berbagai nilai :b, seperti '%A','%', 'A', dll.

Masalah serupa dapat berlaku dengan predikat kesetaraan tetapi rentang kardinalitas yang mungkin dihasilkan jauh lebih mudah diperkirakan berdasarkan statistik kolom atau adanya batasan unik, misalnya.

Jadi, secara pribadi saya tidak akan mulai menggunakan LIKE sebagai pengganti =. Pengoptimal terkadang cukup mudah untuk dibodohi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan ID catatan yang terakhir dimasukkan di Oracle db

  2. Oracle - Cara menghasilkan skrip dari pengembang sql

  3. Lampiran di Aplikasi Oracle R12

  4. Oct2014CPU Menghancurkan Desktop ArcGIS

  5. Oracle:Cara menghitung baris null dan non-null