我正在进行一个使用并发性的项目。有X线程在应用程序中工作,执行相同的任务,基本上是从db加载数据并处理数据,并将其发送到队列中,供其他工作线程检索并进一步处理。在PreparedStatement/Statement未关闭之前,我们对数据库访问进行了一些更改,这是一个混乱的过程。我们已经看到了一个小的变化,在处理时间在白天,之前应用程序可以处理500万在3-4个小时,但它是困难的,它需要6-8小时。变化不是突如其来的,但随着时间的推移它慢慢地增长了。我开始怀疑数据库访问的更改是否会影响它。目前的情况如下:
每个存储库实现IRepository:
public interface IReposi
我在我的SQLite应用程序中使用了C++。将SQLite线程模式设置为多线程,以便允许共享单个数据库连接的多个线程。在这个场景中,我是否需要包装数据库操作,如下所示?还是这不是必需的?
void SomeClass::someDbOperationOnAThread(void *arg) {
sqlite3_mutex_enter(sqlite3_db_mutex(db));
// Perform some queries on the database
sqlite3_mutex_leave(sqlite3_db_mutex(db));
}