Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Firebird 1.5 alle FK Indexe deaktivieren-/aktivieren

  Alt 3. Aug 2014, 12:11
Hab den Thread nur quergelesen, also vielleicht gibt's sinnlose Wiederholungen.

Ein Index hat NICHTS mit der Funktionalität des Foreign Key zu tun.
Ein Foreign oder Primary Key ist eine Regel, die die Existenz des Fremdschlüssels zusichert oder die Eindeutikeit (Primärschlüssel) usw...

Ein zusätzlich definierter Index (ob automatisch angelegt oder per SQL erzeugt) beschleunigt lediglich den Zugriff auf die Werte in der Schlüsselspalte, um die notwendigen Prüfungen für den FK Constraint möglichst schnell prüfen zu können. Lässt man die Indizes weg, löscht sie oder disabled sie, ändert das nichts an der Funktionalität! Nur die Performnace dürfte bei größeren Tabellen deutlich in den Keller gehen.

Hier http://www.firebirdfaq.org/faq176/ gefunden:
Code:
If you use Firebird 1.x, you can run the following query to get statements to execute and then copy/paste the result and execute:

select 'ALTER TABLE '||r.rdb$relation_name
||' DROP CONSTRAINT '||r.rdb$constraint_name||';'
from rdb$relation_constraints r
where (r.rdb$constraint_type='FOREIGN KEY')
Hab das Fazit vergessen. Man muss also die Constraints (ebenfalls) entfernen/disablen, dazu der Beispielcode, der ein Löschskript erzeugt.
(Ratsam ist natürlich, auch ein Script für die Neuerstellung nach erfolgreicher Migration zu haben / anzufertigen)
Gruß, Jo

Geändert von jobo ( 3. Aug 2014 um 12:13 Uhr)
  Mit Zitat antworten Zitat