# HG changeset patch # User Alain Mazy # Date 1705568683 -3600 # Node ID 6780dd8b0a660d800972b3192a0a10971333b7fe # Parent 392ac133a49136b7c25800bcfc6dddc500ac49dd fix latency measure for ODBC diff -r 392ac133a491 -r 6780dd8b0a66 Framework/Common/DatabaseManager.cpp --- a/Framework/Common/DatabaseManager.cpp Wed Jan 17 19:31:23 2024 +0100 +++ b/Framework/Common/DatabaseManager.cpp Thu Jan 18 10:04:43 2024 +0100 @@ -641,6 +641,16 @@ void DatabaseManager::StandaloneStatement::Execute(const Dictionary& parameters) { + ExecuteInternal(parameters, true); + } + + void DatabaseManager::StandaloneStatement::ExecuteWithoutResult(const Dictionary& parameters) + { + ExecuteInternal(parameters, false); + } + + void DatabaseManager::StandaloneStatement::ExecuteInternal(const Dictionary& parameters, bool withResults) + { try { std::unique_ptr query(ReleaseQuery()); @@ -652,7 +662,14 @@ statement_.reset(GetManager().GetDatabase().Compile(*query)); assert(statement_.get() != NULL); - SetResult(GetTransaction().Execute(*statement_, parameters)); + if (withResults) + { + SetResult(GetTransaction().Execute(*statement_, parameters)); + } + else + { + GetTransaction().Execute(*statement_, parameters); + } } catch (Orthanc::OrthancException& e) { diff -r 392ac133a491 -r 6780dd8b0a66 Framework/Common/DatabaseManager.h --- a/Framework/Common/DatabaseManager.h Wed Jan 17 19:31:23 2024 +0100 +++ b/Framework/Common/DatabaseManager.h Thu Jan 18 10:04:43 2024 +0100 @@ -253,6 +253,17 @@ } void Execute(const Dictionary& parameters); + + void ExecuteWithoutResult() + { + Dictionary parameters; + ExecuteWithoutResult(parameters); + } + + void ExecuteWithoutResult(const Dictionary& parameters); + + private: + void ExecuteInternal(const Dictionary& parameters, bool withResults); }; }; } diff -r 392ac133a491 -r 6780dd8b0a66 Framework/Plugins/IndexBackend.cpp --- a/Framework/Plugins/IndexBackend.cpp Wed Jan 17 19:31:23 2024 +0100 +++ b/Framework/Plugins/IndexBackend.cpp Thu Jan 18 10:04:43 2024 +0100 @@ -2884,13 +2884,11 @@ for (int i = 0; i < 11; i++) { - DatabaseManager::CachedStatement statement( - STATEMENT_FROM_HERE, manager, - "SELECT 1"); + DatabaseManager::StandaloneStatement statement(manager, "SELECT 1"); Orthanc::Toolbox::ElapsedTimer timer; - statement.Execute(); + statement.ExecuteWithoutResult(); measures.push_back(timer.GetElapsedMicroseconds()); }