Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jaki jest powód / użyteczność użycia słowa kluczowego ENABLE w instrukcjach bazy danych Oracle?

Constraint doc :

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

ENABLE/DISABLE wskazuje, że wiązanie jest włączone lub wyłączone. Domyślnie ENABLE jest używany.

WŁĄCZ Klauzula Określ WŁĄCZ, jeśli chcesz, aby ograniczenie zostało zastosowane do danych w tabeli.

WYŁĄCZ Klauzula Określ DISABLE, aby wyłączyć ograniczenie integralności. Wyłączone ograniczenia integralności pojawiają się w słowniku danych wraz z włączonymi ograniczeniami. Jeśli nie określisz tej klauzuli podczas tworzenia ograniczenia, Oracle automatycznie je włączy.

Ograniczenia służą do zapewnienia integralności danych, ale istnieją scenariusze, w których możemy je wyłączyć.

Managing Integrity :

Wyłączanie ograniczeń

Aby wymusić reguły zdefiniowane przez ograniczenia integralności, ograniczenia powinny być zawsze włączone. Rozważ jednak tymczasowe wyłączenie ograniczeń integralności tabeli z następujących przyczyn wydajności:

  • Podczas ładowania dużych ilości danych do tabeli

  • Podczas wykonywania operacji wsadowych, które wprowadzają ogromne zmiany w tabeli (na przykład zmiana numeru każdego pracownika poprzez dodanie 1000 do istniejącego numeru)

  • Podczas importowania lub eksportowania jednej tabeli na raz

We wszystkich trzech przypadkach tymczasowe wyłączenie ograniczeń integralności może poprawić wydajność operacji, zwłaszcza w konfiguracjach hurtowni danych.

Możliwe jest wprowadzenie danych, które naruszają ograniczenie, gdy ograniczenie to jest wyłączone. Dlatego należy zawsze włączać ograniczenie po wykonaniu dowolnej z operacji wymienionych w poprzedniej liście punktowanej.

Wydajne stosowanie ograniczeń uczciwości:procedura

Korzystanie ze stanów więzów integralności w następującej kolejności może zapewnić najlepsze korzyści:

  1. Wyłącz stan.

  2. Wykonaj operację (ładuj, eksportuj, importuj).

  3. Włącz stan walidacji.

    Niektóre korzyści z używania ograniczeń w tej kolejności to:

    • Brak blokad.

    • Wszystkie ograniczenia mogą iść jednocześnie, aby włączyć stan.

    • Włączanie ograniczeń odbywa się równolegle.

    • Jednoczesna aktywność na stole jest dozwolona.

EDYTUJ:

Pytanie brzmi raczej, dlaczego używać oczywistego słowo kluczowe, gdy jest domyślnie włączone:

Powiedziałbym:

  1. Dla jasności (zasada Pythona EIBTI Jasne jest lepsze niż niejawne )
  2. Dla kompletności
  3. Osobisty gust i/lub konwencja kodowania

To ta sama kategoria, co:

CREATE TABLE tab(col INT NULL)

Dlaczego używamy NULL jeśli kolumna jest domyślnie dopuszczalna.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optymalizacja zapytania SELECT, które działa wolno w Oracle, które działa szybko w SQL Server

  2. Jak mogę wygenerować (lub pobrać) skrypt ddl na istniejącej tabeli w Oracle? Muszę je odtworzyć w Hive

  3. Dowiedz się, do którego kwartału należy data w Oracle

  4. 2 funkcje, które zwracają miesiąc z daty w Oracle

  5. Czy odwołania cykliczne są dopuszczalne w bazie danych?