На моем сервере базы данных OLTP основным узким местом производительности является ввод-вывод. Если я сжимаю свою базу данных, согласно моим расчетам, у меня будет 60% -ное сжатие. Поскольку страницы в памяти также имеют сжатые данные, гораздо больше данных может быть в памяти, что сокращает ввод / вывод. O в значительной степени. Получу ли я значительный выигрыш в производительности за счет меньшего количества операций ввода-вывода?
Речь идет об ограниченном количестве одного ресурса (недостаточно дискового ввода-вывода), запрещающем потребление другого ресурса (процессорного времени). Лучше всего было бы добавить больше дисковых операций ввода-вывода, чтобы можно было использовать весь потенциал производительности ваших серверов.
Если это невозможно или вам не нужно, я думаю, вам следует включить сжатие. По сути, вы откажетесь от «бесплатного» ресурса (процессорного времени, которого у вас слишком много), чтобы получить больше ограничивающего ресурса (дискового ввода-вывода). Выше вы пишете «Процессор редко поднимается выше 80%»; Я полагаю, это означает, что в большинстве случаев у вас есть 20-40% свободного ЦП. Включение сжатия должно работать на этом сервере.
Поскольку страницы в памяти также содержат сжатые данные, в памяти может храниться гораздо больше данных, что значительно снижает количество операций ввода-вывода.
Mnn, это правильно, но, возможно, влияние на производительность будет не таким большим, как вы могли бы надеяться. Это будет зависеть от соотношения между вашим набором кэшированных данных и вашим «рабочим набором данных» до и после включения сжатия.
Обратите внимание, что есть Вам доступны 2 уровня сжатия. Может быть, просто включение сжатия строк будет для вас золотым компромиссом?
Если ваши данные легко сжимаются (например, похожие тексты в текстовых полях и т. Д.) И при условии, что у вас много памяти (чтобы не попасть в файл подкачки), я могу определенно сказать, что все становится быстрее.
Жесткий диск - действительно медленный компонент, поэтому все, что нужно избегать, действительно помогает.
P.S. Эта функция использует довольно много процессора, поэтому примите это во внимание, если ваш процессор уже загружен.
У вас также есть возможность сжимать кластерные индексы, а не каждый индекс. Это даст вам меньшую интенсивность поиска по индексу, но вы должны повысить производительность ввода-вывода, когда вы действительно получите страницы данных из кластеризованного индекса.
В качестве первого шага при переходе на SQL 2008 мы активировали сжатие страниц в кластеризованных индексах, чтобы увидеть, насколько больше ЦП мы используем. Мы набрали примерно 20% скорости, но у нас все еще осталось много ресурсов ЦП (мы используем сервер с четырьмя четырехъядерными процессорами), поэтому в следующем выпуске мы сжимаем и все остальные индексы.
Трудно предсказать, насколько вы выиграете от любой настройки производительности, и решение всегда - ТЕСТ, ТЕСТ и т. Д. ТЕСТ.