2008-09-04 38 views
1

在我的一个应用程序中,我有一个用于参考数据的1GB数据库表。它拥有大量的读取数据,但没有写入过。我想知道是否有任何方法可以将数据加载到RAM中,以便不必从磁盘访问数据?将只读数据库表加载到内存中

我正在使用SQL Server 2005

回答

5

如果你有足够的RAM,SQL将突出抓好确定所要加载到RAM中,哪些寻求在磁盘上。

这个问题被问了很多,它让我想起人们试图手动设置他们的进程将运行在哪个“核心” - 让操作系统(或在这种情况下,数据库)执行它的设计。

如果您想验证SQL实际上是在读你的查找数据进行缓存,那么你就可以启动负载测试,并使用Sysinternals的FileMonProcess ExplorerProcess Monitor验证1GB的表没有被读取。出于这个原因,我们有时会将我们的“查找”数据放到一个单独的文件组中,以便在磁盘上访问时很容易监控。

希望这会有所帮助。

1

只是为了澄清问题的SQL2005和高达:

此功能中引入了在SQL Server 6.5版 性能。 DBCC PINTABLE具有高度不需要的 副作用。这些包括可能损坏缓冲池的 。 DBCC PINTABLE不是必需的,并已删除 以防止其他 问题。该命令 的语法仍然有效,但不会影响 服务器。

相关问题