SqlCeConnection比SqlConnection慢

时间:2018-03-20 15:49:32

标签: c# performance sql-server-ce sqlconnection

在我的C#app中,我可以在Online SQL-Server连接和本地SQLCE(sdf文件)连接之间切换。两个DB在结构和索引上都是相同的。

但是通过SqlCeConnection使用本地SDF文件要慢得多 - 在进行大量调用时要慢20倍。

示例:

using (DbConnection connection = new SqlCeConnection(ConnectionString))
{
    connection.Open();
    using (DbCommand cmd = GetSqlCommand("select * from t", connection))
    {
        try
        {
            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                ...
            }
            reader.Close();
        }
        catch (Exception e)  {  }
    }
}

这里发生了什么 - 我能优化吗?

1 个答案:

答案 0 :(得分:1)

在应用的生命周期内保持单个连接打开和未使用,SQL Compact没有连接池。

此外,由于以下原因,打开SqlCeConnection可能会很慢:

  • 已在其他平台上创建数据库文件
  • RSA文件夹上的ACL(访问控制列表)已损坏
  • 无效的Internet代理配置

此处有更多信息:http://erikej.blogspot.dk/2013/08/faq-why-is-opening-my-sql-server.html