При использовании сжатия на уровне строк или страниц с SQL Server 2008 R2,хранит ли SQL Server данные в своем буферном кэше в сжатом или расширенном виде.
Например, допустим, у меня есть таблица, которая (на уровне страницы) сжата до 20% его исходный размер:
Original size: 100 GB
Compressed size: 20 GB
Кроме того, (выделенный) хост, на котором работает этот конкретный экземпляр SQL Server, имеет 24 ГБ памяти. Если запрос выполняет сканирование таблицы, просматривая все столбцы (для примера), а SQL Server кэширует данные как сжатые, теоретически он может иметь все данные в своем буферном кеше и быть доступными для будущих запросов. Однако, если данные кэшируются без сжатия, очевидно, что 100 ГБ данных не могут поместиться в 24 ГБ памяти сервера.
Итак, как SQL Server хранит сжатые данные в своем буферном кеше?