对于SQL Server,我须要多少内存

常常被问到的一个问题:对于SQL Server,我须要多少内存?这个问题仍是有一样的典型的“看状况而定”答案。在今天的文章里,咱们来详细看下“看状况而定的”的不一样方面。sql

全新SQL Server安装

首先,对于全新的SQL Server安装,我想谈下你如何估计你须要的内存大小。而后我会详细谈下你如何验证现存的SQL Server有足够的可用内存。数据库

对于全新的SQL Server安装,估计下须要多少内存,是个颇有挑战的工做,由于:缓存

  • 你必须知道在你的内存里(你的工做区)要保持多少数据
  • 你必须知道你的索引策略是怎样
  • 你必须知道你是否要使用SQL Server的标准版,仍是企业版本。

从这个清单里你能够看到,问题的答案主要取决于你。咱们再谈下清单里的每一个项目。服务器

你查询的数据越多,你须要更多的内存。假设,你的大多数数据是用户不常查询的归档数据。在这个状况下,你的数据留在你的存储系统里,且从不加载到内存。就想下你的日志和审计表:对于这些特定的表,你真的要查询多少数据?性能

更好的索引策略是,你须要的内存更少!若是你有一个真的很差的索引策略(甚至你没有索引策略!),你会须要大量的内存来支持你的工做负荷。假设你有100GB数据的表,你在表里查询特定行。若是你在查询谓语上没有支持的索引。SQL Server会扫描你的整个堆表或汇集表。这就是说SQL Server须要加载你的“整个”表到内存里,只返回1条记录!有了支持的索引,SQL Server能够进行高效的查找操做,只须要读几个页就能够返回请求的记录。这个会是天差地别——相信我!spa

对于你的SQL Server安装,SQL Server的版本也会影响你能够有的内存大小。使用标准版本,你会限制只能用到128G的内存。这听起来是不少内存,胆其实是啥也不是!若是你的数据库包含几个TB的数据,且你用标准版本的SQL Server(预算限制)。在这个状况下,对于每一个单独的提交到SQL Server的查询,你要很是当心,并且你要确保你要有彻底一致的索引策略。使用企业版本就不须要考虑这么多,由于SQL Server支持系统的最大内存(Window Server 2016目前支持12TB的内存)。 日志

现存的SQL Server安装

对于现存的SQL Server安装,对于的工做负荷,很容易找出你是否有足够的内存。咱们都知道,SQL Server在缓存池里存储全部从存储子系统里得到的页。并且缓存池为你提供一个名为PAGE LIFE EXPANCTANCY的计数器。这个计数器告诉你在缓存池里SQL Server在每一个8K页的存储时间。server

如今你的PAGE LIFE EXPANCTANCY计数器至少有一些几千秒。内存越大,这个数字越高。若是你的PAGE LIFE EXPANCTANCY低于那个阈值,你会有很严重的问题,由于SQL Server不能在缓存池里保持你的数据太长时间。做为反作用,你会引入更多的物理I/O,整个服务器性能会降低。再提一下,你能够在索引策略上下功夫,确保从存储子系统里读取的数据都是你查询逻辑请求的数据。索引

小结

对于你的SQL Server你应该有多少内存,真的是个“看状况而定”的问题。若是你使用标准版的SQL Server,你应该至少有这个版本给你支持的最大内存。越多越好。而对于企业版的SQL Server,你应该有尽量多的内存。内存相比企业版的受权,如今已经愈来愈便宜了。所以不要在错误的地方省钱啦!内存

感谢关注!

原文连接

https://www.sqlpassion.at/archive/2016/09/19/how-much-ram-do-i-need-for-sql-server/

相关文章
相关标签/搜索