如果数据库无法容纳在内存中,SQL服务器的性能会降低吗?

时间:2010-05-21 07:35:42

标签: sql-server performance

如果数据库大于RAM,SQL服务器的性能是否会大幅降低?或者只有索引必须适合内存?我知道这很复杂,但作为经验法则?

4 个答案:

答案 0 :(得分:3)

只有工作集或公共数据或当前使用的数据需要适合缓冲区缓存(也称为数据缓存)。这也包括索引。

还有计划缓存,网络缓冲区+其他东西。 MS已经在SQL Server的内存管理方面投入了大量的精力,而且效果很好,恕我直言。

一般来说,更多的RAM会有所帮助,但这并不重要。

答案 1 :(得分:1)

是,当索引无法适应内存或执行全表扫描时。对不在内存中的数据执行聚合函数也需要许多(也许是随机的)光盘读取。

对于某些基准测试:

  

查询时间将显着依赖   目前是否受影响的数据   驻留在内存或磁盘访问是   需要。对于磁盘密集型   操作,特点   磁盘顺序和随机I / O.   表现也很重要。

http://www.sql-server-performance.com/articles/per/large_data_operations_p7.aspx

如果你的数据库大小>那么,不要指望相同的性能;公羊尺寸。

修改 http://highscalability.com/充满了以下示例:

  

一旦数据库不适合RAM,你就会碰壁。

http://highscalability.com/blog/2010/5/3/mocospace-architecture-3-billion-mobile-page-views-a-month.html

或者在这里:

即使数据库大小仅比RAM大小大10%,此测试也会显示性能下降2.6倍。 http://www.mysqlperformanceblog.com/2010/04/08/fast-ssd-or-more-memory/

尽管如此,请记住,这是针对热数据的,您要查询但不能缓存的数据。如果可以的话,您可以轻松享受更少的内存。

答案 2 :(得分:-1)

所有数据库操作都必须通过写入磁盘来备份,有更多的RAM是有用的,但不是必需的。

答案 3 :(得分:-1)

将整个数据库加载到RAM中是不切实际的。这些天数据库可以达到太字节数。任何人都没有机会购买这么多内存。我认为即使可用RAM的大小是数据库大小的十分之一,性能也会是最佳的。