我想知道索引是否会完全加载到内存中?
答案 0 :(得分:1)
不,它被视为存储在磁盘上的任何其他数据。它按磁盘页面加载到内存磁盘页面。只要经常访问页面,页面就会保留在内存中。
答案 1 :(得分:1)
数据库服务器缓存在内存页面(或块)中,而不是对象(表,索引)。如果经常加载所有索引页面,它们将在内存中返回。
答案 2 :(得分:1)
答案分为几部分:
我在一个表上有一个巨大的索引,它花了整整3分钟的时间来返回第一个结果。第二次查询(不同的请求)大概是一分钟。第三次查询是20秒。最终所有结果都是在0.001秒内完成的。
重点是什么? SQL Server在读取时将内容中的索引缓存。
但是,如果我在SQL Server上施加了其他内存压力,它会按照最低读取次序删除那些缓存的索引页。