2

SQLite で問題に直面しており、助けが必要です。SQLite プリコンパイル済み dll を使用して、C# .NET でアプリケーションを開発しています。私が使用しているバージョンは、x86 プロセッサの場合は「1.0.66.0」、x64 プロセッサの場合は「1.0.79.0」です。

次のコマンドを使用して結果を取得します

*using (DbDataReader reader = _database.ExecuteQuery(selectCommand))*

シナリオは次のとおりです。

#1 Platform target:x64 で exe をビルドし、x64 バージョンの SQLite をロードします。この場合、ExecuteQuery は selectCommand を実行し、結果 (37 行) を 1 秒で返します。

#2 Platform target:x86 で exe をビルドし、x86 バージョンの SQLite をロードします。この場合、ExecuteQuery は selectCommand を実行し、55 秒で結果 (37 行) を返します。

コードはまったく同じで、両方のタイプのプロセッサで実行するために変更されているのは sqlite dll のみであるため、非常に奇妙です。

この問題のトラブルシューティング方法について何か考えはありますか?

PS。データベースで同じコマンドを手動で実行すると、1 秒でデータが返されます。

4

1 に答える 1

-1

x64 バージョンは、クエリの実行中に x86 バージョンよりも多くの仮想空間を使用します。そのため、x86 プラットフォームの実行時間は x64 よりも長く、それを最小限に抑える唯一の方法は、クエリのテーブルにインデックスを追加することです。

于 2013-09-05T14:27:33.660 に答える