Re: @cb - optimierung - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Timo (34 Beiträge) am Dienstag, 4.Juni.2002, 09:30.
    Re: @cb - optimierung

      "tauchte mehrmals im -Forum- auf..."


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Timo (34 Beiträge) am Dienstag, 4.Juni.2002, 00:41.
    @cb - optimierung

      Haiho,

      der Aufruf


              get "SpielNr==*", "spielplan";
              ...
              while (get_next("spielplan")){
                get "teilnehmer==!$name_ein","ergebnisse";
                ...
                #get "","ergebnisse","tendenz";  <<< DIESER AUFRUF
      

      verursachte hauptsächlich die Antwortzeit in meinem Programm, mir ist nur nicht ganz klar warum. Jetzt beträgt sie in meinen Augen akzeptable 1.x Sekunden meist.

      Ich habe noch eine weitere komplexere Seite, eigentlich nicht komplex, nur einige Schleifendurchläufe hintereinander, die dauert noch ca. 4 Sekunden. Das ist eigentlich auch lang. Da weiss ich nur nicht weiter von wegen Optimierung.

      Aussderm habe ich mich belehren lassen, dass "get "sort=test"... " langsamer ist als "get "test==*" ..." (und macht das gleiche). Wenn das in der Doku steht, habe ich es nicht gefunden. Wäre doch toll, wenn man das klarer herausstellen könnte.

      Grüße

      Timo

      P.S.: Danke Olaf für Deine Geduld!!!

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 4.Juni.2002, 01:59.
    Re: @cb - optimierung

      Klar steht das in der Doku ,-)

      http://baseportal.de/cgi-bin/baseportal.pl?htx=/hilfe/baseportal/db_help&help=51

      ---
      Tip: Soll der komplette Inhalt ausgegeben werden, allerdings sortiert nach einem bestimmten Feld, geben Sie folgendes an:

        <do action=all Name==*> 
      

      Der Stern "*" bedeutet: "Passt auf alles". Es werden also alle Einträge ausgegeben, allerdings sortiert nach dem Feld "Name". Dies ist (vor allem bei grossen Datenbanken) schneller als ein "sort=Name".
      ---

      Man kann aber nich alles wissen und dafür is das Forum ja auch da - vielleicht wäre eine Rubrik "Optimierung" aber nich schlecht in der entsprechende Tips gesammelt stünden... ;-)

      Naja, dass das obige so lange dauert ist kein Wunder: Du liest innerhalb einer (scheinbar grossen) Schleife (...while (get_next("spielplan")){...) _jedesmal_ eine komplette DB ein (...get "","ergebnisse","tendenz";...).

      Das ist aber sicher nicht nötig, es reicht ja völlig, sie _vor_ der Schleife einmal einzulesen und dann in der Schleife halt auf das Ergebnis zuzugreifen... Wie das im Detail aussieht hast Du nich gepostet, vielleicht ein

      while(get_next "tendenz")
      

      ?

     Antworten

    Beitrag von Timo (34 Beiträge) am Dienstag, 4.Juni.2002, 09:29.
    Re: @cb - optimierung

      Haiho,

      stimmt es steht da, wahrscheinlich habe ich es nicht gelesen, weil es in der "do" und "loop" Rubrik steht und ich die Befehle gar nicht benutze ;)

      Ich bin beim Programmieren auch über ein Stolperstein gestolpert (z.B. Datumsprobleme ... tauchte auch schon mehrmals in der Doku auf). So eine Tipps und Tricks / Optimierungs- rubrik wäre sicherlich hilfreich denke ich.

      Ersteinmal: Den Zugriff oben habe ich wegoptimiert, jetzt dauert die Seite keine 15-40 Sekunden mehr, nur noch 1.x, was hoffentlich akzetabel ist.

      Die Berechung in der Innerschleife war schon sinnvoll, aber ist egal was drinnen steht, schon der "get" Aufruf war der, der so lang dauerte. Ehrlich gesagt versteh ich aber immer noch nicht, warum wenn ich 65 mal '.get "","ergebnisse","tendenz";' aufrufe (egal wie die while Schleife dann aussieht usw.), warum das alleine ca. 9-10 Sekunden dauert??? Das bedeutet ja, dass der get-Aufruf das umfangreichste des ganzen Programms ist. Ein Optimierungstipp würde dann lauten:
      get Aufrufe reduzieren!
      

      Grüße

      Timo

     Antworten

    Beitrag von Timo (34 Beiträge) am Dienstag, 4.Juni.2002, 09:30.
    Re: @cb - optimierung

      "tauchte mehrmals im -Forum- auf..."

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 4.Juni.2002, 14:32.
    Re: @cb - optimierung

      Nee, steht doch garnich in der "do" und "loop" Rubrik ,-) Ist ne eigene Rubrik "Auf- und Abruf von Datenbanken"...

      Klar, 1.x is schon ok... Wobei <1 besser wäre, aber es kommt schon drauf an, was man genau macht...

      Naja, "get Aufrufe reduzieren!" als Optimierungstip kann man nich verallgemeinern - Du musst schon wissen, was Du machst: Ein

      get "Name==!bla";
      

      holt genau _einen_ Datensatz - das geht ratzfatz. Ein

      get "", "ergebnisse", "tendenz";
      

      holt die _komplette_ (!!) Datenbank "ergebnisse" - jetzt kommt es darauf an, wie gross die ist, wieviele Felder sie hat etc. Die Masse machts halt. Schau, 10 Sekunden / 65 = 0.15 Sekunden für das komplette Einlesen einer DB - das ist doch ein prima wert. Nur 65mal dasselbe, das summiert sich halt - und es ist ja nicht notwendig, weil Du die Daten ja definitiv nur _einmal_ einlesen musst, danach stehen sie ja im Speicher!

      Der allgemeine Optimierungstip lautet:

      Schleifen genau anschauen!

      ;-)

     Antworten


     
 Liste der Einträge von 46651 bis 46801:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!