对SQL Server 2008 R2使用行级或页面级压缩时,SQL Server是否将数据以其压缩格式或其展开形式存储到其buffer cache中。压缩数据如何存储在缓冲区缓存中,是压缩的还是未压缩的?
例如,假设我有一个(网页级别)压缩到原来大小的20%的表:
Original size: 100 GB
Compressed size: 20 GB
此外,(专用)主机SQL的这个特定实例服务器正在运行具有24 GB的内存。如果查询执行表扫描,查看所有列(为了举例)并且SQL Server将数据缓存为压缩数据,那么理论上它可以将所有数据放在其缓冲区缓存中,并可用于将来的查询。但是,如果数据缓存未压缩,则明显100 GB的数据无法放入24 GB的服务器内存。
那么,SQL Server如何将压缩数据存储在其缓冲区缓存中?