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

Qual è il motivo / l'utilità è utilizzare la parola chiave ENABLE nelle istruzioni del database Oracle

Constraint doc :

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

ENABLE/DISABLE indica che il vincolo è attivato o disattivato. Per impostazione predefinita ENABLE viene utilizzato.

Clausola ABILITA Specificare ENABLE se si desidera applicare il vincolo ai dati nella tabella.

Clausola DISABLE Specificare DISABLE per disabilitare il vincolo di integrità. I ​​vincoli di integrità disabilitati vengono visualizzati nel dizionario dei dati insieme ai vincoli abilitati. Se non specifichi questa clausola durante la creazione di un vincolo, Oracle abilita automaticamente il vincolo.

I vincoli vengono utilizzati per garantire l'integrità dei dati, ma in alcuni scenari potrebbe essere necessario disabilitarli.

Managing Integrity :

Disabilitazione dei vincoli

Per applicare le regole definite dai vincoli di integrità, i vincoli devono essere sempre abilitati. Tuttavia, considera la possibilità di disabilitare temporaneamente i vincoli di integrità di una tabella per i seguenti motivi di performance:

  • Quando si caricano grandi quantità di dati in una tabella

  • Quando si eseguono operazioni batch che apportano modifiche massicce a una tabella (ad esempio, modificando il numero di ogni dipendente aggiungendo 1000 al numero esistente)

  • Durante l'importazione o l'esportazione di una tabella alla volta

In tutti e tre i casi, la disabilitazione temporanea dei vincoli di integrità può migliorare le prestazioni dell'operazione, soprattutto nelle configurazioni di data warehouse.

È possibile inserire dati che violano un vincolo mentre tale vincolo è disabilitato. Pertanto, dovresti sempre abilitare il vincolo dopo aver completato una qualsiasi delle operazioni elencate nell'elenco puntato precedente.

Uso efficiente dei vincoli di integrità:una procedura

L'utilizzo degli stati di vincolo di integrità nell'ordine seguente può garantire i migliori vantaggi:

  1. Disabilita lo stato.

  2. Eseguire l'operazione (caricamento, esportazione, importazione).

  3. Abilita stato non convalidato.

    Alcuni vantaggi dell'utilizzo dei vincoli in questo ordine sono:

    • Nessun blocco viene mantenuto.

    • Tutti i vincoli possono andare ad abilitare lo stato contemporaneamente.

    • L'abilitazione dei vincoli viene eseguita in parallelo.

    • È consentita l'attività simultanea sul tavolo.

MODIFICA:

La domanda è piuttosto perché usare ovvio parola chiave quando è attivata per impostazione predefinita:

Direi:

  1. Per chiarezza (regola Python EIBTI L'esplicito è meglio che implicito )
  2. Per completezza
  3. Gusto personale e/o convenzione di codifica

Questa è la stessa categoria di:

CREATE TABLE tab(col INT NULL)

Perché utilizziamo NULL se la colonna è nullable per impostazione predefinita.