Я использую драйвер JDBC для подключения базы данных sqlite из Matlab. Я определяю функцию, чтобы открыть базу данных, которая выглядит следующим образом:Производительность базы данных matlab sqlite
function db_conn = openDBConnection(sqldb_obj, configOptions)
try
sqldb_obj.dbConn = database(sqldb_obj.dbName, sqldb_obj.userName, sqldb_obj.password, sqldb_obj.JDBC_SQLITE_DRIVER, sqldb_obj.DB_URL);
db_conn = sqldb_obj.dbConn;
catch runtimeError
end
end
Каждый раз, когда это OpenConnection() вызывается до выполнения().
function result = execute(sqldb_obj, sql_statement, varargin)
sqldb_obj.openDBConnection();
curs = exec(sqldb_obj.dbConn, sql_statement);
if curs.ResultSet ~= 0
curs = fetch(curs);
if rows(curs) == 0
result = [];
else
result = curs.Data;
end
else
% for the insert query
result = curs.Data;
end
% Disconnect the database connection
close(curs);
end
Производительность очень медленная, когда я вставляю таблицу в цикл for. Из профилировщика я получаю, что для функции com.mathwork.toolbox.database.closeTheDatabaseConnection
требуется 754.595 секунд.
Как улучшить производительность и где проблема?
Спасибо.
Почему вы заново открываете базу данных для каждого запроса? –
Я не нашел хороший способ открыть базу данных только один раз. Можете ли вы назвать несколько хороших примеров для меня? Благодарю. – susanne