maedchenfalles Geschrieben 18. Januar 2006 Teilen Geschrieben 18. Januar 2006 Hallo, wenn man in Oracle eine View anlegt, und diese hat verschachtelte Selectabfragen über mehrere Tabellen, wird dann die View automatisch aktualisiert wenn sich die Basistabelleninhalte ändern? Die Select-Abfrage dauert etwa 20 min. Wenn automatisch aktualisiert wird, wann geschieht das? Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
1226 Geschrieben 18. Januar 2006 Teilen Geschrieben 18. Januar 2006 Wenn ich mich nicht irre, werden (normale) Views überhaupt nicht aktualisert. Wozu auch? Anders bei materialized views (Snapshots). Wenn dabei auf die darunterliegende Tabelle(n) ein update erfolgt, wird der Snapshot von Oracle als stale markiert. Wenn QUERY_REWRITE_INTEGRITY nicht auf stale_tolerated steht, wird ein mit stale markierter Snapshot nicht benutzt. Damit die materialized Views nutzbar (nicht-stale) bleiben, bietet Oracle ein Verfahren, welches materialized view refresh genannt wird. Dabei gibt es vier Methoden: complete -> vollständiger Neuaufbau fast -> nur die Änderungen werden übernommen force -> wenn fast nicht geht, dann complete never -> kein Refresh unter welchen Umständen auch immer. Für jede materialized View kann es eine eigenen Refreshmethode geben. Der Refresh kann "on demand" (also per Hand) oder "on commit" (nach jeder bestätigten Änderung) erfolgen. Nachtrag: bei einem 20minütigen select würde ich mir überlegen, den einen oder anderen Index darüberzulegen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
realgun Geschrieben 18. Januar 2006 Teilen Geschrieben 18. Januar 2006 Eine View wird genau dann erzeugt wenn Du sie aufrufst. Ist ja eigentlich nix anderes als ein Serverseitiges Select. Wenn Du die View also um genau 12:00 Uhr aufrufst, und um 12:01 Uhr eine Tabelle geändert wird musst Du die View (oder das Select - Statement) neu aufrufen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tuxfriend Geschrieben 18. Januar 2006 Teilen Geschrieben 18. Januar 2006 Hallo, Du solltest dir die Frage stellen warum das SQL Statement so lange dauert. Unter Umständen hast du von einem "normalen" View keinerlei Vorteile. Und materialized views benötigen zusätzlich Speicherplatz. Wenn du dein Problem genauer schilderst fällt vielleicht hier jemandem eine bessere Lösung ein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Carnie Geschrieben 18. Januar 2006 Teilen Geschrieben 18. Januar 2006 20 min für ein SELECT selbst wenn es mehrfach verschachtelt ist ist eine Ewigkeit.Da kannst du sicherlich einiges optimieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jasper Geschrieben 18. Januar 2006 Teilen Geschrieben 18. Januar 2006 ob 20min für ein select eine ewigkeit sind, lässt sich nicht pauschal sagen. in DWH sind abfragen mit mehreren stunden laufzeit völlig normal und diese abfragen sind hochoptimiert. -j Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.