對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如何將壓縮數據存儲在其緩衝區緩存中?