代码之家  ›  专栏  ›  技术社区  ›  Ben M

设备上的SQL Server CE性能

  •  0
  • Ben M  · 技术社区  · 15 年前

    我的SQL Compact数据库非常简单,其中一个表上只有三个表和一个索引(表的行数为200K,其他两个表的行数不足100)。

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

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

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

    对于记录,我应该补充一点,数据库只能由设备应用程序读取——该代码不做任何修改。

    2 回复  |  直到 13 年前
        1
  •  1
  •   user227997    15 年前

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

    更多信息在这里: 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

        2
  •  0
  •   fupsduck    15 年前

    因为数据库是只读的,并且如果“初始化的”数据库不再膨胀,我只需将其放入设置中就可以了。只是确认你的方法是有意义的。