sqlite3を使用する.dllを作成しました。データベースに挿入を実行する挿入機能があります。
また、dllを使用して挿入を実行するテスト実行可能ファイルもあります。現在、sqliteと複数の接続を管理するその機能をテストしています。テストプログラムは無限ループに挿入します。擬似コードは次のようになります。
while(1) {
openDb();
doInsert();
closeDb();
}
基本的に、テストアプリの4つのバージョンを実行するように設定し、各バージョンはデータベースに文字(a、b、c、またはd)を挿入します。
現在、データベースはほぼ常にロックされているため、これは機能しません。1つまたは2つで正常に動作しますが、4つのプログラムすべてを実行すると、1つの大きな競合状態を作成するようには機能しません。
私はドキュメントを見て、ここで指定されているSQLITE_OPEN_FULLMUTEXのようなものに出くわしました:http ://www.sqlite.org/c3ref/open.html
sqlite3は、複数のexeが同じDBに一度に書き込もうとしていることに対処するメカニズムを提供しますか?それとも、負荷テストでsqliteを強く押しすぎているのでしょうか?独自の接続プールを作成する必要がありますか?
この問題に関するどんな助けも素晴らしいでしょう。ありがとう。