SQL提示在执行之前将整个表加载到RAM中?

Joh*_*sky 6 sql sql-server olap ramdisk sqlperformance

我正在OLAP环境中的一些非常大的表上运行一些聚合查询.我目前受到磁盘IO的瓶颈,速度为200 MB/s.

我正在使用92 GB RAM的机器上进行这些查询.是否有任何SQL提示我可以写入我的查询,基本上告诉SQL在执行之前将整个表加载到RAM中?

就像是:

从myTable中选择*(ramdisk)

我正在使用MS TSQL.

Gor*_*off 3

不会。如果页面缓存中有足够的空间,数据库引擎会自动执行此操作。

您可以使用 SQL Server Management Studio 设置正在使用的内存量。右键单击服务器,选择内存选项,然后在“最小服务器内存”框中输入较大的数字。如果您有 92 GB 的 RAM,那么 85,000 这样的数字可能就不错了。您需要为机器上的操作系统和其他服务留出额外的内存。

假设表适合内存,这应该有助于处理。如果它们不适合记忆,那么您可能必须采取另一种方法。