【发布时间】:2011-06-05 02:49:37
【问题描述】:
在 SQL Server 2008 R2 中使用行级或页面级压缩时,SQL Server 会将数据以压缩形式还是扩展形式存储到其buffer cache。
例如,假设我有一个(页面级)压缩到其原始大小的 20% 的表:
Original size: 100 GB
Compressed size: 20 GB
此外,运行此特定 SQL Server 实例的(专用)主机具有 24 GB 内存。如果查询执行表扫描,查看所有列(为了示例)并且 SQL Server 将数据缓存为压缩,理论上它可以将所有数据都放在其缓冲区缓存中,并可用于将来的查询。但是,如果数据是在未压缩的情况下缓存的,那么 100 GB 的数据显然无法容纳 24 GB 的服务器内存。
那么,SQL Server 是如何在其缓冲区缓存中存储压缩数据的呢?
【问题讨论】:
标签: sql-server sql-server-2008 sql-server-2008-r2