C#.Net CF SqlCeDataAdapter DataSet填充速度很慢

时间:2012-02-21 10:42:01

标签: c# compact-framework sql-server-ce

我在Compact Framework应用程序(SQLServer Compact Edition数据库)中遇到了一点数据库性能问题。

我的工作是:

  1. 使用SqlCeDataAdapter查询数据库中的某些数据,作为回报,我得到6行数据 sqlCeDataAdapter = new SqlCeDataAdapter(query, Sql_Connection);

  2. 然后我使用SqlCeDataAdapter填充方法用数据填充数据集。 sqlCeDataAdapter.Fill(resultSet);

  3. 循环数据集..

  4. 当我有300行数据时,整个函数的执行时间不到一秒,但如果我有大约10 000行数据,则需要大约6-7秒(在我的应用程序中它太多了)。 / p>

    在这两种情况下,它都返回完全相同的行,但填充方法会将其减慢...

    调用fill方法时是先查询数据库还是?

    除了保持行数减少之外,我还可以做些什么吗?

    此外,如果我更改查询以使数据库返回0行,它仍然需要相同的时间......

    最好的问候

    埃德蒙

2 个答案:

答案 0 :(得分:2)

建议您避免在.NET CF上使用DataSet,因为它占用了太多内存,并且基本上将数据库复制到RAM中。如果需要数据绑定,请使用SqlCeResultSet,否则只需使用SqlCeDataReader

答案 1 :(得分:1)

谢谢你的帮助......

我发现了麻烦,桌子根本没有编入索引...

假设是,但数据库的创建者错过了它。

现在一切都运行得很快(也改为SqlCeDataReader而不是数据集)。

再次感谢ErikEJ和ctacke ......

/埃德蒙