C'è una funzione/vincolo che le chiavi esterne portano al vostro sistema, che non è stato menzionato finora. Questa è la logica di commit/transazione (è così che la chiamo comunque). Con le chiavi esterne abilitate, tutte le righe per un aggiornamento, in tutte le tabelle interessate, devono essere presenti per il commit in modo che funzioni (non viene generato un errore SQL a cui sono stati violati i vincoli di chiave esterna).
Se si dispone di un corpo di codice, che funziona e "riproduce veloce e libero", con commit/transazioni. Quindi potresti essere pronto per qualche rimedio, per far funzionare le cose con FK nello schema.
Inoltre, Oracle almeno, consente di disabilitare i vincoli (non solo eliminare/rimuovere). Quindi puoi accenderli/spegnerli facilmente. Pratico, quando si desidera eseguire alcune operazioni di massa senza il sovraccarico dei vincoli, o eseguire un "intervento chirurgico" sui dati che presenta stati intermedi che non supererebbero i vincoli.
fonte
2009-03-01 05:18:21
"estranei alla velocità di esecuzione" non è del tutto esatto per inserti (so che lo sai, ma Tuan potrebbe non) – SquareCog
Thx - ho compilato la risposta un po ', in un modo che dovrebbe finire nello stesso posto. – dkretz
buona richiesta di inserto. ho una buona visione della struttura. come ho detto l'integralità non è un problema. ho bisogno di velocità raw. –