设备上的SQL Server CE性能

时间:2010-01-04 22:32:56

标签: performance windows-mobile sql-server-ce

我的SQL Compact数据库非常简单,其中一个表只有三个表和一个索引(表中有200k行;另外两个表少于一百个)。

我的Compact Framework应用程序第一次在目标Windows Mobile设备上使用.sdf文件时,系统会挂起一分钟,同时对数据库执行“某些操作”:部署时,数据库为17兆字节,在第一次使用后,气球达到24兆。

所有后续使用都非常快,所以我假设在第一次使用期间正在进行某种初始化/索引构建。我宁愿不让用户接受这个延迟,所以我想知道这个初始化过程是什么以及它是否可以在部署之前执行。

目前,我已将“初始化”数据库复制回我的桌面以便在安装项目中使用,但我真的希望有更好的答案/解决方案。我在VS数据库属性对话框中尝试过“完全压缩/修复”,但这没有任何区别。有什么想法吗?

对于记录,我应该补充说,数据库只能从设备应用程序中读取 - 该代码不会进行任何修改。

2 个答案:

答案 0 :(得分:1)

是的,它会重新创建索引,因为数据库是在台式计算机上创建或打开的。将索引数据库从设备复制到您的设置中。

更多信息: http://blogs.msdn.com/sqlservercompact/archive/2009/04/01/after-moving-the-database-from-one-platform-to-other-the-first-sqlceconnection-open-takes-more-time.aspx

答案 1 :(得分:0)

由于db是只读的,如果“初始化”db不再膨胀,我只需将其放入设置即可。只是确认你的方法是有道理的。