AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 60670
Accepted
Beep beep
Beep beep
Asked: 2009-08-31 21:34:09 +0800 CST2009-08-31 21:34:09 +0800 CST 2009-08-31 21:34:09 +0800 CST

用于生产数据库的 SQL Server Express?

  • 772

我们即将推出一个双网络/内部事务应用程序,其中每个客户端都有自己的数据库。每个数据库都非常小 - 每个不到 50MB,所以我们想知道使用 SQL Express 2008 代替完整的 SQL Server 是否有意义。

这似乎具有跨服务器分布磁盘 I/O 的优势,同时节省大量 $$$(因为小型 15K 驱动器和使用的双核服务器都很便宜)。如果在某些时候我们需要太多的服务器,我们可以升级到 SQL Server ......但是对于有几十个内部用户来说,现在这似乎太贵了(特别是因为我们需要一个故障转移框)。

考虑到我们较小的数据库大小,1GB 内存和在单个处理器上使用 4 个内核听起来并没有太大限制。我们永远不会有超过 200 个并发用户,并且大多数操作将更具事务性(这似乎有利于大量高速磁盘而不是重型 RAM/CPU,对吗?)

我是否错过了 SQL Server Standard 的任何优势,这些优势可以证明最初额外的 5-2 万美元投资是合理的?

sql-server sql-server-2008 database-performance
  • 6 6 个回答
  • 8344 Views

6 个回答

  • Voted
  1. Best Answer
    mrdenny
    2009-08-31T21:43:58+08:002009-08-31T21:43:58+08:00

    SQL Server 的其他版本为您提供 SQL 代理等功能,因此您可以安排数据库维护和其他工作。

    只要您的数据库可以满足 Express 版本的限制,您就可以了。

    SQL 服务器喜欢大量的 RAM。越多越好。由于 SQL Server 无法将数据加载到缓存中,这会给磁盘带来额外的负载。您应该查看 SQL Server 的 Web 版或工作站版。这些版本的限制高于 Express 版,但成本低于标准版。

    如果您确实从 Express 版开始,您可以在购买许可证后随时升级到 Standard 版。

    • 17
  2. mika
    2009-09-03T11:02:34+08:002009-09-03T11:02:34+08:00

    我在 Express 版中遇到的一些生产问题和解决方法:

    计划备份

    • 没有 SQL 代理
    • 解决方法:使用您想要运行 SQLCMD 备份脚本或Expressmaint的任何调度程序
    • 另请参阅:如何使用 SQl Server Express 安排每日备份?

    SSIS

    • SQL Express 2008 确实有导入/导出数据向导,但 Express 版的 dtsexec 运行时不会运行所有 SSIS 包
    • 解决方法:您可以使用 Developer 版本开发 SSIS 包。如果您在网络中有一个标准版,您可以从中安排和运行 SSIS 包。你甚至可以从开发者版运行 SSIS 包,只要它不违反许可证
    • 另请参阅:
      我能否使用 SQL Server 2008 Express/Web 运行 SSIS 包或
      使用 Sql Server 2005 express 运行工作组 SSIS

    剖析

    • 没有 SQL 分析器
    • 解决方法:尝试SqlProfiler For Express Edition
    • 警告:我发现它在解决生产紧急情况时并不总是有用的,比如当 sqlexpress 占用 100% 的服务器处理器容量时。在这种情况下,我无法让探查器产生任何跟踪。
    • 另请参阅:什么分析器与 sql express 一起使用?
    • 15
  3. Akash Kava
    2009-09-01T00:24:33+08:002009-09-01T00:24:33+08:00
    1. 如果您阅读 SQL Server 许可证,则如果被动服务器仅用于故障转移并且在您的第一台服务器发生故障之前它不提供查询服务,则无需购买额外的被动服务器许可证。

    2. 我们使用 SQL Server Express 已经很久了,它比早期的 MSDE 好得多,我们有 200 多个模拟连接,但我们只有一个 2GB 大小的数据库,一切都很顺利。只要我们避免昂贵的连接并且我们做好索引,我们就不会遇到任何问题。现在我们使用的是 SQL Standard,但是在您的数据库大小超过 4GB 并且您的用户数量少于 200-500 之前,您当然可以使用 SQL Express。

    3. SQL Server Express 使用较少的内存占用约 200MB,而标准版使用约 1.5GB,可能是因为标准版会进行大量缓存。与标准版相比,您在 Express 中的查询将在几毫秒内变慢。不幸的是,Express 版不使用多核 CPU(这是有限的功能),所以无论你有 2 核还是 4 核,它都不会有很大帮助。

    • 2
  4. Scott Whigham
    2009-09-04T09:05:58+08:002009-09-04T09:05:58+08:00

    LuckyLindy - 我鼓励您稍等片刻,确认您不需要 SQL 代理。你写了:

    我们即将推出一个双网络/内部事务应用程序,其中每个客户端都有自己的数据库。每个数据库都非常小 - 每个不到 50MB,所以我们想知道使用 SQL Express 2008 代替完整的 SQL Server 是否有意义。

    您的备份计划是什么?您不必使用 SQL 代理,但它确实使 DBA 的生活更轻松。您可以编写执行备份的 T-SQL/SMO/PowerShell/任何脚本,然后使用计划任务通过 sqlcmd 或 PowerShell 执行。

    您的数据库维护计划是什么?随着时间的推移,这些数据库将需要进行碎片整理并检查一致性。标准版有各种各样的好东西可以让这很容易,而在 Express 中,您必须工作(再次使用脚本和计划任务)。

    服务器出现问题时如何通知您?当日志已满、磁盘已满等时,代理会在此处提供警报以通知您。


    这些是关键的 SQL Server DBA 类型的任务。为内部应用程序运行 Express 是一回事,但是一旦您开始告诉我们您正在为客户托管这些应用程序,我就会担心 :)


    第 2 部分是询问您计划在此方面支持多少客户 - 无论是在发布时还是一年后?如果你说“100 个客户端”,那么 Express 上 100 个 50MB 的数据库是不够的——你只是没有足够的内存。哎呀-取决于您有多少增量,我不知道您最多可以使用 15 个 DB。

    我们永远不会有超过 200 个并发用户,并且大多数操作将更具事务性(这似乎有利于大量高速磁盘而不是重型 RAM/CPU,对吗?)

    诸如 INSERT 之类的事务操作仍会写入内存,因此不要期望您需要更少的内存支持。事实上,根据您执行的插入次数,您可能需要比大多数用户更大的内存需求。如果您正在加载大量人们不会真正使用的数据,那么它仍然会占用内存。您可能会遇到“用户经常查询的数据”和“用户正在加载但暂时没人会查询的数据”之间的争用问题。SQL 通过将人们更频繁地查询的数据保留在内存中更长的时间来保护我们,但您仍然会有争用。

    在这一点上,我漫无目的的大声笑。Express 的 200 个并发用户也不适合我。假设 64k 是平均连接内存要求,您的应用程序将建立多少个连接?你会使用连接池吗?

    总而言之,阅读您的描述后,我的直觉告诉我:“不,Express Edition 还不够强大。” 而且我讨厌工作组版——认为这是一个糟糕的交易——所以标准对我来说似乎是正确的。

    • 2
  5. sleske
    2009-09-01T00:55:45+08:002009-09-01T00:55:45+08:00

    您是否考虑过使用其中一种免费的 DBMS(MySQL、PostreSQL...)?这会减轻您对许可的担忧吗?

    如果这不是一个选项,SQL Server Express 似乎是一个不错的解决方案。

    • 1
  6. pacificwinter
    2017-06-28T22:18:45+08:002017-06-28T22:18:45+08:00

    它当然可以用于重要的生产应用程序。我们已经在 1500 多家医疗诊所使用它,所有诊所都安装了单独的 SQL Server Express 实例,每天处理数百万笔交易。您可以使用以下方法之一轻松绕过 SQL Server 代理的劣势:

    1. 第三方产品,例如 SQLAutomate
    2. Windows 任务计划程序
    3. 安装了主服务器功能 1 和 2 的 SQL Server 标准版或企业版成本非常低或免费。3 很昂贵,除非您已经在您的环境中使用它。

    请参阅 Michael Otey 关于“在生产中使用 SQL Server Express”的出色演示文稿(google it)。

    • 1

相关问题

  • sql server 连接字符串上的网络数据包大小以提高吞吐量

  • 基于 Microsoft 的服务器(IIS、MSSQL 等)上的病毒扫描应排除哪些内容?

  • SQL 洗衣清单

  • OPENROWSET、二进制文件、varchars 和 varbinaries

  • 聚集索引与非聚集索引?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve