C#,MS ACCESS - OleDb Command.ExecuteReader()需要很长时间才能执行

时间:2016-03-16 21:44:28

标签: c# sql ms-access-2010 oledb rdbms

我的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;
            }
        }
    }
}

0 个答案:

没有答案