2016-12-19 2 views
-1

Problem Details: -Kleiner Tisch zu großem Tisch Update

Tabelle 1: - Product_Country A

Beschreibung: - Enthält Produkt ID und andere Details zusammen mit Country Code.

Tabelle 2: - Product_Outlet B

Beschreibung: - Produkt-ID und andere Details zusammen mit Outlet-Code

Ein Land kann viele Filialen hat, suppose Land Australien hat 50 Filialen enthält. Also angenommen, wenn ich irgendwelche Details eines Produktes in Tabelle A aktualisiere, möchte ich das gleiche Detail in Tabelle B basierend auf einigen wenn sonst Bedingungen aktualisieren.

Punkte zu beachten: - 1.) Tabelle B 50 Mal mehr Daten als Tabelle A.

2.) Es ist mit ist eine Java-Anwendung, durch die wir Tabelle A.

aktualisieren 3.) Es gibt einige Regeln, um die Details in Tabelle B zu aktualisieren, einige, wenn noch andere Bedingungen, auf deren Basis wir Datensätze aktualisieren und erstellen.

Aktuelle Lösung: - Es gibt einen Auslöser, die den Eintritt in einer temporären Tabelle setzt beim Aktualisieren/Einfügen A, von wo aus einem PL/SQL-Auftrag zweimal pro Tag geplant, nimmt die Daten auf und Aktualisierung/Einfügen in Die Tabelle B. Diese Lösung wurde berücksichtigt, da das Aktualisieren der B-Tabelle unmittelbar nach der A-Tabelle viel Zeit in Anspruch nimmt und die Anwendung nicht mehr reagiert.

Lösungen berücksichtigt, aber abgelehnt: - 1.) Aktualisieren von Tabelle B direkt nach A-Tabelle, wird viel Zeit verbrauchen.

2.) Zunehmende Häufigkeit des geplanten Jobs, würde die Datenbank schwächen.

Weitere Lösungsvorschläge ??????

+0

Es wäre hilfreicher, wenn Sie Beispieldaten für Ihre beiden Tabellen zusammen mit der erwarteten Ausgabe bereitstellen könnten. Welche Art von Details würden Sie beispielsweise in product_country aktualisieren, die Sie auch in product_outlet aktualisieren müssten? – Boneist

+0

Ist das Hausaufgaben? –

Antwort

1

Eine Lösung wäre, ein „Produkt“ Tisch zu haben, mit Referenzen aus Tabelle A und Tabelle B

Also, wenn Sie Produkt für Land in der A gesetzt aktualisieren, ist es sofort für Ereignisse aktualisiert in die B auch gesetzt.

Dies bedeutet, überprüfen Sie Ihr Datenmodell: eine Grundregel ist Sie sollten keine replizierten Informationen in Ihrer Datenbank haben.