Деяка література про стиснення даних SQL Server, яку я читаю, стверджує, що вартість запису збільшується приблизно в чотири рази, ніж зазвичай потрібно. Також, мабуть, мається на увазі, що це головний недолік стиснення даних, що сильно означає, що для архівної бази даних, доступної лише для читання, продуктивність (за кількома винятками) буде покращена за рахунок стиснення даних на 100% заповнених сторінок.
- Чи правдиві твердження вище?
Які основні "варіації" між стисненням даних та іншими способами (для читання)
- "CPU + x%"?
- "IO -y%"?
- виникнення розділеної сторінки?
- використання tempdb?
- Використання оперативної пам’яті?
- А для написання?
Для цього питання можна обмежити контекст стисненням на рівні PAGE великої бази даних (> 1 ТБ) , однак додаткові коментарі завжди вітаються.
Список літератури:
Блог двигуна зберігання SQL Server (сценарій DW показує, що стиснення є дуже вигідним)
Стиснення даних: стратегія, планування потенціалу та найкращі практики
Більш детальний підхід до вирішення питання, що потрібно стиснути, включає аналіз характеристик навантаження для кожної таблиці та індексу. Він базується на таких двох показниках:
U: Відсоток операцій по оновленню певної таблиці, індексу або розділу, відносно загальних операцій на цьому об'єкті. Чим менше значення U (тобто таблиця, індекс або розділ нечасто оновлюється), тим кращим є кандидат на стиснення сторінки.
S: Відсоток операцій сканування на таблиці, індексі чи розділі відносно загальних операцій на цьому об'єкті. Чим вище значення S (тобто в основному сканується таблиця, індекс або розділ), тим кращим є кандидат на стиснення сторінки.
І те, і інше є демонстративно упередженим щодо рекомендування стиснення сторінок для баз даних у стилі DW (читання / ексклюзивні операції з великими даними).