2016-08-02 25 views
3

Wir sind ein ETL-Shop und verwenden stark externe Tabellen. In der Regel werden diese Tabellen auf bevölkerte Staging-Tabellen abgefragt. Es überrascht mich, wie lange es dauert, bis Abfragen Daten aus den externen Tabellen zurückgeben.Warum so langsam Daten von Oracle externen Tabellen zurückgeben?

Normalerweise gibt es eine Verzögerung von etwa 15 Sekunden, bevor ein Ergebnis zurückgegeben wird. Dies gilt auch in den Fällen, in denen die Datendatei keine Daten enthält und wenn die Datendatei nicht vorhanden ist. Die Verzögerung scheint nicht mit der Anzahl der Zeilen in der Datei zusammenzuhängen.

Ich melde mich am Datenbankserver selbst an, auf dem sich die Datendateien der externen Tabelle befinden.

Ist das erwartete Verhalten?

Dateisystem-Operationen (ls, vim) zumindest auf kleineren Dateien passieren ohne Verzögerung.

Alle Dateien auf lokaler Festplatte.

Oracle 12.1.

Oracle Linux Server Version 6,6

+1

Was passiert, wenn Sie die Dateien außerhalb der DB anzeigen, z. mit vim; sind sie langsam zu öffnen, und/oder ist es langsam, die Dateien im Verzeichnis aufzulisten? Ist die Festplatte lokal oder über ein Netzwerk bereitgestellt? Und welches Betriebssystem und welche Datenbankversion verwenden Sie? –

+0

Verwendet das System [externe Tabellen-Präprozessoren] (http://www.oracle.com/technetwork/issue-archive/2011/11-mar/o21nanda-312277.html)? Vielleicht laufen diese Präprozessor-Skripte langsam. –

+0

Nein, keine Präprozessoren. – user2567544

Antwort

2

Ich würde reviewing oder auf der Suche in Release Oracle 12.2 Hinweise empfehlen. Es gab einen Patch für die Big Data Appliance-Firmware (22911748) für Exadata und eine Fehlerbehebung in 12.2.

Es behandelt eine Ansicht, die spezifisch für den Zugriff auf externe Tabellen ist. Es ist möglich, dass Sie von dieser Ansicht betroffen sind. Der Ansichtsname ist LOADER_DIR_OBJS, mit dem das Verzeichnis abgefragt wird, auf das externe Tabellen verweisen.

Unsere Kunden stoßen auf sehr ähnliche Probleme, und Oracle empfiehlt die Installation der Version 12.2, die den Patch enthält.

So testen wir derzeit die 12.2-Version. Immer wenn eine externe Tabelle gelesen wird, muss sie Zugriff auf die Systemansicht LOADER_DIR_OBJS haben. In der Regel stammt die schlechte Leistung aus dieser Sicht, die auf das Systemobjekt SYS.OBJ $ und SYS.X $ DIR zugreift, da der Abfrageplan nicht optimal ist. Manche Leute haben Arbeit gefunden. (Weitere Informationen finden Sie in der Oracle-Problemumgehungsdokument-ID 2034938.1.)

+0

Die Informationen wurden basierend auf meinen Tests aktualisiert. Füge einen neuen Kommentar hinzu, sobald ich meine Tests abgeschlossen habe. Hoffe, dass diese Information hilft. –

+0

Danke. Ein Update auf 12.2 scheint zu beheben. – user2567544