2016-07-27 17 views
1

Ich verwende eine Oracle-Funktion, um Daten in Spotfire mit einem einzigen Eingabeparameter abzurufen. Ich erhalte die Ausgabe für die Funktion in PL/SQL Developer in ungefähr 90 Sekunden, aber wenn ich versuche, dieselbe Funktion zu öffnen, die in Spotfire direkt als Funktion hinzugefügt oder als Informationsverknüpfung hinzugefügt wurde, befindet sie sich für immer im Ladezustand. Gibt es etwas, was ich tun kann, um Daten in der gleichen Zeit wie das PL/Developer Tool zu retreive. In jedem Fall ist die Berechnung in-DB und ich weiß nicht, was schief gegangen sein könnte. Ich habe die Ausgabe nur einmal in Spotfire erhalten und bin nicht in der Lage, dasselbe zu tun.Oracle Funktion ruft Daten nicht schnell in Spotfire ab

Antwort

1

Sie sind fast nie gehen, um die Abfragezeit in einem DB IDE/Developer Tool zu schlagen. Es muss nur noch mehr passieren, wenn Sie die Daten in Spotfire konsumieren. Zuerst muss die exakt gleiche Ausführung auf der DB-Seite passieren. In PL/SQL Developer ist dies das Ende der Schritte. Beim Laden in Spotfire gibt es mehrere Schritte (Konvertierung, Laden in den Speicher usw.).

Was auch Ladezeit verlangsamen könnte nach unten, um Transformationen, berechnete Spalten, niedrige RAM/CPU-Verfügbarkeit auf dem Spotfire DB Server, Netzwerkbandbreite zwischen Oracle DB und der DB Spotfire, und so weiter ...

So theoretisch Ihr Problem mit etwas werden könnte, wie dargestellt:

Normale Abfragezeit + Netzwerklatenz + Ressourcenbeschränkungen + Spotfire Transformations + Andere Dateien, in der Analyse + Unbekannten geladen ...

+0

ich bekomme es, aber ich benutze Funktionen für andere und sie sind vergleichsweise schneller. Sollte ich die Batch- und Fetch-Größe in IL ändern. Da dies eine In-DB-Berechnung ist, wird Spotfire nicht viel Speicher verbrauchen. Die Funktion, die ich verwendete, ist komplex, aber die Ausgabe nur 24 Zeilen. – direwolf

+0

@direwolf das könnte ein Problem sein, aber ich bezweifle es mit Ihrem kleinen Datensatz, der zurückgegeben wird. Sie könnten auch die IL zwischenspeichern, so dass Folgeanrufe nicht neu berechnet werden müssen. – scsimon

+0

Ich gebe Eingabe mit Daten auf Anforderung, so dass jeder Benutzer verschiedene Eingaben gibt. Caching ist keine Option für mich – direwolf