我在Compact Framework应用程序(SQLServer Compact Edition数据库)中遇到了一点数据库性能问题。
我的工作是:
使用SqlCeDataAdapter查询数据库中的某些数据,作为回报,我得到6行数据
sqlCeDataAdapter = new SqlCeDataAdapter(query, Sql_Connection);
然后我使用SqlCeDataAdapter填充方法用数据填充数据集。
sqlCeDataAdapter.Fill(resultSet);
循环数据集..
当我有300行数据时,整个函数的执行时间不到一秒,但如果我有大约10 000行数据,则需要大约6-7秒(在我的应用程序中它太多了)。 / p>
在这两种情况下,它都返回完全相同的行,但填充方法会将其减慢...
调用fill方法时是先查询数据库还是?
除了保持行数减少之外,我还可以做些什么吗?
此外,如果我更改查询以使数据库返回0行,它仍然需要相同的时间......
最好的问候
埃德蒙
答案 0 :(得分:2)
建议您避免在.NET CF上使用DataSet,因为它占用了太多内存,并且基本上将数据库复制到RAM中。如果需要数据绑定,请使用SqlCeResultSet,否则只需使用SqlCeDataReader
答案 1 :(得分:1)
谢谢你的帮助......
我发现了麻烦,桌子根本没有编入索引...
假设是,但数据库的创建者错过了它。
现在一切都运行得很快(也改为SqlCeDataReader而不是数据集)。
再次感谢ErikEJ和ctacke ......
/埃德蒙