2

如果 Microsoft 构建 MOSS 以便将所有数据写入 SQL Server 数据库,为什么所有最佳开发实践都建议将文件等保存在数据库之外,即文件系统上?

一切顺利

4

7 回答 7

1

我想说所有最佳实践都没有说您应该使用文件系统来存储文件。这将始终取决于情况。当您只有一台服务器时,将文件存储在文件系统上很好,但是当文件需要在多台服务器上时,您必须管理复制。备份数据库通常比数据库和文件更容易。所有这些情况都可以管理,但您需要灵活。

于 2009-03-17T16:27:21.533 回答
0

SharePoint 有一个名为ghosing的技术,它在文件系统中缓存分页。

于 2009-04-16T14:16:10.577 回答
0

保持 SharePoint 页面未自定义允许在第一次执行时编译页面的一个实例,然后将其保存在内存中并重复用于所有同类页面。自定义页面不共享此行为的原因是因为它们是唯一的,并且一旦 ApplicationDomain 加载了 dll,它就无法卸载。因此,每个请求都会解析自定义页面。

于 2009-03-16T21:10:11.563 回答
0

由于性能问题:保存到数据库的往返只是为了获取您的页面布局,这会损害性能。

另一方面,使用本地文件系统上的文件来提高性能会减少自定义选项。

于 2009-03-16T14:34:20.673 回答
0

如果您希望网站用户编辑这些文件,则必须将文件保存在数据库中。SharePoint 旨在使这些文件中的大多数都可编辑,因此它们可以存储在数据库中。

如果您作为应用程序架构师知道某些高使用率文件(页面布局、母版页等)不会被编辑,除非通过解决方案发布,您可以选择将页面存储在文件系统上。

由于不需要数据库往返,因此存储在文件系统上对读取访问性能的改进很小。例如,网站中的每个页面都需要母版页,因此将其存储在文件系统中将在高用户需求期间提高性能。

SQL 2008 能够在数据库“外部”管理文件这一事实表明,此功能不仅适用于 SharePoint。

于 2009-03-16T20:12:06.820 回答
0

这是一个哲学项目。事务完整性是将文件存储在数据库中的一个好处。随之而来的是诸如膨胀的事务日志之类的缺点。

如果在将来的 Sharepoint 版本中,MS 为您提供了使用 SQL 2008 的文件流功能将文件存储在“数据库外部”的选项,我不会感到惊讶。

于 2009-03-16T12:40:29.573 回答
0

您从哪里获得这些“最佳实践”?

根据我在 MS 和 MOSS 方面的经验,我应该说从未听说过这样的最佳实践,除了一个非常特殊的案例......我会说这不是一个好的实践。

这样你的部署并不容易......管理员用户必须知道在哪里可以找到要修改的文件,备份就像地狱等等

但是,正如我所说......可能在特定情况下它可能很有用。

于 2009-03-17T17:18:57.430 回答