瀏覽代碼

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 年之前
父節點
當前提交
d598168a0c
共有 1 個文件被更改,包括 8 次插入2 次删除
  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();
 }
 
 //------------------------------------------------------------------------------