dedlfix: Nachschlag, Tag 3

Beitrag lesen

Hi!

Nun noch eine Frage zur Performance. Welche der Lösungen ist performanter. Ich habe in mein Beispiel ja nun bereits die Löung der 2 temporären Tabellen adaptiert.
Ich würde aber zu Gunsten besserer Performance nochmal auf die Subselect-Lösung umstricken.
Was meinst Du?

Eine Lösung in einem Statement ist anzunehmenderweise besser, weil hier der Optimizer noch was rausholen kann, wenn es was zu holen gibt. Bei der Temp-Tabelle kann er das nicht, denn die könnte ja auch noch für andere Querys vorgesehen sein. Da kann er nur die Statements isoliert abarbeiten.

Was auch die Performance belastet, sind Funktionsaufrufe - also nicht unbedingt dass sie aufgerufen wird, sondern dass jeder Wert in der Tabellenspalte einzeln durchzurechnen ist. Kann der Feldinhalt direkt genommen werden, so kann dieser Zugriff eventuell durch einem Index beschleunigt werden. Ich weiß nicht, wie effizient das Umrechnen eines Timestamps im Gegensatz zu einem DateTime-Wert ist, kann mir aber vorstellen, dass das Extrahieren von Information aus einem DateTime-Wert einfacher anzustellen geht, als erst die Sekunden in ein Datum umrechnen zu müssen. Vielleicht lässt sich mit einem DateTime-Feld und EXTRACT(YEAR_MONTH FROM feld) ein schnellerer Zugriff hinbekommen. Dazu müsstest du aber von einem Timestamp im Stringfeld auf ein DATETIME umsteigen. - Beim Join bringt dir das übrigens nichts mehr, denn da sind nur noch 12 Werte vorhanden, aber beim Gruppieren kann dir das Punkte bringen.

Bevor du jedoch solche Performance-Verbesserungen versuchst, solltest du nach Gefühl oder mit Messung feststellen, ob dir die derzeitige Laufzeit zu lang ist. Wenn ja, dann miss exakt nach und vergleiche den Wert mit einer Messung nach dem Optimierungsversuch.

Lo!

0 54

Problem bei einer Query

Franco
  • datenbank
  1. 0
    suit
  2. 0
    dedlfix
    1. 0
      Franco
      1. 0
        Vinzenz Mai
        1. 0
          Franco
          1. 0
            dedlfix
            1. 0
              Franco
              1. 0
                dedlfix
                1. 0
                  Franco
                  1. 0
                    Vinzenz Mai
                    1. 0
                      Franco
                      1. 0
                        dedlfix
                        1. 0
                          Franco
                          1. 0
                            dedlfix
                            1. 0
                              Franco
                              1. 0
                                dedlfix
                                1. 0
                                  Franco
                                  1. 0

                                    Code zum Nachbasteln

                                    Franco
                                    1. 0
                                      dedlfix
                                      1. 0
                                        dedlfix
                                        1. 0
                                          Vinzenz Mai
                                        2. 0
                                          Franco
                                          1. 0
                                            Vinzenz Mai
                                            1. 0

                                              Nachschlag

                                              Franco
                                              1. 0
                                                Ilja
                                                1. 0
                                                  dedlfix
                                                  1. 0
                                                    Franco
                                                  2. 0
                                                    Ilja
                                              2. 0
                                                dedlfix
                                                1. 0
                                                  Franco
                                                  1. 0
                                                    Vinzenz Mai
                                                    1. 0
                                                      Franco
                                                  2. 0
                                                    dedlfix
                                                    1. 0
                                                      Franco
                                                      1. 0

                                                        Nachschlag, Tag 3

                                                        Franco
                                                        1. 0
                                                          dedlfix
                                                          1. 0
                                                            Franco
                                                            1. 0
                                                              dedlfix
                                                              1. 0
                                                                Franco
                                                                1. 0
                                                                  Franco
                                                                2. 0
                                                                  dedlfix
                                            2. 0
                                              Franco
                          2. 0
                            Ilja
                  2. 0
                    dedlfix
                    1. 0
                      Franco
                      1. 0
                        dedlfix
    2. 0
      Franco
      1. 0
        dedlfix
        1. 0
          Franco
          1. 0
            dedlfix
        2. 0
          Franco
          1. 0
            dedlfix
            1. 0
              Franco