【问题标题】:Convincing an IT Manager to allow SQL Server instead of Access说服 IT 经理允许使用 SQL Server 而不是 Access
【发布时间】:2010-10-07 08:08:55
【问题描述】:

IT 经理不允许将 SQL Server 与正在开发的 ASP.NET 网站一起使用。当前被替换的设置是一个连接到 Microsoft Access 数据库的 php 站点。对于为什么应该使用 SQL,我有一些自己的理由,但我希望尽可能多地提出强有力的论据(学生与 IT 人。)。有没有人对为什么应该使用 SQL 有任何强烈的论据?特别是针对一位 IT 经理,他说“这是我们一直在这样做的方式,并且[它] 一直在工作。”

提前致谢!

更新

为了“卸载”这个问题...如果您建议保留 Access,何时以及为什么?

【问题讨论】:

  • 哦,天哪,不是那些“永远都这样工作”的经理。
  • 见鬼,使用 SQL SErver Express 会比 MS Access 更好!
  • 他喜欢访问,还是讨厌设置和管理服务器?
  • @MrChrister - 我不确定。不过,我理解任何对托管新服务的犹豫。
  • 有DBA吗?他们怎么想?没有DBA吗?你认为没有 SQL Server 是一个好主意吗?谁来解决问题(因为你不在那里?)到目前为止谁处理了问题?他们有 SQL Server 技能吗?

标签: php asp.net sql ms-access


【解决方案1】:

对您的成品进行负载测试,并证明 Access 不适用于为网站提供动力。

编写代码,以便轻松更改数据库后端。然后,当访问失败时,将您的数据迁移到真实的数据库或 MySQL(如果需要)。

这里有一些Microsoft Web server stress tools

作为记录,可以将大部分 SQL 命令发送到数据库而不保持活动连接打开,从而一次允许超过 6 或 7 个连接,但事实是访问并不意味着做。因此,“它工作正常”这一点就像说用胶带清洁地板没问题:它有效,但不是适合这项工作的工具。

更新问题的更新答案:

真正的关键是代码中数据访问的分离。您应该能够或多或少地拥有任意数量的 DBMS 中的数据数据库结构。事情可能会变得复杂,但表格地图应该是通用的。然后应该访问不工作,决定使用不同的数据库。

Access 可用于高流量站点。仅使用 SQL 语句例程,我就能够建立一个电子商务网站,该网站每年的销售额达到几百万,每月有 6 万访问者。这是可能的,但可能并不理想。这些数字并不大,但对于我参与过的任何网站来说,它们都是最大的。

如果 IT 经理忙于维护另一台服务器或不愿花时间配置一台服务器,请保留访问权限。最终,猜测无济于事,而测试会告诉您您需要知道的一切。测试并根据结果做出决定。

【讨论】:

  • “一个真正的数据库,或者 MySQL 是你必须的”——哦,烧掉!
  • 我的孩子。我在工作中使用 MySQL,我更喜欢 MS 工具
  • 好主意。幸运的是我可以访问 VS - Test Edition,所以负载测试应该很容易。
  • 感谢您提供更新的答案。我想我更倾向于保留它
  • 所有代码和所有项目都在进行中,因此请计划对其进行更新(或使其对关注您的任何人都可以更新)
【解决方案2】:

这是一份来自 Microsoft 的文档,可能会有所帮助:

Access vs. Sql Server

Another Article.

我个人的想法是,Access 在可以扩展到超过两个或三个并发连接的环境中是没有位置的。你会使用 Excel 作为后端吗?

【讨论】:

  • 谢谢!两个很好的链接。我也遇到过同样的连接问题,通常在 6-7 点左右开始出现问题。
【解决方案3】:

您的经理已说明他想使用 Access 的原因。您是否负责设计替代方案?你有任何理由认为证明你的经理是错误的会让你受益吗?您在这次谈话中的个人优势是什么?您确定 Access 不会“足够好”吗?重新设计的网站是否会有更重或不同的负载(即更多的用户,或更低效的设计)?我不确定您是否想与您的经理争论您无法实现与旧设计一样好的东西。

让项目失败(如果您期望这将是结果)并使用 SQL Server 挽救它要比让您的经理承认您比他更了解情况要容易得多。

【讨论】:

  • 幸运的是,我没有直接受雇于这种情况。我是一名“帮助学生”(恰好是一名网络开发人员)。通过证明它们是对还是错,我并没有真正受益。我们当然可以通过将其全部加载到内存中并在内存中查询来解决 Access。然后缓存页面。
  • 我们设计并实施了企业级应用程序,组织中的一位用户每月使用几个小时。调整工作规模。
  • +1 根据经验,我知道 Access,或者更准确地说是 Jet,在小型低成本网站的网络上运行良好。
【解决方案4】:

不要忘记,对于像大多数 Access 数据库这样小的东西,您可以使用 SQL Server Express Edition,它是免费的,因此不会花费您任何费用。

【讨论】:

  • 因为我不知道,你不是必须安装和配置服务器吗? Access只是一个文件,SQLExpress文件可以在没有安装服务器的情况下使用吗?
  • AFAIK,SQL Server Compact Edition 嵌入在应用程序中 - 不需要服务器。请参阅以下页面上的文档“比较 SQL Server 3.5 Compact 和 SQL Server Express Edition 功能”:microsoft.com/Sqlserver/2005/en/us/compact.aspx
  • 实际上,您可以将 SQL Express 与文件一起使用。只需查看 connectionstrings.com ——它将向您显示基于文件的访问所需的 sql 连接字符串。
  • 您如何实现、支持和调试数据库?
【解决方案5】:

我也发现了这个不错的报价:

不建议使用 Access 生产网络中的数据库 应用。出于生产目的, 考虑连接到 Microsoft™ SQL Server 数据库使用 SqlDataSource 或 ObjectDataSource 控制。

http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/data/accessdatasource.aspx

【讨论】:

  • 嗯,他们会这么说,不是吗? :-)
  • 您不会认为 Microsoft 曾经低估 Access 数据库的功能或 SQL Server 的支持要求吧?
【解决方案6】:

不要争论,对它进行基准测试。真实数据应该胜过花言巧语(至少在理性世界中!;-)

用两个选项设置文本框并努力运行它们。 (如果您要公开 Web 服务,可以使用诸如 SoapUI 之类的工具进行自动压力测试。这个领域还有很多其他工具。)收集统计数据并分析它们以确定权衡。

【讨论】:

    【解决方案7】:

    使用 SQL Server 而不是 Microsoft Access 数据库的一个简单原因:如果数据库将被大量用户大量使用,则 MS Access 数据库可能会导致瓶颈。

    【讨论】:

    • 连接限制的瓶颈?
    • 如果它不会被很多用户大量使用?
    • @ccook:是的,我会这么说。 @le dorfier:那么您应该评估是否要向数据库中插入大量数据,因为 Access 只允许插入几 GB 的数据。
    【解决方案8】:

    一个人的许可。我怀疑他是否想要拥有数百个 Office 许可证(每个连接到该站点的最终用户一个)。 SQL 具有允许同时进行多个连接的许可证,而无需特定的连接许可证。

    更不用说可扩展性和可靠性问题了。 SQL Server ios 设计用于在 24/7 环境中使用和管理。访问没有。

    SQL 可以扩展到大量的同时连接,而 Access 不能。

    SQL可以边运行边备份,Access不能。

    SQL 被设计为高度健壮的数据存储库,而 Access 在设计时并未考虑到相同的要求。

    【讨论】:

    • 我很确定您不需要为每个用户授予访问权限。你甚至不需要在服务器上运行 Access,它只是一种文件格式。
    • 您只需为连接 Access 数据库的每个“服务器”提供一个许可证。网站的访问者不会直接连接到数据库。
    • 您不需要 any 许可证即可在任何地方使用访问数据库。您需要获得许可才能使用 MS Access 应用程序,但这完全不同。
    【解决方案9】:

    Access 不能很好地处理多个用户(完全?)。这意味着,如果您有多个人尝试访问或特别更新您的网站,它很可能会死掉,或者充其量会非常缓慢。

    围绕 SQL Server 有更好的工具(linq to sql 或实体框架或任意数量的 ORM)。

    SQL express 是比访问网站后端更好的选择,而且它是免费的。

    【讨论】:

      【解决方案10】:

      考虑一下他可能是对的选项。如果它与 Access 一起工作正常,就这样吧。如果将来出现可扩展性问题(该网站同时被超过 1 个用户使用),那就是他的问题,而不是你的问题。

      还要考虑sqlite,可能比access好

      【讨论】:

      • 在 sqlite 上 +1。正在开发一个全新的网站(替换 php)。
      • -1 表示“同时有多个用户”。 Access 可以处理比一个用户更多的用户,并且如果网站是为了缩短连接时间而构建的,则不必同时处理多个用户。
      【解决方案11】:

      只需获取一个测试套件(或将一个放在一起):

      1. 比较创建 db 和 1000,000 个条目所需的时间。
      2. 在数据库中搜索条目。
      3. 清理数据库
      4. 删除数据库
      5. 执行几次您认为会在数据库上完成更多次的操作。

      并在他面前做比较(写一个脚本)。我的猜测是你的 IT 经理在开玩笑,或者你正在处理的网站是非关键的,他不想分配资源(包括你)。

      【讨论】:

        【解决方案12】:

        MS Access 适用于 1 个桌面 1 个用户!我在之前的一个项目中花了一年的时间从​​ Access 中分离出一个应用程序(根据用户数量增长到企业规模),因为它奇怪的锁定行为和糟糕的性能。 SQL Server Express Edition 是一个很好的起点,正如之前的帖子所反映的那样。

        【讨论】:

        • 我们已经在其他答案中讨论了关于可以处理多少访问权限的实际情况有何不同
        猜你喜欢
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多