![]() |
Datenbank: Oracle • Version: 9i • Zugriff über: DOA
SQL-Abfrage auf per SQL ermittelte Datenmenge?
Hallo.
Ich führe mehrere Auswertungen auf Basis einer Tabelle aus. Die Auswertungen bestehen aus teilweise recht umfangreichen SQL-Statements. Ich möchte nun die Performance dieser Auswertungen erhöhen. Einige Teile meiner SQL-Statements, und zwar genau die, die performancemässig teuer sind, sind für jede dieser Auswertungen identisch. Jetzt dachte ich mir, hole ich mir doch erstmal diese 'Basisdatenmenge' und arbeite dann mit genau diesen Daten weiter. Ich setze also ein SQL-Statement ab, das genau die Felder enthält, die in allen Auswertungen gleich sind. Das Ergebnis ist meine Basisdatenmenge. Auf diese lasse ich dann die anderen Statements los. Das Problem ist nun: wie kann ich diese 'Baisdatenmenge' zwischenspeichern, ohne sie in eine temporäre Tabelle zu schreiben? (Da ich mir die Basisdatenmenge auch schon dynamisch hole, scheidet ein View schonmal aus). Gibt es vielleich ein memtable o.ä. welches SQL-Abfragen zulässt? |
Re: SQL-Abfrage auf per SQL ermittelte Datenmenge?
(Ich nehme an, du meinst serverseitig)
Es gibt in Oracle Records, Objekte, Arrays.. Du kannst auch die Funktionalität in ein Package schieben. Dort kannst du dann mehrere öffentliche und nichtöffentliche SPS verwenden und Felder. |
Re: SQL-Abfrage auf per SQL ermittelte Datenmenge?
Ich denke, er meint eher Clientseitig...
Ich habe ein Dataset welche die sogenannten Basisdaten holt. Auf dieses Dataset (welche die Daten oder Referenzen zu den Daten nun clientseitig vorhält) führe ich eine SQL-Anwendung aus. Hatte mich auch schonmal gefragt, ob so etwas möglich ist. Beispiel: Basisdaten - "SELECT * FROM rechnungen WHERE ... ORDER BY ..." AS Basisdaten LokaleZusatzabfrage - SELECT sum(summe) FROM Basisdaten; |
Re: SQL-Abfrage auf per SQL ermittelte Datenmenge?
Hallo Ihr beiden.
Ganz richtig: ich meine clientseitig. Das Beispiel, welches nachti1505 bringt, trifft's eigentlich genau. Optimal wäre halt ein memtable, in welches ich meine 'Basisdaten' schreibe, und auf welches ich dann weitere SQL-Abfragen durchführen kann. |
Re: SQL-Abfrage auf per SQL ermittelte Datenmenge?
Hallo,
suchmal nach kbmMemTable, eventuell ist das was für Dich. |
Re: SQL-Abfrage auf per SQL ermittelte Datenmenge?
Hallo,
werde die Komponente mal ausprobieren; danke. |
Re: SQL-Abfrage auf per SQL ermittelte Datenmenge?
Leider unterstützt auch diese memTable keine SQL-Abfragen :(
Schade, dann werde ich wohl doch auf eine temporäre Tabelle zurückgreifen müssen. |
Re: SQL-Abfrage auf per SQL ermittelte Datenmenge?
Hallo,
es gibt da noch ![]() Eine temporäre Tabelle in der Datenbank hat aber durchaus ihre Vorteile. Man kann sie mit 'nem passenden Index versehen, man kann auf ihr Statistiken erstellen (was bei großen Datenmengen schonmal das eine oder andere Stündchen an Laufzeit einsparen kann) und ein ordentlicher Datenbankserver kann Daten deutlich schneller zusammensuchen, als es ein (handelsüblicher) Client im Arbeitsspeicher kann. |
Re: SQL-Abfrage auf per SQL ermittelte Datenmenge?
Die Komponente sieht interessant aus; für mich privat jedenfalls.
Für mein aktuelles Problem in der Firma werde ich aber wohl wirklich auf eine temp. Tabelle gehen. Nochmals danke :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz