我的MS Access数据库中有一个表,其中包含60K +行和 我需要每30秒采取50个最新行。
我使用此查询:
"SELECT TOP 50 * FROM MY_TABLE ORDER BY ID DESC"
问题是,偶尔(+ - 1/50)查询执行时间超过10秒,而平均时间则为0.03秒。
我遇到了10K行的相同行为,只有5行,但延迟较小。
1)是否有人曾经使用Command.ExecuteReader()函数体验过与MS Access或类似的东西?这是C#问题还是MS ACCES问题?
C# - 当我执行我的阅读器时,延迟会偶尔出现
RunSQLReaderMyTable(myCommand.ExecuteReader());
问题不在RunSQLReaderMyTable函数中,因为我有时间表,我可以看到MyCommand.ExecuteReader()是问题。
//SELECT ROWS FROM MY_TABLE
public static DataTable SelectTopMyTable()
{
using (OleDbConnection con = new OleDbConnection(ConnStr))
{
string tmpStr = "SELECT TOP 50 * FROM HISTORIQUE ORDER BY ID DESC";
using (OleDbCommand myCommand = new OleDbCommand(tmpStr, con))
{
if (IsConnectedToAccess())
{
try
{
con.Open();
return RunSQLReaderMyTable(myCommand.ExecuteReader());
catch (Exception err)
{
MessageBox.Show(err.ToString());
return null;
}
else
{
MessageBox.Show("Erreur de connexion a Access. Veuillez tenter de vous reconnecter.");
return null;
}
}
}
}