Sfoglia il codice sorgente

ENH: Improve caching of DICOM tags fixing begin/end transaction queries

See https://stackoverflow.com/questions/1711631/improve-insert-per-second-performance-of-sqlite
Andras Lasso 7 anni fa
parent
commit
d598168a0c
1 ha cambiato i file con 8 aggiunte e 2 eliminazioni
  1. 8 2
      Libs/DICOM/Core/ctkDICOMDatabase.cpp

+ 8 - 2
Libs/DICOM/Core/ctkDICOMDatabase.cpp

@@ -1303,9 +1303,15 @@ void ctkDICOMDatabasePrivate::precacheTags( const QString sopInstanceUID )
     values << value;
     }
 
-  this->beginTransaction();
+  QSqlQuery transaction( this->TagCacheDatabase );
+  transaction.prepare( "BEGIN TRANSACTION" );
+  transaction.exec();
+
   q->cacheTags(sopInstanceUIDs, tags, values);
-  this->endTransaction();
+
+  transaction = QSqlQuery( this->TagCacheDatabase );
+  transaction.prepare( "END TRANSACTION" );
+  transaction.exec();
 }
 
 //------------------------------------------------------------------------------