sql >> Database teknologi >  >> RDS >> Oracle

Hvad er grunden / nytten er at bruge ENABLE nøgleord i oracle database statements

Constraint doc :

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

ENABLE/DISABLE angiver, at begrænsningen er slået til eller fra. Som standard ENABLE bruges.

AKTIVER Klausul Angiv ENABLE, hvis du ønsker, at begrænsningen skal anvendes på dataene i tabellen.

DEAKTIVER Klausul Angiv DISABLE for at deaktivere integritetsbegrænsningen. Deaktiverede integritetsbegrænsninger vises i dataordbogen sammen med aktiverede begrænsninger. Hvis du ikke angiver denne klausul, når du opretter en begrænsning, aktiverer Oracle automatisk begrænsningen.

Begrænsninger bruges til at sikre dataintegritet, men der er scenarier, vi muligvis skal deaktivere dem.

Managing Integrity :

Deaktivering af begrænsninger

For at håndhæve reglerne, der er defineret af integritetsbegrænsninger, skal begrænsningerne altid være aktiveret. Overvej dog midlertidigt at deaktivere integritetsbegrænsningerne for en tabel af følgende præstationsårsager:

  • Ved indlæsning af store mængder data i en tabel

  • Når du udfører batch-operationer, der foretager massive ændringer i en tabel (f.eks. ændring af hver medarbejders nummer ved at tilføje 1000 til det eksisterende antal)

  • Ved import eller eksport af én tabel ad gangen

I alle tre tilfælde kan midlertidigt deaktivering af integritetsbegrænsninger forbedre ydeevnen af ​​operationen, især i datavarehuskonfigurationer.

Det er muligt at indtaste data, der overtræder en begrænsning, mens denne begrænsning er deaktiveret. Derfor bør du altid aktivere begrænsningen efter at have fuldført en af ​​de operationer, der er angivet i den foregående punktliste.

Effektiv brug af integritetsbegrænsninger:en procedure

Brug af integritetsbegrænsningstilstande i følgende rækkefølge kan sikre de bedste fordele:

  1. Deaktiver tilstand.

  2. Udfør handlingen (indlæs, eksport, import).

  3. Aktiver novalidate-tilstand.

    Nogle fordele ved at bruge begrænsninger i denne rækkefølge er:

    • Der holdes ingen låse.

    • Alle begrænsninger kan gå til at aktivere tilstand samtidigt.

    • Begrænsningsaktivering udføres parallelt.

    • Samtidig aktivitet på bordet er tilladt.

EDIT:

Spørgsmålet er snarere, hvorfor man bruger oplagt søgeord, når det er slået til som standard:

Jeg vil sige:

  1. For klarhedens skyld (Python EIBTI-regel Eksplicit er bedre end implicit )
  2. For fuldstændighedens skyld
  3. Personlig smag og/eller kodningskonvention

Dette er den samme kategori som:

CREATE TABLE tab(col INT NULL)

Hvorfor bruger vi NULL hvis kolonnen er nullbar som standard.




  1. Forespørgsel med LEFT JOIN returnerer ikke rækker for tæller på 0

  2. Postgres kolonne eksisterer ikke

  3. Hvordan kan jeg oprette forbindelse til Oracle Database 11g-server gennem ssh-tunnelkæden (dobbelttunnel, server i virksomhedens netværk)?

  4. SQL ALTER DATABASE Syntaks – Listet efter DBMS