Announcement

Collapse
No announcement yet.

Performanceprobleme nach Umstellung FB1.5 auf FB 2.01

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Performanceprobleme nach Umstellung FB1.5 auf FB 2.01

    Hallo,

    wir haben gerade umgestellt. War nicht ganz so problemlos. Es musste sehr vioel an die genauere Syntaxprüfung angepasst werden. Nun läuft jedenfalls alles, aber wir haben schon von einigen Kunden eine Rückmeldung bekommen, dass "alles langsamer" geworden ist.
    Nun ist so eine Aussage etwas sehrt allgemein, nur ist leider nichts konkreteres rauszubekommen.
    Eingesetzt wird bei diesen Kunden der SS auf W2003 Server.

    Ich habe hier schon gelesen, dass ungünstige Indizes Probleme machen können. Nun ist es nahezu unmöglich sämtliche Querys in unserer Applikation zu druchforsten. Das würde Wochen bis Monate dauern.

    Deshalb die Frage: Wo kann man am besten ansetzen? Gibt es Einstellungen, die anders sein können, wodurch vielleicht das Caching ungünstig ist?
    Mir ist auch aufgefallen, dass bei früheren FB Versionen oft nach einem Update joins nicht mehr performant waren. Man musste dann left outer auf inner joins oder umgekehrt umbauen. Manchmal war der eine schneller, manchmal der andere.
    Kann sowas die Ursache sein?

    Irgendwie eine schwierige Situation. etliche 100 Queries checken ist wahnsinnig mühsam. Unsere Datenbank besteht aktuell aus 265 Tabellen mit 477 Trigger und 265 Stored Procedures.
    Dazu kommen auch noch jede Menge Queries in der Applikation selbst.
    Nur mal so als Anhaltspunkt warum ich nicht ganz glücklich damit bin, jetzt alles auf ungünstige Indizes zu durchsuchen.

    Hat wer eine Idee, wie ich am schnellsten die Probleme eingrenzen könnte?

    Grüße
    Helmut

  • #2
    einfach mal mit dem ibexpert sql monitor eure applikation testen. der protokolliert alle sqls und ihr könnt dann zunächst mal mit der optimierung der langsamen sqls beginnen. hier eine kurze doku dazu: http://www.ibexpert.info/ibmonitor/homeindex.html

    Gruß
    Holger
    www.firebird-conference.com

    Comment


    • #3
      Danke für den Tipp. Werde ich gleich mal ausprobieren.

      Grüße
      Helmut

      Comment


      • #4
        Jetzt habe ich mir die Testversion runtergeladen und installiert, aber leider scheint da der SQL Monitor nicht zu laufen. Nach Start des Dienstes wird dieser beendet mit der Meldung "Trial limitation".

        Gibt es keine trial, die diese Funktion hat?

        Nicht, dass ich nicht was investieren will, aber ich habe derzeit IB Manager und der leistet in Prinzip das, was IBExpert (zumindest der Teil, den man in der Testversion testen kann) auch kann (sieht sogar sehr ähnlich aus, warum auch immer?).

        Grüße
        Helmut

        Comment


        • #5
          welches betriebssystem benutzt du?

          Comment


          • #6
            Windows XP Prof.

            Comment


            • #7
              Hi Helmut,

              ich hatte vor ca. 9 Monaten umgestellt - von FB 1.5.3 auf 2.0.

              Eigentlich lief alles gut, also stellte ich zwei weitere Server um.

              Resultat:
              Auf einem Server mit kleiner DB mit wenig Tabellen waren massivste Performance-Verluste.
              Speziell an diesem Server war, dass sich Services von anderen Servern auf diese DB anmelden, nur kurz, aber sehr häufig - alle paar Minuten.
              Habe alles mögliche versucht, inkl. Switch Super/Classic-Server, Memory-Optionen usw, es liess sich nicht bessern.
              Nach Rückstellung auf 1.5.3 war alles wieder gut.


              Auf einem anderen Server (DB > 4GB, > 200 Tables) gab es plötzlich Probleme mit einer View mit UDF drin, aber nur auf einer bestimmten Wertekombination einer Row (UDF arbeitet mit Descriptors, View hat etwa 400 Felder).
              Der Server crashte voll.

              Die Probleme waren schlecht fassbar und traten nur auf mit den Daten in dieser DB, welche ich aber nicht ausser Hause geben durfte (F&E).
              Die Situation wurde zum Schluss unhaltbar, darum habe ich in einer Gewaltsübung auf 1.5.3 zurückgestellt.

              Nun warte ich auf 2.1.


              Das alles hilft Dir wohl nichts, aber wir haben bei all dem probieren zb. festgestellt, dass bestimmte UDF-Definitionen nicht korrekt auf 2.0 übernommen wurden.
              Wir haben dann alle UDFs gelöscht (inkl. Views + Stored Procs, welche diese UDFs verwendeten) und alles neu angelegt.
              Ist schwer erklärbar, aber bestimmte datenabhängige Fehler waren danach weg.


              Gruss

              Henri

              Comment


              • #8
                Hallo Henri,

                - Verwendest Du NOT IN Abfragen?
                - Welche UDFs hast Du in Verwendung?


                Thomas
                Thomas Steinmaurer

                Firebird Foundation Committee Member
                Upscene Productions - Database Tools for Developers
                Mein Blog

                Comment


                • #9
                  Hallo Thomas,

                  beim Fall mit dem Server-Crash war kein "not in" im Spiel, jedoch ein
                  if ...in (.....) and = ...... and >
                  Mit im Spiel waren aber zwei Views mit je über 100 Felder, wobei gut ein Drittel der Felder durch eine eigene UDF umgerechnet wurde (der Grund, warum Views eingesetzt werden: die zugrundeliegenden Tables haben Werte in verschiedenen Einheiten, die View rechnet diese VWerte dynamisch zu einheitlichen Einheiten um (Länge, Breite, Kraft usw).

                  Die UDF ist wie gesagt Eigenbau und arbeitet mit Descriptors für die Übergabe der Daten, um auch NULL-Werte adäquat zurückgeben zu können.

                  Der Crash trat aber nicht sofort auf, sondern nur ab dem 3-5 gleichen Aufruf des Selects (habe den Fehler bemerkt, als ich mal aus Langeweile mehrfach auf dem Refresh-Button klickte).


                  Hatte es im FB-Tracker gemeldet, und danach auch mit dem Debug-Server geprüft, welcher aber auch ohne weiteren Pieps runterfiel.


                  Habe noch ausstehend, das ganze gegen 2.0.3 zu testen (und 2.1) - resultat also noch offen.


                  Die Performance-Probleme (auf anderem Server) konnten nie erklärt und schon gar nicht gelöst werden


                  Gruss

                  Henri

                  Comment

                  Working...
                  X