【问题标题】:Which Has Better Performance - Configuration In AppSettings or Database?哪个性能更好 - AppSettings 或 Database 中的配置?
【发布时间】:2011-06-13 05:10:46
【问题描述】:

我正在寻找有关应将应用程序配置数据和默认文本值存储在何处的反馈,以使整体性能最佳。例如,我一直在 web.config 中粘贴默认 URL 值和错误消息或应用程序指令的默认文本等内容,但现在我想知道这是否会扩展......以及它是否是正确的首先要做。

【问题讨论】:

    标签: asp.net architecture configuration


    【解决方案1】:

    如前所述,这真的无关紧要 - 设置,无论是在 web.config 中还是在数据库中,都应该是“只读一次”然后缓存,所以这真的无关紧要。

    我几乎可以保证你的代码的其他部分会比这慢得多。


    附带说明,与性能无关,但如果您需要担心站点正常运行时间,您可以在数据库中动态编辑配置,但更改 web.config 将导致 appdomain 重新启动并随后丢失会话.

    【讨论】:

    • 好吧,要明确一点……我并不“担心”这一点,因为我只是在寻找有关其他人如何存储其配置数据的反馈。初始加载以及后续加载期间的性能差异对我来说很重要。这个问题与我的代码的其他部分无关,因为它们最终都会加起来......对吗?
    • @Cognitronic - 道歉,如果这有点对抗,不是故意的。如果此性能很重要,尤其是与 SQL 服务器的距离有关的部分,其他答案将适用。
    • 没有汗水......是的,我知道还有很多其他事情需要担心和挣扎。我只是希望得到有关该问题的答复。感谢您抽出宝贵时间发帖!! :)
    • @Cognitronic - 我会注意到 web.config 似乎不是您向用户显示的字符串或说明的正确位置。如果您想将它们保存在文件中,您至少应该考虑将它们拆分为单独的 xml 文件。
    【解决方案2】:

    如果是单个服务器设置(而不是 Web 场),请将其存储在 Web.Config 文件中。 Web Farm 框架有一个新版本,您可以在此处查看该类型场景的详细信息:

    http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx

    【讨论】:

      【解决方案3】:

      如果数据库在同一台机器上,性能差异可能可以忽略不计。如果您需要跨线访问某个数据库,它很可能会比直接访问且不太大的 web.config 更慢。

      我真的希望在这里保持简单,只需使用 web.config。它可能已经被某些系统组件缓存在内存中。如果您觉得它太慢,请测量它,然后可能会寻求更复杂的解决方案。

      话虽如此,您可以在应用程序启动时简单地读取所有配置并将其保存在内存中。通过这种方式,任何性能差异都可以减少到应用程序的启动时间。您还可以获得能够在启动时验证配置文件的额外好处。

      不确定你的默认值,但问问自己它们是否是特定于环境的,是否真的是你想要在不重新编译的情况下更改的东西。作为配置文件,用例是什么?某些操作人员或开发人员会设置这些默认值吗?您打算记录它们吗?您是否要使您的应用程序对任何配置都具有健壮性? 这些默认值是否将用于多个环境/安装(例如用于本地化)?那么也许最好使用不同的单独文件,您可以在需要时单独重新部署。

      【讨论】:

        【解决方案4】:

        设置多久更改一次?

        如果它们从不更改,您可以将它们放在 web.config 中,并配置 IIS,使其不监视文件的更改。这会造成很小的启动损失,但之后应该不会有性能损失。

        但老实说,在您开始担心这一点之前,可能还有许多其他地方需要改进 - 请记住,“Premature Optimization is the root of all evil”:)

        【讨论】:

        • 大多数设置可能不会经常更改,但不知道多久更改一次。正如我在下面所说,我对此并不“担心”....我只是在寻找有关该问题的反馈。
        猜你喜欢
        • 2011-10-14
        • 2011-11-24
        • 2012-07-20
        • 1970-01-01
        • 2013-04-22
        • 1970-01-01
        • 2010-11-16
        • 2016-12-07
        • 2013-11-28
        相关资源
        最近更新 更多