クエリを実行する必要がある Windows モバイル デバイスに大きな.sdfデータベース ファイルがあります。ファイルには 40,000 レコードがあります。クエリの実行にかかる時間を短縮しようとしています。現在は約 8 秒で、ユーザーが結果を待つのにかなりの時間がかかります。
最初は、データセットにリンクされたアダプターDataSetを確立しSqlCeConnectionて埋めることで、 を使用していました。と同様に試してみましたがDataTable、パフォーマンス結果はほぼ同じでした。約 8 秒でクエリを使用DataSetまたは終了します。DataTable
私が最後に試したのは、Reader(). 少し良い結果が得られますが、0.5 秒しかかかりません (クエリは ~ 7.5 秒で終了します)。
string lastName;
lastName = "";
string connectionString = @"Data Source='/Path/To/MyDatabase.sdf' Max Database Size = 128; Max Buffer Size = 1024;";
string strSql = "SELECT LastName FROM employee_list WHERE LastName = 'Johnson'";
using (SqlCeConnection mConnection = new SqlCeConnection(connectionString))
{
mConnection.Open();
using (SqlCeCommand mCommand = new SqlCeCommand(strSql, mConnection))
{
using (SqlCeDataReader reader = mCommand.ExecuteReader())
{
while (reader.Read())
{
lastName = (string)reader["LastName"];
}
}
mCommand.Dispose();
}
mConnection.Close();
mConnection.Dispose();
}
どうすればこれをより速くすることができますか?