Datenbank Abfragen sehr langsam

Nobody007

Aktiver Benutzer
Beiträge
33
Hallo zusammen,

ja, ich weiß, die Überschrift ist sehr allgemein gehalten. Also versuche ich mein Problem ein wenig genauer zu beschreiben.

Nach einem Wechsel einer ERP Software, die auf einer MS SQL basierte, haben wir zu einem ERP Programm auf Oracle SQL gewechselt.
Nun tauchen immer wieder Probleme auf, die mir unter MS SQL nicht bekannt waren. Da geht es z.B. um die allgemeine Performance.
Ja, ich kann nachvollziehen, daß sehr komplexe Abfragen auch seine Zeit dauern. Aber ist es normal, daß z.B. eine Abfrage mit Datensätzen 8 bis 15 Minuten dauert?
Manchmal kann es auch noch länger dauern. Hierbei geht es um Auswertungen für einen Zeitraum von einem Jahr. Möchte man z.B. einen Jahresvergleich von gewissen Umsätzen darstellen, ist das fast unmöglich.

Wie soll ich sowas der Geschäftsleitung erklären?
So kann man ehrlich gesagt nicht arbeiten.

Gibt es eine Möglichkeit, die Performance zu kontrollieren?
Hardwareseitig haben wir keine Probleme, da der Server ziemlich gut aufgestellt und neu ist. Genug RAM ist vorhanden und Festplatten sind alle SSD's.
Ja, der Lieferant wurde diesbezüglich schon kontaktiert. Bekomme aber nur Wischi Waschi Antworten.

Wenn jemand Tipps, Tricks oder Anregungen hat, bin ich für jeden Vorschlag dankbar.
Wie gesagt, daß ist hier allles sehr allgemein gehalten.
Falls Informationen fehlen sollten, kann ich diese gerne nachreichen.
Randnotiz: Ich bin kein Oracle SQL Profi!
 
Werbung:
Kleiner Nachtrag.
Ich hatte vor 3 Tagen eine vom Hersteller generierte Abfrage verändert um einen Jahresvergleich zu bekommen.
Somit sollten alle Daten angezeigt werden.

Wollte diese dann in PowerBI darstellen.
Die Abfrage läuft immer noch (wie gesagt, 3 Tage) und es wurden laut Anzeige aktuell ca. 6.500.000 Zeilen geladen.
Finde ich persönlich nicht nutzbar.
 
Schwer zu sagen aus der Ferne.
Die DB muss entsprechend konfiguriert werden. Anzahl Kerne mal als Anfang, an der Stelle ist man auch gleich beim Thema Lizenz-Kosten. VM oder physisch? Habt Ihr einen Support Vertrag?
Du kannst erstmal mit OS untersuchungen anfangen. Wieviel Kerne werden genutzt (unter Last), wieviel sind konfiguriert?
Wieviel IO?

Dann ist es so, dass nach einer Installation bzw. einer Datenmigration / Import Statistiken angelegt und u.U. Indizierung geprüft werden muss.
Du kannst Dir unter Oracle administrativ jedes einzelne Statement anschauen und dazu die Kosten / Ausführungsplan.
Wenn Du ne Enterprise Edition am Start hast, gibt es viele Autotuning Features.

Wenn es dumm gelaufen ist, ist die Oracle DB eine "Embedded Version", an die ERP Anwendung gekoppelt und verfügt über keine oder wenig solcher Features (und der Softwaredistributor hat vielleicht keine Ahnung, wie man mit Oracle umgeht)
 
Das kann sich nur der Hersteller ansehen.
Ausführungsplan analysieren und entsprechende Maßnahmen ergreifen.
Vielleicht ist die Abfrage zwar richtig, aber eben schlecht geschrieben.
Da braucht man wen mit Erfahrung. Mitunter sind da die Mitarbeiter des Herstellers überfordert.
6,5 Millionen Datensätze sind doch ein Klax.
 
Dann ist es so, dass nach einer Installation bzw. einer Datenmigration / Import Statistiken angelegt und u.U. Indizierung geprüft werden muss.
Gibt es eine Möglichkeit, die Performance zu kontrollieren?
Das ist eine sehr allgemeine Frage. Kommt drauf an, welche Edition und damit Tools Du an Board hast. Ich hab aber schon lange nicht mehr mit Oracle gearbeitet und kenne die neuen Sachen nicht. Aber ohne Klicktools und Farbe kann man viel erreichen und sich einen Überblick verschaffen. Am Ende möchte man sowieso alles per Script und Taskplaner laufen haben, daher sind die bunten Tools auch nicht unbedingt der Weisheit letzter Schluss.

Du kannst mal ins Blaue nachschauen, wie aktuell die Statistiken sind. Das ist keine Performancekontrolle, sondern prüft Aktualität bzw. Existenz eines Grundbausteins des Optimizers.
Code:
SELECT OWNER, TABLE_NAME, LAST_ANALYZED
  FROM USER_TABLES
USER_TABLES bezieht sich dabei auf den angemeldeten Benutzer. Der muss dann sinnigerweiße der DB Owner der ERP Software sein. In Oracle Sprache entspricht das (mindestens/meist) einem Schema, wo die ERP Daten liegen. Eine Oracle DB hat mehrere Schemata / User (beliebig viel- wiederum Lizenzfrage), die eigenständig und unabhängig Daten und Objekte halten.

Die Spalte OWNER gibt im Ergebnis dann den angemeldeten User wieder und ist nur bedingt hilfreich.
Wichtig ist das Datum in LAST_ANALYZED. Ist es leer oder alt (vor der Migration), dann tappt der Optimizer im Dunkeln und die Statistiken müssen aktualisiert oder erstellt werden.

Was immer Du auch tust, aus Haftungsgründen solltest Du mal klären, welche Oracle Lizenz da läuft. Full Use, selbst gekauft? Oder ASFU oder gar nicht gekauft, sondern Teil der ERP Software?

Und zum Thema "gute Hardware" wäre dann mal die noch die Frage, wieviel CPU, SSD Sata oder M2, sowie die Größe der DB. Muss ja irgendwie zusammen passen.

Und der Geschäftsleitung würde ich lieber gleich sagen, dass es noch klemmt. Das ist nicht wie in der Spedition, wo Du von Mercedes auf MAN Zugmaschinen umsteigst.
 
Ja, aber wie gesagt. Ich komme mit denen nicht weiter und für jeden Pups halten die die Hand auf.
Das Software Haus gibt es seit über 40 Jahren. So lange werkeln die anscheinend auch schon an Ihrer ERP Software rum.
So sieht es aus und so fühlt sich meines Erachtens auch so an damit zu arbeiten. Administrativ ist es echt manchmal eine Katastrophe und meiner Meinung nach nicht Stand 2023. Aber das ist nur meine persönliche Meinung. Es wurde immer stetig weiter entwickelt. Da liegt aber wahrscheinlich auch das Problem, daß da noch Altlasten das ganze so massiv langsam macht.
 
Das kann ich mal prüfen.


Das ist eine sehr allgemeine Frage. Kommt drauf an, welche Edition und damit Tools Du an Board hast. Ich hab aber schon lange nicht mehr mit Oracle gearbeitet und kenne die neuen Sachen nicht. Aber ohne Klicktools und Farbe kann man viel erreichen und sich einen Überblick verschaffen. Am Ende möchte man sowieso alles per Script und Taskplaner laufen haben, daher sind die bunten Tools auch nicht unbedingt der Weisheit letzter Schluss.

Du kannst mal ins Blaue nachschauen, wie aktuell die Statistiken sind. Das ist keine Performancekontrolle, sondern prüft Aktualität bzw. Existenz eines Grundbausteins des Optimizers.
Code:
SELECT OWNER, TABLE_NAME, LAST_ANALYZED
  FROM USER_TABLES
USER_TABLES bezieht sich dabei auf den angemeldeten Benutzer. Der muss dann sinnigerweiße der DB Owner der ERP Software sein. In Oracle Sprache entspricht das (mindestens/meist) einem Schema, wo die ERP Daten liegen. Eine Oracle DB hat mehrere Schemata / User (beliebig viel- wiederum Lizenzfrage), die eigenständig und unabhängig Daten und Objekte halten.

Die Spalte OWNER gibt im Ergebnis dann den angemeldeten User wieder und ist nur bedingt hilfreich.
Wichtig ist das Datum in LAST_ANALYZED. Ist es leer oder alt (vor der Migration), dann tappt der Optimizer im Dunkeln und die Statistiken müssen aktualisiert oder erstellt werden.

Was immer Du auch tust, aus Haftungsgründen solltest Du mal klären, welche Oracle Lizenz da läuft. Full Use, selbst gekauft? Oder ASFU oder gar nicht gekauft, sondern Teil der ERP Software?

Und zum Thema "gute Hardware" wäre dann mal die noch die Frage, wieviel CPU, SSD Sata oder M2, sowie die Größe der DB. Muss ja irgendwie zusammen passen.

Und der Geschäftsleitung würde ich lieber gleich sagen, dass es noch klemmt. Das ist nicht wie in der Spedition, wo Du von Mercedes auf MAN Zugmaschinen umsteigst.
 
Das kann sich nur der Hersteller ansehen.
Ausführungsplan analysieren und entsprechende Maßnahmen ergreifen.
Vielleicht ist die Abfrage zwar richtig, aber eben schlecht geschrieben.
Da braucht man wen mit Erfahrung. Mitunter sind da die Mitarbeiter des Herstellers überfordert.
6,5 Millionen Datensätze sind doch ein Klax.
Ja, das habe ich mir auch so gedacht.
 
Naja, ein Supportvertrag regelt Antwort und Lösungszeiten, das ist nicht schwurbelig.
Irgendwer muss ja eine Migration durchgeführt haben und das muss ja irgendwie bestätigt und abgenommen werden.
Und die Fragen, die ich gestellt hab, kannst Du dem Hersteller / Lieferanten auch stellen. Wieviel CPU sind lizensiert und konfiguriert?
Wurden Statistiken erstellt und wie ist die Aktualisierung der Statistiken konfiguriert.
Klare Fragen, klare Antworten. Die müssen ja wissen, was sie getan haben. Diese Antworten können auch nicht so teuer sein.

Wenn ausreichend Resourcen da sind, soll ein Oracle Spezialist kommen und es richtig konfigurieren.
 
Schwer zu sagen aus der Ferne.
Die DB muss entsprechend konfiguriert werden. Anzahl Kerne mal als Anfang, an der Stelle ist man auch gleich beim Thema Lizenz-Kosten. VM oder physisch? Habt Ihr einen Support Vertrag?
Du kannst erstmal mit OS untersuchungen anfangen. Wieviel Kerne werden genutzt (unter Last), wieviel sind konfiguriert?
Wieviel IO?

Dann ist es so, dass nach einer Installation bzw. einer Datenmigration / Import Statistiken angelegt und u.U. Indizierung geprüft werden muss.
Du kannst Dir unter Oracle administrativ jedes einzelne Statement anschauen und dazu die Kosten / Ausführungsplan.
Wenn Du ne Enterprise Edition am Start hast, gibt es viele Autotuning Features.

Wenn es dumm gelaufen ist, ist die Oracle DB eine "Embedded Version", an die ERP Anwendung gekoppelt und verfügt über keine oder wenig solcher Features (und der Softwaredistributor hat vielleicht keine Ahnung, wie man mit Oracle umgeht)

Support Vertrag ist vorhanden.
Auf beiden Seiten. Sprich für die unter dem ERP liegende Linux Distri als auch für die ERP Software selbst.

Lizenzen sind zwar über den Softwarehersteller erworben. Die sind anscheinend auch Oracle Certified Partner.
Oracle Lizenzen = sehr teuer :D

Anzahl Kerne müßte ich nachschauen.

Ist eine VM auf Hyper-V

Für die Linux OS bekommen wir vom Support monatlich einen Report, der zeigt, daß es keine Hardwareängpässe gibt.

IO könnte ich nachschauen und nachreichen.

Admin Rechte sind vorhanden.
Kann ich denn irgendwie nachschauen, ob es eine Enterprise Edition ist?
Alternativ könnte ich mal in das Angebot schauen, ob es dort aufgefürt ist.
 
Naja, ein Supportvertrag regelt Antwort und Lösungszeiten, das ist nicht schwurbelig.
Irgendwer muss ja eine Migration durchgeführt haben und das muss ja irgendwie bestätigt und abgenommen werden.
Und die Fragen, die ich gestellt hab, kannst Du dem Hersteller / Lieferanten auch stellen. Wieviel CPU sind lizensiert und konfiguriert?
Wurden Statistiken erstellt und wie ist die Aktualisierung der Statistiken konfiguriert.
Klare Fragen, klare Antworten. Die müssen ja wissen, was sie getan haben. Diese Antworten können auch nicht so teuer sein.

Wenn ausreichend Resourcen da sind, soll ein Oracle Spezialist kommen und es richtig konfigurieren.
Das ist ja das verrückte. Davon bin ich auch ausgegangen. Aber es sind noch nicht mal Reaktionszeiten in dem Wartungsvertrag aufgeführt... 😝
 
Naja, ein Supportvertrag regelt Antwort und Lösungszeiten, das ist nicht schwurbelig.
Irgendwer muss ja eine Migration durchgeführt haben und das muss ja irgendwie bestätigt und abgenommen werden.
Und die Fragen, die ich gestellt hab, kannst Du dem Hersteller / Lieferanten auch stellen. Wieviel CPU sind lizensiert und konfiguriert?
Wurden Statistiken erstellt und wie ist die Aktualisierung der Statistiken konfiguriert.
Klare Fragen, klare Antworten. Die müssen ja wissen, was sie getan haben. Diese Antworten können auch nicht so teuer sein.

Wenn ausreichend Resourcen da sind, soll ein Oracle Spezialist kommen und es richtig konfigurieren.

Werde der Sache mal nachgehen. Vielen Dank 👍
 
Werbung:
Naja, ein Supportvertrag regelt Antwort und Lösungszeiten, das ist nicht schwurbelig.
Irgendwer muss ja eine Migration durchgeführt haben und das muss ja irgendwie bestätigt und abgenommen werden.
Und die Fragen, die ich gestellt hab, kannst Du dem Hersteller / Lieferanten auch stellen. Wieviel CPU sind lizensiert und konfiguriert?
Wurden Statistiken erstellt und wie ist die Aktualisierung der Statistiken konfiguriert.
Klare Fragen, klare Antworten. Die müssen ja wissen, was sie getan haben. Diese Antworten können auch nicht so teuer sein.

Wenn ausreichend Resourcen da sind, soll ein Oracle Spezialist kommen und es richtig konfigurieren.

Sorry, wie gesagt, bin kein Oracle Profi, aber was meinst Du mit Statistiken bzw. Aktualisierung dieser?
Gibt es da spezielle Datenbank Statistiken o.ä.? Kann man das in der Datenbank abfragen oder sollten die irgendwelche Tools für haben?

Hardwareseitig bekommen wir welche einem anderen Lieferanten, der sich wie beschrieben um das Linux kümmert.
Da ist alle im grünen Bereich. Das haben wir zusätzlich mündlich bestätigt bekommen.
 
Zurück
Oben