SQL 带有 .NET 多个应用程序的服务器 CE
SQL Server CE with .NET mutliple applications
我是 .NET 开发和 SQL Server CE 的新手,我正在处理我们公司产品中的一些数据库问题。
它的设计方式是 SQL 服务器 CE 动态链接到 2 个应用程序 (.csproj
) (.DLL
),我们有一个使用 DLL 的包装器创建、更新、删除数据库,他们访问一个 SQL 服务器 CE 数据库 (.sdf
)
在线阅读 SQL Server CE with .NET apps 后我发现:
多个应用程序可以访问同一个.sdf
文件,不需要额外的锁定机制来访问数据库
数据库很小,.NET 应用程序在内存中加载数据库,并且在内存本身中执行操作。
现在我的问题是:
由于有 2 个 .NET 应用程序访问此 .sdf
数据库,内存中是否有相同 .sdf
文件的 2 个副本并且应用程序正在修改自己的版本?
我做错了什么,团队发现问题(异常内容已删除),数据库访问速度慢。
谢谢
1:如果应用共享同一个文件,它们修改的是同一个文件,而不是它们自己的版本。请注意,SQL CE 有一个(默认最多 10 秒)刷新到磁盘延迟。
2:如果删除已经发生,不要抛出异常! (您可能会受到 10 秒缓冲延迟的影响 - 这可以设置得更低,但会稍微影响性能)
缓慢的数据库访问:可能完全不相关 - 您是否有所需的索引等 - 即:请向我们展示一些代码
我是 .NET 开发和 SQL Server CE 的新手,我正在处理我们公司产品中的一些数据库问题。
它的设计方式是 SQL 服务器 CE 动态链接到 2 个应用程序 (.csproj
) (.DLL
),我们有一个使用 DLL 的包装器创建、更新、删除数据库,他们访问一个 SQL 服务器 CE 数据库 (.sdf
)
在线阅读 SQL Server CE with .NET apps 后我发现:
多个应用程序可以访问同一个
.sdf
文件,不需要额外的锁定机制来访问数据库数据库很小,.NET 应用程序在内存中加载数据库,并且在内存本身中执行操作。
现在我的问题是:
由于有 2 个 .NET 应用程序访问此
.sdf
数据库,内存中是否有相同.sdf
文件的 2 个副本并且应用程序正在修改自己的版本?我做错了什么,团队发现问题(异常内容已删除),数据库访问速度慢。
谢谢
1:如果应用共享同一个文件,它们修改的是同一个文件,而不是它们自己的版本。请注意,SQL CE 有一个(默认最多 10 秒)刷新到磁盘延迟。
2:如果删除已经发生,不要抛出异常! (您可能会受到 10 秒缓冲延迟的影响 - 这可以设置得更低,但会稍微影响性能)
缓慢的数据库访问:可能完全不相关 - 您是否有所需的索引等 - 即:请向我们展示一些代码