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

Apa alasan/kegunaannya adalah menggunakan kata kunci ENABLE dalam pernyataan basis data Oracle

Constraint doc :

CREATE TABLE "EVALUATION" (
    "EVALUATION_ID" NUMBER(20, 0) NOT NULL ENABLE,

ENABLE/DISABLE menunjukkan bahwa kendala aktif atau nonaktif. Secara default ENABLE digunakan.

AKTIFKAN Klausa Tentukan AKTIFKAN jika Anda ingin batasan diterapkan ke data dalam tabel.

Nonaktifkan Klausa Tentukan DISABLE untuk menonaktifkan batasan integritas. Batasan integritas yang dinonaktifkan muncul di kamus data bersama dengan batasan yang diaktifkan. Jika Anda tidak menentukan klausa ini saat membuat batasan, Oracle secara otomatis mengaktifkan batasan.

Batasan digunakan untuk memastikan integritas data, tetapi ada skenario yang mungkin kami perlukan untuk menonaktifkannya.

Managing Integrity :

Menonaktifkan Batasan

Untuk menegakkan aturan yang ditentukan oleh batasan integritas, batasan harus selalu diaktifkan. Namun, pertimbangkan untuk menonaktifkan sementara batasan integritas tabel karena alasan kinerja berikut:

  • Saat memuat data dalam jumlah besar ke dalam tabel

  • Saat melakukan operasi batch yang membuat perubahan besar pada tabel (misalnya, mengubah nomor setiap karyawan dengan menambahkan 1000 ke nomor yang ada)

  • Saat mengimpor atau mengekspor satu tabel dalam satu waktu

Dalam ketiga kasus tersebut, penonaktifan batasan integritas untuk sementara dapat meningkatkan kinerja operasi, terutama dalam konfigurasi gudang data.

Dimungkinkan untuk memasukkan data yang melanggar batasan saat batasan tersebut dinonaktifkan. Dengan demikian, Anda harus selalu mengaktifkan batasan setelah menyelesaikan salah satu operasi yang tercantum dalam daftar peluru sebelumnya.

Penggunaan Batasan Integritas yang Efisien:Sebuah Prosedur

Menggunakan status batasan integritas dalam urutan berikut dapat memastikan manfaat terbaik:

  1. Nonaktifkan status.

  2. Lakukan operasi (muat, ekspor, impor).

  3. Aktifkan status novalidate.

    Beberapa manfaat menggunakan batasan dalam urutan ini adalah:

    • Tidak ada kunci yang ditahan.

    • Semua batasan dapat mengaktifkan status secara bersamaan.

    • Pengaktifan batasan dilakukan secara paralel.

    • Aktivitas bersamaan di atas meja diizinkan.

EDIT:

Pertanyaannya adalah mengapa menggunakan jelas kata kunci ketika diaktifkan secara default:

Saya akan mengatakan:

  1. Untuk kejelasan (aturan Python EIBTI Eksplisit Lebih Baik Daripada Implisit )
  2. Untuk kelengkapan
  3. Rasa pribadi dan/atau konvensi pengkodean

Ini adalah kategori yang sama dengan:

CREATE TABLE tab(col INT NULL)

Mengapa kami menggunakan NULL jika kolom nullable secara default.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nama pengguna atau peran umum tidak valid

  2. Fungsi NLS_CHARSET_DECL_LEN() di Oracle

  3. Bagaimana Anda menjalankan SQL dari dalam skrip bash?

  4. 2 Cara Mengonversi ke Huruf Besar di Oracle

  5. Sql*plus selalu mengembalikan kode keluar 0?