VIEW oder nicht - Performance?

Hallo Leute,

folgendes: ich habe meine eigene Applikations-Datenbank und eine Fremddatenbank.
Möchte nun beide Datenbank in verbindung bringen.
Frage:
ist es sinnvoll die Fremddatenbank als VIEW in meine Applikation-DB zu verwenden? VIEW wird ja immer upgedated wenn Änderungen in der Fremddatenbank geschehen und dadurch ist auch eine höhere Netzbelastung zu erwarten.

Oder

sollte ich immer, wenn ich Daten brauche auf die Fremddatenbank zugreifen.

Was ist aus Performance-Sicht günstiger?

Danke

Andi

Hallo Andi,

ich weis leider nicht welche DB Du nimmst.
Bei Oracle würdest Du einen Datenbank-Link auf Objekte der fremded DB erstellen. Bei jedem Zugriff auf dieses Objekt, gehen die Daten über die Leitung… dafür ist das immer topaktuell

oder

Du replizierst die fremden Tabelle, die du brauchst in deinen eigene DB, das ist zwar schneller und updatest diese turnusmäsig von der Appl-DB aus.

oder

Du pufferst alle Fremdtabellen auf der Appl-DB und baust auf der Fremd-DB Trigger, die Änderungen in die Puffertabellen auf der Appl-DB übertragen. Da musst du nur am Anfang mal alles rüberschaufeln, später kommen die Änderungen dann synchon. Die selects der Applikation müssen dann nicht in die Fremd-DB.(So eine Art Cache-Betrieb)

Das mit dem Puffern ist zwar schneller bei selects aber Mist wenn du auch schreiben willst, weil die Datenbestände nicht wirklich synchron sind. Die ganze Replikations-Thematik ist knifflig, vor allem wenn alle auf alles schreiben dürfen sollen.

Ach ja und Spezielfälle wie Runterfahren eine DB sollte man auch bedenken…

Bye
Nic

PS: Ware mal noch ein bissel, TomH wird sicher auch noch einen Tip haben…

hi!

PS: Ware mal noch ein bissel, TomH wird sicher auch noch einen
Tip haben…

ok, hier bin ich :wink:

leider hab auch ich nicht rauslesen können, um was für eine db es sich handelt, also nehm ich auch beinhart mal oracle an:

ein paar fragen werfen sich in mir auf:

  • brauchst du top-aktuelle daten?

-> 1. nic’sche antwort

  • oder soll’s ganz einfach nur schnell sein

-> restlichen nic’sche antworten

UND (@nic: mir ist doch noch was eingefallen! - hast mir schon fast alles vorausgenommen)

eine weitere möglichkeite wäre, einen snapshot bzw. materialized view anzulegen (die auf die daten über einen db-link basiert) - auch schnell, aber halt auch nicht gerade aktuell

grüße,
tomh