Create SQL indices on energy log DB for improved resampling performance
This speeds up resampling at startup by approx 15 times.create-indices
parent
161c237427
commit
fb591e79e0
|
|
@ -7,6 +7,7 @@
|
|||
#include <QSqlQuery>
|
||||
#include <QSqlError>
|
||||
#include <QSqlRecord>
|
||||
#include <QSqlIndex>
|
||||
#include <QSettings>
|
||||
|
||||
#include <QLoggingCategory>
|
||||
|
|
@ -453,6 +454,11 @@ bool EnergyLogger::initDB()
|
|||
return false;
|
||||
}
|
||||
}
|
||||
m_db.exec("CREATE INDEX IF NOT EXISTS idx_powerBalance ON powerBalance(sampleRate, timestamp);");
|
||||
if (m_db.lastError().isValid()) {
|
||||
qCWarning(dcEnergyExperience()) << "Error creating powerBalance table index in energy log database. Driver error:" << m_db.lastError().driverText() << "Database error:" << m_db.lastError().databaseText();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_db.tables().contains("thingPower")) {
|
||||
qCDebug(dcEnergyExperience()) << "No \"thingPower\" table in database. Creating it.";
|
||||
|
|
@ -470,6 +476,11 @@ bool EnergyLogger::initDB()
|
|||
return false;
|
||||
}
|
||||
}
|
||||
m_db.exec("CREATE INDEX IF NOT EXISTS idx_thingPower ON thingPower(thingId, sampleRate, timestamp);");
|
||||
if (m_db.lastError().isValid()) {
|
||||
qCWarning(dcEnergyExperience()) << "Error creating thingPower table index in energy log database. Driver error:" << m_db.lastError().driverText() << "Database error:" << m_db.lastError().databaseText();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_db.tables().contains("thingCache")) {
|
||||
qCDebug(dcEnergyExperience()) << "No \"thingCache\" table in database. Creating it.";
|
||||
|
|
|
|||
Loading…
Reference in New Issue