An die Geschwindigkeitsoptimierer - 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 Marco (840 Beiträge) am Dienstag, 30.September.2003, 14:32.
    An die Geschwindigkeitsoptimierer

      Hallo Geschwindigkeitsoptimierer,


      nach den Diskussionen um Serverressourcen habe ich mir meine Scripts auch mal kritisch angesehen und eine extrem langsame Datenbankabfrage ausfindig gemacht.

      Auf meiner Startseite (www.lsn-info.de) habe ich eine Vielzahl von Datenbankzugriffen. Bis zum letzten Zugriff (ca. 0.2 Sekunden) ist auch noch alles im Grünen Bereich.


      Die Abfrage:

      get "Ausschuss<>LSN sort=-Datum,-Id range=0,3", "../bericht/berichte", "FA";
      

      benötigt aber alleine >0.5 Sekunden !!!

      Kurz ein Paar Infos: Die DB "berichte" hat etwas mehr als 500 Einträge. Das Feld "Ausschuss" ist ein Option-Feld mit Textsortierung. Die Option-Felder sind "LSN, Schwimmen, Wasserball, Synchronschwimmen und Jugend".

      Ich habe die Abfrage mal spasseshalber umgestellt auf:

      get "Ausschuss==Jugend|Ausschuss==Schwimmen|Ausschuss==Wasserball|Ausschuss==Synchronschwimmen sort=-Datum,-Id range=0,3", "../bericht/berichte", "FA";
      

      ...und dabei 1-2 Zentelsekunden eingespart, mit der Einschränkung, dass das Hinzufügen eines zustätzlichen Ausschusses die Anpassung der Abfrage erfordert :-(

      Hat jemand eine Idee, warum die Abfrage so irre lange dauert?

      Wer es sich einmal ansehen mag: Neben "Aktuelles aus den Fachsparten" findet Ihr die Ausgabe von runtime vor (0.2-0.3s) und nach (>0.8s) der o.g. get-Abfrage.

      Für Hilfen wäre ich dankbar.


      mfg

      Marco


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Marco (840 Beiträge) am Dienstag, 30.September.2003, 14:32.
    An die Geschwindigkeitsoptimierer

      Hallo Geschwindigkeitsoptimierer,


      nach den Diskussionen um Serverressourcen habe ich mir meine Scripts auch mal kritisch angesehen und eine extrem langsame Datenbankabfrage ausfindig gemacht.

      Auf meiner Startseite (www.lsn-info.de) habe ich eine Vielzahl von Datenbankzugriffen. Bis zum letzten Zugriff (ca. 0.2 Sekunden) ist auch noch alles im Grünen Bereich.


      Die Abfrage:

      get "Ausschuss<>LSN sort=-Datum,-Id range=0,3", "../bericht/berichte", "FA";
      

      benötigt aber alleine >0.5 Sekunden !!!

      Kurz ein Paar Infos: Die DB "berichte" hat etwas mehr als 500 Einträge. Das Feld "Ausschuss" ist ein Option-Feld mit Textsortierung. Die Option-Felder sind "LSN, Schwimmen, Wasserball, Synchronschwimmen und Jugend".

      Ich habe die Abfrage mal spasseshalber umgestellt auf:

      get "Ausschuss==Jugend|Ausschuss==Schwimmen|Ausschuss==Wasserball|Ausschuss==Synchronschwimmen sort=-Datum,-Id range=0,3", "../bericht/berichte", "FA";
      

      ...und dabei 1-2 Zentelsekunden eingespart, mit der Einschränkung, dass das Hinzufügen eines zustätzlichen Ausschusses die Anpassung der Abfrage erfordert :-(

      Hat jemand eine Idee, warum die Abfrage so irre lange dauert?

      Wer es sich einmal ansehen mag: Neben "Aktuelles aus den Fachsparten" findet Ihr die Ausgabe von runtime vor (0.2-0.3s) und nach (>0.8s) der o.g. get-Abfrage.

      Für Hilfen wäre ich dankbar.


      mfg

      Marco

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 30.September.2003, 15:44.
    Re: An die Geschwindigkeitsoptimierer - Optimieren macht Spass ;-)

      Also fang ich mal:

      "sort" braucht ne gewisse Weile. Brauchts die 2. Sortierung mit "-Id" wirklich? Wenn nein, versuch mal:

      get "Datum==* Ausschuss<>LSN sort=- range=0,3", "../bericht/berichte", "FA"; 
      

      "sort=-" ist ein Sonderfall, weil da nicht wirklich umsortiert wird, sondern nur alles komplett umgedreht - das geht viel schneller...

      Selbst das könnte man noch wegmachen, aber das ist dann fast Erbsnzählerei. Wenn mans drauf anlegt:

      get "Datum==* Ausschuss<>LSN range=-3,3", "../bericht/berichte", "FA"; 
      

      $out="";
      while(get_next "FA")
      {
        $out=".....ausgabe.....".$out;
      }
      out $out;
      

      Man dreht hier nicht erst das _komplette_ Ergebnis um, um dann die obersten 3 zu holen, sondern holt sich die _untersten_ 3 und gibt sie dann in umgekehrter Reihenfolge aus ;-)

      Ansonsten könnte das hier einer der seltenen Fällen sein, in denen es Sinn macht, selbst die Bedingung abzufragen:

      get "Datum==* sort=-", "../bericht/berichte", "FA"; 
      

      $cnt=0;
      while(get_next "FA")
      {
        if($Ausschuss ne "LSN")
        {
          out "....Ausgabe......";
          last if ++$cnt>3;
        }
      }
      

      Hängt aber davon ab wie oft "LSN" im Verhältnis zu den anderen Möglichkeiten vorkommt... Müsste man austesten ;-)

      So, dass ist das was mir dazu einfällt, bin mal gespannt ob noch andere, bessere Ideen auftauchen ;-) Ansonsten sind 0.5 Sekunden auch nich soooo schlecht...

     Antworten

    Beitrag von Marco (840 Beiträge) am Dienstag, 30.September.2003, 16:54.
    Re: An die Geschwindigkeitsoptimierer - Meister, ich bin unwürdig ;-)

      Respekt!

      das war eine glatte Beschleunigung von 0,5 auf 0,01 Sekunden mit der 1. Variante :-)

      Ich wußte gar nicht, dass in sort soviel Optimierungspotential steckt.

      Danke... auch im Namen aller anderen Netdirekt-Kunden, denen ich ab sofort mehr Ressourcen übrig lasse :-)


      Marco

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 30.September.2003, 21:23.
    Re: An die Geschwindigkeitsoptimierer - Meister, ich bin unwürdig ;-)

      Ja, Sortieren ist -trotz Quicksort- keine einfache, schnelle Geschichte ,-) Vor allem bei vielen DS kann das reinhauen. Regel: Wenns geht "sort" (ausser sort=-) vermeiden ;-)

      Dass es gleich soviel bringt hätte ich jetzt auch nich gedacht...

      > auch im Namen aller anderen Netdirekt-Kunden, denen ich ab sofort mehr Ressourcen übrig lasse :-)
      

      Ich denke, wenn man mal alle Skripte von allen Kunden durchoptimieren würde, könnte man noch 3mal soviel Kunden auf den Server draufpacken ;-))

     Antworten


     
 Liste der Einträge von 34651 bis 34801: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.04s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!