【问题标题】:Sharepoint MOSS customised v's uncustomisedSharepoint MOSS 定制vs 未定制
【发布时间】:2026-01-19 08:00:01
【问题描述】:

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

一切顺利

【问题讨论】:

    标签: sharepoint moss customization


    【解决方案1】:

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

    【讨论】:

    • 我没有听说过这样的“最佳实践”...... 100% 同意你的看法。我总是尝试将所有内容都放在内容数据库中。
    【解决方案2】:

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

    如果在未来的 Sharepoint 版本中,MS 允许您使用 SQL 2008 的文件流功能将文件存储在“数据库之外”,我不会感到惊讶。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

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

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

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

            【讨论】:

            • 我在这里谈论的是开发,即功能、解决方案、母版页、布局、webpart 等。MVP 的大多数技术书籍/文章都建议将文件保存在文件系统中而不是数据库中。 .. 我认为! ;)
            【解决方案7】:

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

            【讨论】: