Tiga atau empat tahun yang lalu saya membaca di blog Oracle di suatu tempat bahwa DBA telah digunakan untuk resolusi insiden darurat fitur Oracle 10g substitusi SQL real-time. Pada dasarnya, ia mengkonfigurasi Oracle sedemikian rupa sehingga setiap kali menerima permintaan tertentu, ia menjalankan kueri lain B sebagai gantinya. Tidak ada perubahan kode aplikasi, tidak ada perubahan skema, hanya tipe sederhana "jalankan permintaan B alih-alih A".
Bukannya saya berencana untuk menggunakan fitur itu (saya bisa memikirkan beberapa konsekuensi yang tidak diinginkan), tetapi karena penasaran apakah itu benar-benar ada? Jika ya, apa nama fitur itu?
oracle
oracle-10g
kaldu
sumber
sumber
Jawaban:
Itu terdengar seperti paket DBMS_ADVANCED_REWRITE . Tim Hall memiliki walk-through yang sangat baik dalam menggunakan paket itu untuk mengarahkan pertanyaan aplikasi terhadap tabel atau tampilan yang berbeda .
Jika Anda hanya ingin mengubah rencana kueri tetapi tidak mengarahkan kueri pada tabel yang berbeda, Anda dapat menggunakan garis besar yang tersimpan atau profil SQL.
Sebagai contoh, saya punya tabel
FOO
dengan 1 baris danBAR
dengan 2 barisSaya dapat mendeklarasikan ulang kesetaraan yang mengatakan bahwa kueri terhadap
FOO
sebaliknya seharusnya mengenaiBAR
Sekarang, jika saya disetel
query_rewrite_integrity
ke tepercaya, kueri agar tidakFOO
mengenai tabel yang sama sekali berbeda.Itu dapat membuat beberapa rencana permintaan yang agak menarik di mana objek yang Anda tanyakan tidak ditemukan di dalam paket tersebut
sumber