it-swarm.com.de

Verweisen auf eine andere Tabelle aus einer berechneten Spalte

Ich arbeite an einem Projekt, bei dem viele der Entitäten im Datenmodell keine Namensspalte haben, sondern der "Name" aus einer Verkettung mehrerer Spalten erstellt werden muss. Anfangs dachte ich, dies könnte ein guter Anwendungsfall für eine berechnete Spalte sein, da ich diese Logik in der Datenbank nur einmal definieren könnte.

Bei einem vollständig normalisierten Datenmodell erfordern die berechneten Spalten jedoch häufig Werte aus anderen Tabellen. Das Abfragen anderer Tabellen kann über eine UDF erfolgen, aber ich habe an mehreren Stellen gelesen, dass die Verwendung von UDFs in berechneten Spalten die parallele Ausführung verhindert (siehe hier ).

Ich könnte Ansichten verwenden, um die Formatierung dieser Namen zu handhaben, möchte die Logik jedoch nur einmal definieren. Wenn sich die Logik in einer Ansicht befindet, würde dies wahrscheinlich zu verschachtelten Ansichten führen, was ebenfalls zu Leistungsproblemen führen kann.

Ich hoffe, jemand hat eine Idee, wie ich diese Formatierungslogik nur einmal in der Datenbank definieren kann, ohne ein Leistungsproblem zu verursachen.

5
DanO

Ich glaube nicht, dass es eine richtige Antwort darauf gibt. Wie in einigen Kommentaren angedeutet, haben Sie fast immer einen Kompromiss zwischen Leistung und Komplexität/Wartbarkeit.

Wir hatten einen ähnlichen Fall, in dem die Verwendung von Ansichten keine Option war, und wir entschieden uns für eine UDF in der berechneten Spalte. Das Problem, auf das wir gestoßen sind, besteht darin, dass Sie die Spalte nicht beibehalten können, die zum Indizieren erforderlich ist, wenn die Funktion auf andere Objekte wie Tabellen verweist.

Anscheinend sind Sie sich der Optionen bewusst, die Ihnen zur Verfügung stehen, und müssen nur die beste Lösung für Sie und Ihre Stakeholder finden.

0
Heinrich Smit