Wing_Zero
18-08-2010, 10:09
Ciao a tutti, sono 2 giorni che sto sbattendo la testa su questo problema...
Una volta completata la mia piccola applicazione sto buttando un occhio sulle prestazioni ed ho scoperto una cosa assurda: ogni volta che eseguo una query di INSERT / UPDATE il tempo aumenta in maniera lineare!
Andando in dettaglio, ho un semplice QSqlDatabase in QSQLITE:
db = QSqlDatabase::addDatabase(dbDriver);
db.setDatabaseName(dbPath + dbName);
db.open();
if(!db.isOpen())std::cerr << "db closed!";
QString query = "CREATE TABLE IF NOT EXISTS MovieDB ";
query += "('Code' varchar(255)...etc... )";
QSqlQuery queryResult= QSqlQuery(db); //db è un QSqlDatabase, variabile di istanza
queryResult.exec (query);
std::cerr << qPrintable(queryResult.lastError().text());
ogni volta che premendo un tasto ed effettuo questa operazioni di update:
QString query = "UPDATE...etc....";
QSqlQuery queryResult= QSqlQuery(db);
queryResult.exec (query);
std::cerr << qPrintable(queryResult.lastError().text());
emit doneUp();
return true;
inpiego sempre piu' tempo: ad esempio la prima volta 0,5 secondi, poi la seconda volta che l'effettuo 1 secondo, poi 1,5 secondi...
Spegnendo e riaccendendo il programmino si resetta: inizia con 0.5 secondi...riclicco: 1,0 secondi...poi 1,5 secondi e così via...
Stesso problema per le query di update/insert mentre per le select nessun problema.
Ho già verificato che il lag dipende solo ed esclusivamente dall'esecuzioni delle query e non da altro codice.
Non so che fare...grazie anticipate a chi mi sa dare almeno qualche dritta...
EDIT: RISOLTO POTETE CHIUDERE. Mi era scappata una QObject::connect dentro ad un for che replicava x volte la query -.-"
Una volta completata la mia piccola applicazione sto buttando un occhio sulle prestazioni ed ho scoperto una cosa assurda: ogni volta che eseguo una query di INSERT / UPDATE il tempo aumenta in maniera lineare!
Andando in dettaglio, ho un semplice QSqlDatabase in QSQLITE:
db = QSqlDatabase::addDatabase(dbDriver);
db.setDatabaseName(dbPath + dbName);
db.open();
if(!db.isOpen())std::cerr << "db closed!";
QString query = "CREATE TABLE IF NOT EXISTS MovieDB ";
query += "('Code' varchar(255)...etc... )";
QSqlQuery queryResult= QSqlQuery(db); //db è un QSqlDatabase, variabile di istanza
queryResult.exec (query);
std::cerr << qPrintable(queryResult.lastError().text());
ogni volta che premendo un tasto ed effettuo questa operazioni di update:
QString query = "UPDATE...etc....";
QSqlQuery queryResult= QSqlQuery(db);
queryResult.exec (query);
std::cerr << qPrintable(queryResult.lastError().text());
emit doneUp();
return true;
inpiego sempre piu' tempo: ad esempio la prima volta 0,5 secondi, poi la seconda volta che l'effettuo 1 secondo, poi 1,5 secondi...
Spegnendo e riaccendendo il programmino si resetta: inizia con 0.5 secondi...riclicco: 1,0 secondi...poi 1,5 secondi e così via...
Stesso problema per le query di update/insert mentre per le select nessun problema.
Ho già verificato che il lag dipende solo ed esclusivamente dall'esecuzioni delle query e non da altro codice.
Non so che fare...grazie anticipate a chi mi sa dare almeno qualche dritta...
EDIT: RISOLTO POTETE CHIUDERE. Mi era scappata una QObject::connect dentro ad un for che replicava x volte la query -.-"