sql >> Database >  >> RDS >> Oracle

Wat is de reden / het nut om het ENABLE-sleutelwoord te gebruiken in Oracle-database-instructies?

Constraint doc :

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

ENABLE/DISABLE geeft aan dat de beperking aan of uit is. Standaard ENABLE wordt gebruikt.

ENABLE-clausule Geef INSCHAKELEN op als u wilt dat de beperking wordt toegepast op de gegevens in de tabel.

clausule UITSCHAKELEN Geef UITSCHAKELEN op om de integriteitsbeperking uit te schakelen. Uitgeschakelde integriteitsbeperkingen verschijnen in de datadictionary samen met ingeschakelde beperkingen. Als u deze clausule niet opgeeft bij het maken van een beperking, schakelt Oracle de beperking automatisch in.

Beperkingen worden gebruikt om de gegevensintegriteit te waarborgen, maar er zijn scenario's die we mogelijk moeten uitschakelen.

Managing Integrity :

Beperkingen uitschakelen

Om de regels af te dwingen die zijn gedefinieerd door integriteitsbeperkingen, moeten de beperkingen altijd zijn ingeschakeld. Overweeg echter om de integriteitsbeperkingen van een tabel tijdelijk uit te schakelen om de volgende prestatieredenen:

  • Bij het laden van grote hoeveelheden gegevens in een tabel

  • Bij het uitvoeren van batchbewerkingen die enorme wijzigingen aan een tabel aanbrengen (bijvoorbeeld het wijzigen van het nummer van elke werknemer door 1000 toe te voegen aan het bestaande nummer)

  • Bij het importeren of exporteren van één tabel tegelijk

In alle drie de gevallen kan het tijdelijk uitschakelen van integriteitsbeperkingen de prestaties van de operatie verbeteren, vooral in datawarehouse-configuraties.

Het is mogelijk om gegevens in te voeren die een beperking schenden terwijl die beperking is uitgeschakeld. U moet dus altijd de beperking inschakelen na het voltooien van een van de bewerkingen die in de vorige lijst met opsommingstekens worden vermeld.

Efficiënt gebruik van integriteitsbeperkingen:een procedure

Het gebruik van integriteitsbeperkingsstatussen in de volgende volgorde kan de beste voordelen opleveren:

  1. Status uitschakelen.

  2. Voer de bewerking uit (laden, exporteren, importeren).

  3. Status niet valideren inschakelen.

    Enkele voordelen van het gebruik van beperkingen in deze volgorde zijn:

    • Er worden geen sloten vastgehouden.

    • Alle beperkingen kunnen tegelijkertijd de status inschakelen.

    • Het inschakelen van beperkingen gebeurt parallel.

    • Gelijktijdige activiteit op tafel is toegestaan.

BEWERKEN:

De vraag is eerder waarom duidelijk . te gebruiken zoekwoord wanneer het standaard is ingeschakeld:

Ik zou zeggen:

  1. Voor de duidelijkheid (Python EIBTI-regel Expliciet is beter dan impliciet )
  2. Voor de volledigheid
  3. Persoonlijke smaak en/of codeerconventie

Dit is dezelfde categorie als:

CREATE TABLE tab(col INT NULL)

Waarom gebruiken we NULL als kolom standaard nullable is.




  1. MySQL ASIN() Functie – Retourneer de boogsinus van een getal

  2. Haal de eerste, tweede, derde of vierde maandag van een maand in SQLite

  3. MySQL High Availability Framework uitgelegd - Deel III:Falingsscenario's

  4. MySQL-tijdzone wijzigen?