![MS SQL Express 不够用 – 该怎么办?](https://linux22.com/image/618405/MS%20SQL%20Express%20%E4%B8%8D%E5%A4%9F%E7%94%A8%20%E2%80%93%20%E8%AF%A5%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F.png)
我现在有了自己的第一个大项目。我投入了大约 500 个工作小时,项目已经完成。它实际上是带有 C# 和 Linq to SQL 的 ASP.Net,平台是 Windows Server 2008 Web 版上的 MS SQL Server 2005 Express 版 - 每月花费我 40 欧元(免费 SQL 和服务器 40 欧元)
网站上线后,大约有20到50个同时在线用户。
网站的速度越来越慢了,我花了过去 20 个工作小时来提高数据库查询的性能,但只是将网站加载时间从 10 秒减少到 9.0 秒。
我确实花了很多时间进行诊断,看起来是数据库/ DBMS 让一切变得缓慢!
我知道 SQL Server Express 版本的具体限制 - 例如 1GB RAM,但就我而言,SQL 服务器的 CPU 和内存使用量应该很小:每个用户每分钟 5-10 个查询 x 20 个用户 = 每分钟 100-200 个查询。
如果我需要另一个 DBMS:是否有免费且无限制的 MS SQL 服务器等效产品?(我认为目前在已完成的项目中,MySQL 无法与 Linq to SQL 一起使用)。由于这是为非营利组织提供的,不幸的是,我甚至没有钱购买 SQL Server 的标准版。
更新 1
细节:
服务器:AMD Opteron™ 1381,内存:4GB,64位,
站点是:http://www.rpone.de/FeatureList.aspx
该应用程序使用了 7 种不同的查询,这些查询相当简单,例如从用户表中获取用户,其中 userID == userid 等,没有什么特别的。
该模式非常正常:我将所有 PK 用作 Guid,所有表都有 FK。
如果需要,我很乐意提供更详细的信息。
答案1
如果您无法使用 MS SQL Express,也无法负担完整的 MS SQL Server,那么唯一的选择就是将您的应用程序移植到您可以免费获得的新数据库后端,如 Postgres 或 MySQL。在设计阶段就应该探索 MS SQL Express 的局限性。不幸的是,没有ignore_express_limits
变量可以设置。您拥有的就是您所拥有的。
在移植代码时,您应该考虑在更现代的操作系统上运行它。Server 2008 现在已经是第 4 代了。