So habe ich Tabellen mit der folgenden Struktur:SQLite-Update Abfrageoptimierung
TimeStamp,
var_1,
var_2,
var_3,
var_4,
var_5,...
Dieser enthält etwa 600 Spalten namens var _ ##, analysiert der Benutzer einige von einer Maschine gespeicherten Daten, und ich habe alle Nullwerte aktualisieren innerhalb dieser Tabelle bis zum letzten gültigen Wert. Im Moment benutze ich die folgende Abfrage:
update tableName
set var_## =
(select b.var_## from tableName as
where b.timeStamp <= tableName.timeStamp and b.var_## is not null
order by timeStamp desc limit 1)
where tableName.var_## is null;
Problem jetzt ist die zahme dauert es diese Abfrage für alle Spalten zu laufen, ist es eine Möglichkeit, diese Abfrage zu optimieren?
UPDATE: das ist der Ausgangsabfrageplan, wenn te Abfrage für eine Spalte executin:
update wme_test2
set var_6 =
(select b.var_6 from wme_test2 as b
where b.timeStamp <= wme_test2.timeStamp and b.var_6 is not null
order by timeStamp desc limit 1)
where wme_test2.var_6 is null;
Ich würde dies in 2 Tabellen teilen, so dass Sie keine 600 Spalten Tabelle haben – AndrewK