我正在OLAP环境中的一些非常大的表上运行一些聚合查询。我目前受到磁盘IO的瓶颈,速度为200 MB / s。
我在具有92 GB RAM的计算机上进行这些查询。是否有任何SQL提示可以写入我的查询,基本上告诉SQL在执行之前将整个表加载到RAM中?
类似的东西:
使用(ramdisk)从myTable中选择*
我正在使用MS TSQL。
答案 0 :(得分:2)
没有。如果页面缓存中有足够的空间,数据库引擎将自动执行此操作。
您可以使用SQL Server Management Studio设置正在使用的内存量。右键单击服务器,选择内存选项,然后在“最小服务器内存”框中输入一个大数字。如果你有92 GB的RAM,那么像85,000这样的数字可能是好的。您需要为计算机上的操作系统和其他服务留出额外的内存。
假设表适合内存,这应该有助于处理。如果它们不适合记忆,那么你可能不得不采取另一种方法。