Rumah >pangkalan data >tutorial mysql >Mengapa Tanda Sebut Harga Sekitar Nama Jadual Oracle Mempengaruhi Pelaksanaan Pertanyaan?
Petikan berganda dalam nama jadual pangkalan data Oracle: analisis kepentingan
Sekeping kod NHibernate cuba melaksanakan pertanyaan berikut:
<code class="language-sql">SELECT * FROM "site" WHERE site_id = 3;</code>
Hasilnya ialah ralat "Jadual atau paparan tidak wujud". Walau bagaimanapun, pertanyaan berikut berfungsi dengan baik:
<code class="language-sql">SELECT * FROM site WHERE site_id = 3;</code>
Perbezaan ini terhasil daripada perbezaan Oracle antara sensitiviti kes pengecam.
Sensitiviti huruf besar bagi pengecam Oracle
Secara lalai, Oracle merawat pengecam dalam cara yang tidak peka huruf besar-besaran, yang bermaksud "tapak" dan "Tapak" merujuk kepada jadual yang sama. Walau bagaimanapun, jika anda menyertakan pengecam dalam petikan berganda (" ") dalam pertanyaan, Oracle menganggapnya sebagai sensitif huruf besar-besaran.
Kesan pada pertanyaan
Jika jadual dibuat tanpa petikan berganda, Oracle akan menyimpan namanya dalam huruf besar. Oleh itu, pertanyaan seperti "SELECT * FROM my_table" akan berfungsi tanpa mengira kes.
Walau bagaimanapun, jika anda menyertakan nama jadual dalam petikan berganda semasa mencipta jadual ("CREATE TABLE "my_table""), Oracle akan mengekalkan kes tepatnya. Dalam kes ini, pertanyaan mesti menggunakan huruf besar yang betul semasa merujuk jadual, seperti "PILIH * DARI "jadual_saya"".
Peranan NHibernate
Dalam NHibernate, anda boleh menentukan nama jadual dengan atau tanpa petikan berganda. Jika anda meninggalkan petikan berganda, NHibernate secara automatik menganggap perbandingan tidak sensitif huruf besar-besaran. Walau bagaimanapun, NHibernate menjana pertanyaan SQL sensitif huruf besar-besaran jika petikan berganda hadir dalam pemetaan.
Aplikasi Praktikal
Memahami kesan petikan berganda pada nama jadual adalah penting untuk prestasi pertanyaan. Penggunaan petikan berganda yang konsisten untuk jadual sensitif huruf besar-kecil memastikan Oracle cepat mencari jadual yang betul tanpa penukaran yang tidak perlu. Jika tidak, ralat atau isu prestasi mungkin berlaku.
Atas ialah kandungan terperinci Mengapa Tanda Sebut Harga Sekitar Nama Jadual Oracle Mempengaruhi Pelaksanaan Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!