假设您有一台 Amazon EC2 服务器。什么应该使用较少的资源:
200 个网站....
- 每个使用单独的 SQL Express DB(共 200 个,每个站点 1 个)
- 或者所有网站使用1 SQL 标准数据库?
这个问题只关注这两个因素。没有其他应用。
感谢您的帮助
- 每个数据库不超过 1 GB
答案1
这 200 个网站是否由您为其他个人团体托管?您能告诉我们一些有关您具体在做什么的信息吗?最初,我不太担心这种情况下的资源,而更担心关注点分离和管理开销。
需要考虑的一件事是,SQL Express 数据库的数据大小上限为 10GB,因此这可能是您的决定因素。如果您的单个数据库超出此上限,那么您将陷入困境。
有关 SQL Server 版本的详细信息这里。
编辑:
如果有 200 个可能为 1GB 的数据库,您最好使用 Standard,但我也会考虑在其中使用单个数据库。Express 的内存限制为 1GB,而 Standard 仅受主机操作系统的限制,这将使您可以选择将更多的内存用于 SQL。至于哪个占用的内存更少,很难说不知道您的数据架构。在单个数据库中,您是否有每个表的 200 个副本,还是将所有 200 个站点的数据保存在一个表的副本中?您将看到索引大小的差异,这会影响内存消耗。SQL 将尝试将尽可能多的数据库加载到内存中,并且配置允许这样做。
JohnThePro 还很好地指出了 Express 不支持的 Standard 中的其他功能。
答案2
答案3
我认为单个数据库比 200 个数据库更能高效地利用内存。查询计划之类的东西将针对每个数据库 - 因此如果每个站点都使用完全相同的查询访问自己的数据库,则最终必须为每个站点至少构建一次该计划。计划缓存可能也有限,因此多个数据库方案会减少可用空间。对于一个包含所有站点信息的表的数据库,查询计划只会生成一次,而更多查询计划将放入缓存中。
如果您知道所有站点的数据库加起来不会超过 4gb(或者愿意在那时更新),那么您可以使用 1 db 执行单个 Sql express 实例。
答案4
您是在谈论运行 200 个 SQL Express 实例,每个实例有 1 个数据库,与运行 1 个 SQL Server Standard 实例有 200 个数据库吗?
SQL Server Express 的核心引擎与该产品的更高级别版本相同。您可以使用 SQL Server Express 运行 200 个数据库。然后,如果您由于 Express 技术限制而遇到性能瓶颈...请升级到标准版。