如果数据库大于RAM,SQL服务器的性能是否会大幅降低?或者只有索引必须适合内存?我知道这很复杂,但作为经验法则?
答案 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,你就会碰壁。
或者在这里:
即使数据库大小仅比RAM大小大10%,此测试也会显示性能下降2.6倍。 http://www.mysqlperformanceblog.com/2010/04/08/fast-ssd-or-more-memory/
尽管如此,请记住,这是针对热数据的,您要查询但不能缓存的数据。如果可以的话,您可以轻松享受更少的内存。
答案 2 :(得分:-1)
所有数据库操作都必须通过写入磁盘来备份,有更多的RAM是有用的,但不是必需的。
答案 3 :(得分:-1)
将整个数据库加载到RAM中是不切实际的。这些天数据库可以达到太字节数。任何人都没有机会购买这么多内存。我认为即使可用RAM的大小是数据库大小的十分之一,性能也会是最佳的。