Re: disable trigger ALL
Patryk Kordylewski <[email protected]> Wed, 18 Dec 2013 19:58:42 +0100
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Message-ID | <[email protected]> |
Hey Andreas, erstmal Glückwunsch das der Kunde sich entschlossen hat auf PG zu wechseln, man sieht ja was er bisher versäumt hat und in welchem Chaos er jetzt steckt. Zu deinen Fragen, Performance Probleme sollte er nicht bekommen, da die Constraints nix mit Indices zu tun haben - die sind ja weiterhin vorhanden und werden bei JOINs, usw. verwendet. Datenverlust sollte er auch nicht erleiden. PG wird bei deaktivierten Constraint-Triggern natürlich die Constraints nicht prüfen, somit bleibt der Schrott in der Datenbank - und ich vermute da die Anwendung jetzt schon nicht meckert, wird die Anwendung auch weiterhin Datenschrott erzeugen. Ob über Constraint-Trigger noch weitere interne Funktionen abgedeckt werden (Aktualisierung von Statistiken oder sowas?) weiss ich nicht. Und ob davon auch andere Constraints (Unique, Checks, usw.) betroffen ist leider auch nicht, müsste man mal nachlesen/testen. Im schlimmsten/besten Fall verbaut er sich alle möglichen Features zur Prüfung von Daten. Was ich nicht verstehe ist wieso man die Daten nicht bereinigt - es kann ja nicht so schwer sein im einfachsten Fall ein paar Spalten in ein paar Tabellen auf NULL zu setzen. Wenn es mehr ist kann man das sogar automatisieren (information_schema + pl/pgsql + EXECUTE hilft). Ein Problem welches er aber haben könnte ist das er sich die komplette Trigger-Funktionalität verbaut - da DISABLE TRIGGER ALL auch die USER-Trigger beinhaltet wird er keine manuellen/normalen Trigger anlegen können. Könnte aber sein das ihn das nicht interessiert weil Doctrine hier eigene Möglichkeiten bietet Events abzubilden. Zusätzlich könnte natürlich jemand irgendwann ausversehen die Trigger wieder aktivieren (wie sich pg_restore hier verhält weiss ich grad nicht genau). GruÃ, Patryk On 18.12.2013 18:43, Andreas Kretschmer wrote: > select *, > > > ein Kunde von uns stellt nun mal endlich von seiner fürchterlichen MySQL > 4.x - Lösung (*würg*) auf PG um. Soweit - so gut. > (fragt nicht nach weiteren Details der bisherigen Lösung...) > > Er macht via Doctrine ein Redesign der Tabellen, das Schema sieht auch > nett aus, mit vielen schönen FK-Beziehungen und so. > > Beim Import der Daten merkt er aber, daà die Daten komplett inkonsistent > sind und die FK-Constraints fröhlich vor sich hin eskalieren... > Ist ja auch nicht verwunderlich - kommen aus MySQL. > > > Ein Droppen der Constraints wollte er nicht, weil Doctrine z.B. bei > Schemaänderungen die wohl wieder einbauen würde - er hatte eine > 'bessere' Lösung: siehe $SUBJECT, und das dauerhaft. > > > Mal von der Tatsache abgesehen, daà ich gar nicht wuÃte, daà man so > FK-Constraints umgehen kann: welche Argumente könnte ich dem Kunden noch > bringen, daà diese Idee ganz grober Unfug ist? > > Drohen hier Dinge wie Datenverlust und/oder falsche Resultate und/oder > Performanceprobleme? Wie wird sich PG verhalten, verläÃt es sich auf > sein Wissen zu FK-Constraints oder, aufgrund der abgeschalteten Trigger, > behandelt der die Daten als das, was sie sind: Schrott? > > Er hat zwar unterschrieben, daà wir für keinerlei Folgen uns haftbar > fühlen, aber was meint ihr dazu? Ich find's einfach nur Schade... > > > > Andreas > -- Sent via pgsql-de-allgemein mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-de-allgemein