Как сжатые или несжатые данные хранятся в буферном кеше?

При использовании сжатия на уровне строк или страниц с SQL Server 2008 R2,хранит ли SQL Server данные в своем буферном кэше в сжатом или расширенном виде.

Например, допустим, у меня есть таблица, которая (на уровне страницы) сжата до 20% его исходный размер:

Original size:  100 GB
Compressed size: 20 GB

Кроме того, (выделенный) хост, на котором работает этот конкретный экземпляр SQL Server, имеет 24 ГБ памяти. Если запрос выполняет сканирование таблицы, просматривая все столбцы (для примера), а SQL Server кэширует данные как сжатые, теоретически он может иметь все данные в своем буферном кеше и быть доступными для будущих запросов. Однако, если данные кэшируются без сжатия, очевидно, что 100 ГБ данных не могут поместиться в 24 ГБ памяти сервера.

Итак, как SQL Server хранит сжатые данные в своем буферном кеше?

6
задан Michael Goldshteyn 5 June 2011 в 03:07
поделиться