将只读数据库表加载到内存中

lom*_*axx 1 sql-server caching sql-server-2005

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

我正在使用SQL Server 2005

Por*_*man 5

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

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

如果要验证SQL实际上是从缓存中读取查找数据,那么可以启动负载测试并使用Sysinternals FileMon,Process ExplorerProcess Monitor来验证是否未读取1GB表.出于这个原因,我们有时会将"查找"数据放在一个单独的文件组中,以便在磁盘上访问它时非常容易监视.

希望这可以帮助.