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.