SQL Server似乎需要40GB的RAM,但不断读取磁盘…为什么?

所以我已经为SQL Server分配了40GB的内存。

我可以看到,在第一次运行数据库查询之后,第一次运行时会迅速填充40GB内存限制,但是当我执行完全相同的查询时,对性能没有影响,SQL仍然从硬盘驱动器而不是RAM中读取数据。

整个数据库为42GB(5500行,18列,1个表,查询80行之后的平均结果(使用TOP并按顺序select接下来的80行)),RAM中的最大分配大小为40GB。

SQL Server 2008 R2,Windows 2008 R2数据中心…

查询示例:select * from DB..Table其中,列A> 333和列B> 3333,列C像'%test%'按用户名sorting

如何强制SQL Server使用存储在RAM中的数据?

也许最好是创build42GB的RAM磁盘,只是移动整个数据库?

目前我正在使用RAID 0中的15k 4x 450GB SAS(在RAID10中性能不够,我每6小时进行一次备份),但似乎有一个驱动器出现问题(〜150MBps(通常为520MBps)),所以目前我等待交付我想在RAID 0中使用的4x SSD,希望至less达到1.2GBps(1x SSD可以达到这个数据库〜570MBps)。

如何使用RAM,因为看起来SQL Server只是在浪费它而没有任何对性能的好处…

这个数据库没有得到很多的查询,但是每个查询都是相当大的,有很多“在哪里”。

CPU是2x至强E5645,并不是瓶颈(在运行查询期间几乎总是使用10-15%)

这是从另外两个表(每个超过1TB的数据)计算和创build的结果表,预计每天增长约20GB〜300百万行,不幸的是我不能达到舒适的性能:(