HoneyBadger
Aktiver NGBler
- Registriert
- 7 Sep. 2015
- Beiträge
- 1.913
Hi,
kennt zufällig jemand eine Möglichkeit, wie ich Abfragen aus externen Datenfeeds beschleunigen kann? Früher habe ich das über Jet-Reports gemacht. Wenn man hier aber nicht direkt die SQL-Datenbank ansteuert, so wie wir das aktuell machen müssten, da sonst der Server in die Knie geht, dauert das ganz mindestens 30 min und länger. Je nachdem welche Tabelle man anspricht. Gilt aber auch schon bei kleinen Standardtabellen, die keine historischen Daten enthalten. Zum Beispiel die Kundenstammdaten.
Die Daten liefert unser ERP-System. Hierüber werden die Tabellen über WebServices zur Verfügung gestellt. Der schnellere Weg im Vergleich zu Jet geht über OData. Das läuft auch soweit ganz gut. Ich komme nur an meine Grenzen, wenn ich Abfragen erstellen muss, die auf mehrere teilweise sehr große Tabellen zugreift. Im Moment muss ich immer mal wieder Daten aus dem Artikelhauptbuch ziehen und diese mit anderen Tabellen verknüpfen, um dann entsprechende Auswertungen zu fahren. Problem ist nur, dass die Tabelle logischerweise tägl. größer wird, da dort alle Artikelbewegungen auflaufen. Für dieses Jahr sind da alleine weit über 100.000 Zeilen drin. Wenn ich im Query Editor vorfiltere, habe ich das Ergebnis zwar in der Auswertung eingeschränkt, aber dennoch wird jedes mal die komplette Datenbank durchwühlt. Kann man da evtl. eine Art Index drüber ziehen, sodass nicht immer alles komplett durchsucht werden muss oder muss man bei solchen Abfragen immer alles durchsuchen lassen?
Das kostet jedes Mal einige Minuten. Summiert sich schnell, wenn man hier und da mal feststellt, dass man eine Zeile zu viel/wenig hat oder man noch einen Filter mehr bräuchte usw. bis die Auswertung mal steht und jedes Mal irre große Abfragen laufen.
Ich hoffe, ich konnte es halbwegs verständlich erklären.
kennt zufällig jemand eine Möglichkeit, wie ich Abfragen aus externen Datenfeeds beschleunigen kann? Früher habe ich das über Jet-Reports gemacht. Wenn man hier aber nicht direkt die SQL-Datenbank ansteuert, so wie wir das aktuell machen müssten, da sonst der Server in die Knie geht, dauert das ganz mindestens 30 min und länger. Je nachdem welche Tabelle man anspricht. Gilt aber auch schon bei kleinen Standardtabellen, die keine historischen Daten enthalten. Zum Beispiel die Kundenstammdaten.
Die Daten liefert unser ERP-System. Hierüber werden die Tabellen über WebServices zur Verfügung gestellt. Der schnellere Weg im Vergleich zu Jet geht über OData. Das läuft auch soweit ganz gut. Ich komme nur an meine Grenzen, wenn ich Abfragen erstellen muss, die auf mehrere teilweise sehr große Tabellen zugreift. Im Moment muss ich immer mal wieder Daten aus dem Artikelhauptbuch ziehen und diese mit anderen Tabellen verknüpfen, um dann entsprechende Auswertungen zu fahren. Problem ist nur, dass die Tabelle logischerweise tägl. größer wird, da dort alle Artikelbewegungen auflaufen. Für dieses Jahr sind da alleine weit über 100.000 Zeilen drin. Wenn ich im Query Editor vorfiltere, habe ich das Ergebnis zwar in der Auswertung eingeschränkt, aber dennoch wird jedes mal die komplette Datenbank durchwühlt. Kann man da evtl. eine Art Index drüber ziehen, sodass nicht immer alles komplett durchsucht werden muss oder muss man bei solchen Abfragen immer alles durchsuchen lassen?
Das kostet jedes Mal einige Minuten. Summiert sich schnell, wenn man hier und da mal feststellt, dass man eine Zeile zu viel/wenig hat oder man noch einen Filter mehr bräuchte usw. bis die Auswertung mal steht und jedes Mal irre große Abfragen laufen.
Ich hoffe, ich konnte es halbwegs verständlich erklären.