Announcement

Collapse
No announcement yet.

Speicherverhalten FB 1.5 vs 2.01 (Performance)

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

  • Speicherverhalten FB 1.5 vs 2.01 (Performance)

    Liebe Entwicklergemeinde,

    obwohl wir mir FB 2.01 bezüglich der Performance sehr gute Erfahrung haben, gibt es doch ein Problem.
    Eine Abfrage läuft unter FB 1.5 erheblich schneller ab als unter FB 2.01.
    Mir ist dabei aufgefallen, dass in den Performanceonfos von IBExpert der max. Memorywert von FB 1.5 erheblich größer ist als unter FB 2.01. (Hardware ist auf beiden Servern nahezu identisch)

    Query unter FB 1.5
    Prepare time = 20ms
    Execute time = 120ms
    Avg fetch time = 3,87 ms
    Current memory = 21.589.260
    Max memory = 22.232.912
    Memory buffers = 75
    Reads from disk to cache = 449
    Writes from cache to disk = 0
    Fetches from cache = 542

    Query unter FB 2.0
    Prepare time = 20ms
    Execute time = 1s 242ms
    Avg fetch time = 40,06 ms
    Current memory = 8.389.092
    Max memory = 8.521.412
    Memory buffers = 300
    Reads from disk to cache = 2.362
    Writes from cache to disk = 0
    Fetches from cache = 2.543

    Wie man sehen kann, ist der Wer für Current memory erheblich kleiner obwohl wir Memory satt an Board haben (16 GByte)

    Kann man da was am Config File drehen ?

    Gruß und Dank

    Gerhard

  • #2
    noch einen Zusatz

    unter FB 1.5 macht der Optimizierer folgendes:
    Plan
    PLAN (STAR_DOCUMENT_INDEX ORDER STAR_DOCUMENT_INDEX_IDX2)

    Adapted Plan
    PLAN (STAR_DOCUMENT_INDEX ORDER STAR_DOCUMENT_INDEX_IDX2)

    unter FB 2.0 sieht es so aus:
    Plan
    PLAN (STAR_DOCUMENT_INDEX ORDER STAR_DOCUMENT_INDEX_IDX2 INDEX (STAR_DOCUMENT_INDEX_IDX1, STAR_DOCUMENT_INDEX_IDX6))

    Adapted Plan
    PLAN (STAR_DOCUMENT_INDEX ORDER STAR_DOCUMENT_INDEX_IDX2 INDEX (STAR_DOCUMENT_INDEX_IDX1, STAR_DOCUMENT_INDEX_IDX6))

    ich nehme an, dass hier das Problem liegt, oder ?

    Gruß
    Gerhard

    Comment


    • #3
      moin, gerd,

      du hast aber irgendwie auch eine unterschiedliche Konfiguration. 75 buffers gegen 300 buffers. ist evtl auch bei der pagesize eine Änderung festzustellen? evtl beim Backup/Restore den Wert verändert?

      Gruß

      Holger
      www.firebird-conference.com
      18.20.10.2007 Hamburg, Germany

      Comment


      • #4
        wenn du eine kleine db hast auf der das reproduzierbar ist kann ich das gerne mal für dich untersuchen. Einfach per meila senden an die dir bekannte adresse

        Gruß

        Holger
        www.firebird-conference.com
        18.-20.10.2007 Hamburg, Germany

        Comment


        • #5
          Hallo Holger,

          besten Dank für Deine Hilfe. Habe mit dem PLAN Analyzer im IBExpert mal gegen die 1.5 er Version verglichen. Das Problem besteht in einem Index, der in der 1.5 er Version nicht benutzt wird aber in der 2.0 er Version. Dieses führt zu einer Performanceverschlechterung. Habe den Index gelöscht und nun läuft es wieder prima.
          Falls Du unsere DB noch hast, es ist der Index des Delete Flags in der Tabelle STAR_DOCUMENT_INDEX.

          Beste Grüße
          Gerhard

          P.S. Wir sehen uns zur FB Konferenz

          Comment


          • #6
            Moin, Gerd,

            gut zu wissen, es ist manchmal wirklich so das man indizes mit schlechter selektivität (wie eurer deleteflag) manchmal löschen sollte oder abwandelt, so das diese nur mit anderen selektivieren Feldern kombiniert indiziert werden sollten. Ich hab auf dem Weg schon einiges an performanceverbesserung erreicht. Wir sehen und in Hamburg :-)

            Gruß

            Holger
            www.firebird-conference.com
            18.-20.10.2007 Hamburg, Germany

            Comment


            • #7
              Nebenfrage

              Da hier die FB1.5 nach 2.0 Hasen sind, kann mir vielleicht jemand helfen ??

              Ich frage eine Artikelliste nach elektronischen BAuteilen ab. Darunter auch Kondensatoren. Nachdem ich alles (Server, client, backup und Restore der DB) nach 2.0 gewechselt habe, kann ich nicht nach µ suchen. Auch nicht im IBExpert. Eingestellt war immer ISO 8859_1.

              Jetzt habe ich zum Test die 2.1 Beta installiert, jetzt kommt auch im IBExpert mit der einfachen abfrage :
              select *
              from artikel where suchtext containing '2200'

              ein arithmetik overflow.

              Was hat das bei einer Abfrage nach Strings zu suchen ???

              Comment


              • #8
                Wie suchst du nach µ?
                Ist das die ganze Fehlermeldung? Ich kenne sie nur in Verbindung mit ...string truncation...
                Funktioniert die like-Variante?

                Comment


                • #9
                  Hallo Gerhard,

                  falls es sich um eine NOT IN Abfrage handelt, dann ist das ein bekanntes Problem/Feature mit FB 2.0. Ist in den Release-Notes dokumentiert.

                  Thomas
                  Thomas Steinmaurer

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

                  Comment


                  • #10
                    In IB_Expert geht Like nur mit genauem Wert, = mit genauem Wert, sonst keine Ergebnis.
                    Folgender SQL-test im IB-Expert :

                    select * from artikel where suchtext containing 'HR7762'

                    ergibt bei containing immer die Fehlermeldung:

                    Arithmetic Overflow or division by zero has occurred.
                    arithmetic exception, numeric overflow or string truncation.
                    Cannot transliterate character between character sets.

                    Diese tabelle wie alle anderen sind seit 4 Jahren in ohne Strukturänderung in gebrauch.

                    Comment


                    • #11
                      Nächster Test :

                      Tabelle neu angelegt, alles bis auf containing funktioniert.
                      Fehlermeldung wie gehabt.

                      Containing geht aber auf allen anderen tabellen.

                      Comment


                      • #12
                        Die korrespondierende like-Abfrage wäre:
                        [highlight=sql]
                        select * from artikel where suchtext like '%HR7762%';
                        [/highlight]
                        Arithmetic Overflow or division by zero has occurred.
                        arithmetic exception, numeric overflow or string truncation.
                        Cannot transliterate character between character sets.
                        Welches Character set ist in der Verbindung konfiguriert?

                        Comment


                        • #13
                          was passiert wenn du die tabelle in ibexpert öffnest und zum letzten datensatz gehst? kommt dann ein Fehler? Kannst du sonst evtl mit ibexpert die tabelle in eine andere db übertragen (geht im sql fenster mit
                          insert into [aliasname].neuetabelle select * from alteTabelle
                          taucht in der db der fehler auch noch auf?

                          Holger
                          www.firebird-conference.com

                          Comment


                          • #14
                            Hallo Markus :

                            Like mit % funktioniert, schon mal eine Möglichkeit. Leider sind in einem über 10 Jahre gewachsenen Programm einige ABfragen mit containing
                            Die Verbindungen, Database, Dataset und die tabellen-Strings sind alle mit ISO8859_1, schon seit Jahren.

                            Klemmo, ich teste. Dauert leider wegen Arbeit ))

                            Comment


                            • #15
                              Hallo Klemmo,

                              in einer anderen datenbank konnte ich containing ausführen, im IB-Expert-Formularmodus auch ein µ eingeben. Nur im SQL-Editor nicht. Anscheinend ein IB-Expert feature.

                              Habe ich jetzt einen Datenbank fehler ? Ich habe alle Index entfernt, auch keine Wirkung.

                              Comment

                              Working...
                              X