我正在开发一个也有后端应用程序的网站项目。 这两个项目都依赖于sql server 2008的一个实例。 如果两个应用程序都在运行,sql-server将成为严重的瓶颈。 不幸的是,我们无法扩展(在运行sql-server的计算机上添加更多马力是不可能的),现在我们正在寻找其他方法来提高性能。
我们在多个虚拟框中使用了windows 2008与sql-server 2008企业版。
如果当前服务器无法扩展,则可能需要移动到更大的服务器。 这听起来像你正在虚拟机下运行SQL服务器,如果正确的话可以完成。 如果做得不正确,那么你的生活将是地狱。
在查看扩展数据库的主要项目之前,您需要检查数据库性能并确保所有内容都已正确编制索引,并且所有查询都运行得尽可能好。
假设他们正在寻找一个更新的服务器。 如果您的计算机上目前有2个vCPU,则需要2个SQL CPU许可证。 看看有2个四核或六核CPU的服务器。 这样你的授权不会改变,你只需要支付新的硬件。
你如何确定你的SQL Server是一个瓶颈,你需要扩展你的部署?
本白皮书是一个很好的起点:
包括在本文档中:
http://www.microsoft.com/sqlserver/2008/en/us/wp-sql-2008-performance-scale.aspx
扩展通常涉及对原始应用程序的深度重构。 通常,这是一个微妙的操作,带有很多的perf测量。
如果您有一个应用程序只在数据库上是“只读”的,那么您可以设置一个SQL Server镜像来提供“只读”查询来降低主服务器的压力。
然后,您还可以查找缺less的索引。 一个单一的索引可能会使你的performance悲惨。
最后,如果你有非关键性的重度查询,你可以添加一些NO LOCK语句来大幅度加快查询时间(但是由于返回的结果可能部分不一致,所以这个方法应该谨慎使用)。
正如其他人所build议的,那么使SQL Server性能更好,最便宜的方法就是调整性能 。 恕我直言,扩展中涉及的额外的SQL Server许可证会将其作为选项取消其资格,除非您的数据库是VLDB并在最新和最好的硬件上运行。
假设您已经尽可能优化了SQL Server,那么您有以下select:
这里有一篇来自Microsoft的优秀文章 ,讨论了使用这些选项的专业版和控制版。