Einzelnen Beitrag anzeigen
  #4  
Alt 23.05.2018, 15:08:04
AlexD AlexD ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 186
AW: mehrere Tabellen über Timestamp abfragen

Nein, hatte keinerlei Indizes angelegt.
Hab nun einen Unique Index über `timestamp`in jeder Tabelle gelegt.

Auch die Abfrage hab ich nochmals verändert so das ich aktuell auf ca 40 Sekunden (Zeitfraum 01.05.2018 bis 14.05.2018) für die Abfrage komme.
Hab den Zeitraum mal geändert, da ich ja ggf. die Daten eines Jahres auswerten möchte also (01.01.2018 - 14.05.2018)... läuft sich das Script wohl tot, nach 15 Min. noch kein Ergebnis.

PHP-Code:
// Datum der Form dd.mm.yyyy umwandeln in YYYY-mm-dd
    
if($von !== NULL && $bis !== NULL){

        
$vondatum_split explode(".",$von);
        
$vondatum $vondatum_split[2]."-".$vondatum_split[1]."-".$vondatum_split[0];

        
$bisdatum_split explode(".",$bis);
        
$bisdatum $bisdatum_split[2]."-".$bisdatum_split[1]."-".$bisdatum_split[0];
        
        
$zeitraum " BETWEEN  '".$vondatum."' AND '".$bisdatum."'";
    } elseif (
$jahr !== NULL){

        
$zeitraum " YEAR(heizung_webdaten.timestamp) = ".$jahr."";
    }

    
$sql_query "SELECT hzw.*, sthz.timestamp AS timestamp_strom, sthz.WirkenergieSigmaL_imp, sths.WirkleistungSigmaL
                    FROM (SELECT *, CONVERT(DATE_FORMAT(timestamp,'%Y-%m-%d-%H:%i:00'), DATETIME) AS w_timestamp FROM heizung_webdaten WHERE timestamp "
.$zeitraum.") hzw,
                         (SELECT * FROM strom_heizungsdaten WHERE timestamp "
.$zeitraum.") sthz,
                         (SELECT * FROM strom_hausdaten WHERE timestamp "
.$zeitraum.") sths
                    WHERE hzw.wp_status = 12
                     AND hzw.w_timestamp = CONVERT(DATE_FORMAT(sthz.timestamp,'%Y-%m-%d-%H:%i:00'),DATETIME)
                     AND hzw.w_timestamp = CONVERT(DATE_FORMAT(sths.timestamp,'%Y-%m-%d-%H:%i:00'),DATETIME)
                ORDER BY hzw.w_timestamp"
;
                
    echo 
$sql_query."<br>";
    
    
$result $mysqli->query($sql_query);
    echo 
$mysqli->error;
    while(
$daten $result->fetch_assoc()){

        echo 
$daten['timestamp']." : ".$daten['wp_status']." => HZG-Strom_Daten: ".$daten['timestamp_strom']." ->  ".$daten['WirkenergieSigmaL_imp']."kWh |  akt. Verbrauch:".$daten['WirkleistungSigmaL']." kW<br>";
    } 

Geändert von AlexD (23.05.2018 um 15:24:26 Uhr)
Mit Zitat antworten