SQL Compact Edition数据库损坏

时间:2010-03-16 18:57:20

标签: .net sql-server-ce

我们的产品在Windows机器(笔记本电脑)上使用MS SQL Compact Edition。它基本上是我们在文件系统上拥有的文件的元数据索引。最近我们看到数据库被破坏了。

当机器非常忙于移动文件并且必须同时进行一些数据库更改时,就会发生这种情况。

我有点震惊,尽管如此。我希望无论在什么情况下数据库都能保持一致。

当然我们做错了什么。到目前为止我们检查过的事情是:

  • 每个线程仅使用一个数据库连接
  • 指定打开数据库时的最大大小

数据库只能由一个应用程序访问,一个基于.net的Windows服务。还有其他问题吗?

1 个答案:

答案 0 :(得分:3)

您可能需要考虑将flush interval属性添加到SqlCeConnection对象的连接字符串中。来自MSDN:

  

flush interval-or-ssce:flush interval    - >指定所有提交之前的间隔时间(以秒为单位)   事务被刷新到磁盘。如果   未指定,默认值为   10。

您可能还想考虑创建代码以尝试repair your database。没有保证,但值得一试。