Script braucht 515 Sekunden :(

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    also total bescheuert bin ich glaube ich auch nicht

    Ich mache nicht 1500 mal dieselbe Abfrage ohne ändernde Werte. Zumindestens ist das nicht was ich will. *g*

    Kommentar


    • #17
      @ Abraxax:

      Find ich aber auch, also 1500 Abfragen sind unvertretbar.

      Kommentar


      • #18
        also nochmal:

        Ich dachte gerade so ein Neuronenblitz durch mein Hirn fliegen sehen zu haben, war aber wohl doch nix

        Wenn ich eine einzige Abfrage mache bleibt das Problem, dass ich immer von dem Zeitraum Heute (kann natürlich auch ein Tag der Vergangenheit sein) bis zum Zeitraum Heute -$n wissen muss ob der heutige Closewert höher ist als der höchste Wert in den letzen $n Tagen.

        Grüße
        cu LaHood

        Kommentar


        • #19
          Kannst du doch alles berechnen.

          Kommentar


          • #20
            dann mache ZWEI abfragen ....

            eine für heute

            und EINE für die letzten $n tage. aber nicht jeder tag einzeln bitte.

            dann müsste es aber gehen, oder?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #21
              @ Abraxas

              aber das würde die Rechenzeit doch nicht geringer machen wenn ich das in ein Array schreibe, oder wie meinst du das?

              Kommentar


              • #22
                @LaHood
                Als erstes schau mal, dass Du den Connect String mit der DB außerhalb der Schleife positionieren kannst.

                Du hast ein "Order by Close". Wenn Du nur eine Record der Abfrage bnötigst kannst Du Limit verwenden. Das ist aber aus Deinem Sample nicht so ersichtlich, könnte aber sein.

                sql4="SELECT * FROM us_dax_frankfurt WHERE Date BETWEEN '$vonDate' AND '$bisDate' ORDER BY Close DESC LIMIT 0,1";

                Gibts Du Speicher frei mit mysql_free_result()?

                Wenn man die Tabellenstruktur, -aufbau kennen würde könnte man Dir vielleicht besser helfen.

                Kommentar


                • #23
                  Das große Problem ist, dass du 1500 Mal deine SQL-DB connecten musst.

                  Ein Array nimmt zwar auch etwas an resourcen ein, aber nicht so gewalteig.

                  Das ist so, als ob du aus nem Glas trinkst.
                  Flasche auf, einschütten, Flasche zu, Flasche auf, einschütten, ....

                  Oder eben aus ner Flasche
                  Flasche auf, trinken, Flasche zu.

                  Was ist schneller?

                  Super Beispiel, oder?

                  Kommentar


                  • #24
                    Aus der Flasche ?

                    Kommentar


                    • #25
                      @ Hand

                      nach aussen legen kann ich das nicht weil die Schleife von einer anderen DB Abfrage kommt.
                      Verstehe ich das richtig dass mit Limit die Anzahl der Datensätze festgelegt wird die rausgezogen werden sollen? Macht ja Sinn da ich nur den Maxwert von Close brauche.

                      Nein den Befehl zum Speicherfreigeben kenne ich nicht.

                      @Abraxax,

                      *gg* ja im Grunde stimmt das mit den 2 Abfragen. Nur dann hätte ich nach deinem Vorschlag doppelt soviele Abfragen wie ich bereits schon habe, da ich jeden Tag der 1700 Datensätze plus die 200 Tage 1700 mal abfragen muss, weil ich für jeden Tag ein einzelnes Ergebnis brauche.

                      Aber ich teste jetzt mal das Limit. Ma gucken was der timestamp dazu sagt *g*

                      Grüße
                      cu LaHood

                      Kommentar


                      • #26
                        ok

                        Hand bekommt schonmal den Sonderzuschlag. Laufzeit konnte auf 158 Sek. reduziert werden. Es geht bestimmt noch tiefer *g*


                        thx
                        Grüße
                        cu LaHood

                        Kommentar


                        • #27
                          @LaHood
                          dass du auch noch für jeden der tage davor das einzeln haben musst, stand da aber nicht ....

                          wissen muss ob der heutige Closewert höher ist als der höchste Wert in den letzen $n Tagen.


                          hast du auch schon mal die variante mit dem array getestet?
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #28
                            @abraxax

                            lol ich steig hier langsam selber nicht mehr durch welche Tage von welchen abgezogen werden sollen

                            Kannst du mir nochmal einen Hint geben wie das genau aussehen soll mit dem Array?

                            Das einzige was mir mit einem Array eingefallen ist, ist die Abfrage für jeden Tag zu machen und den Maxwert dann in das Array zu schreiben. Wären dann aber auch 1700 Abfragen, oder wie jetzt?

                            Kommentar


                            • #29
                              übrigens @ Hand,

                              das rauslegen der:

                              PHP-Code:
                                $connection4=mysql_connect("$host","$user","$password");
                                    
                              mysql_select_db($database,$connection4); 
                              bringt genau eine Sekunde Vorteil

                              Kommentar


                              • #30
                                nein. du machst EINE abfrage über ALLE tage und schreibst diese daten in ein array.

                                in einem array kann man nämlich auch suchen

                                EDIT:
                                wie sieht denn deine tabelle aus

                                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                                Kommentar

                                Lädt...
                                X