Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 173|Отговор: 0

[Бакшиши] SQL Server база данни за компресия на редове таблици и компресия на страници

[Копирай линк]
Публикувано в 9.01.2026 г. 11:20:06 ч. | | | |
Изисквания: В SQL Server базата данни има таблица (например таблица с логове, таблица на логове за заявки), която заема много голямо дисково пространство, може би стотици GB, как да намалите използването на пространството в таблицата? Компресия на данни (спестяване на пространство) може да бъде активирана за силно повтарящ се текст (например HTML, JSON, логове).

Компресия на редове

Компресията ще промени физическото съхранение на данните, но не и логическата структура на данните. Процесът на компресия на линията:

Идентифицирайте типа данни на всяка колона и го конвертирайте в променлива дължина
Накрая, броят на заявките за пространство за съхранение се свежда до реалното търсене
След компресия количеството съхранени данни на всяка страница се увеличава
След компресия намалете обема метаданни
Например, ако типът данни на колона е smallint, системата по подразбиране отделя 2 байта
Но в действителност се използва само 1 байт пространство, и ако компресията е активирана върху таблицата, тя може да бъде отделена при поискване

PAGE компресия

Компресията на страници извършва допълнителни операции за подобряване на компресията на редове
Основни операции: компресия на редове, компресия на префикси, компресия на речник

Консумация на процесора: PAGE компресия > компресия на редове

Тест

Създайте нови таблици Users1 и Users2, и двете вмъкващи по 100 000 парчета данни, и SQL скриптът е следният:
За да се види заетата маса на масата, която е 3.27 MB, командата е следната:
Както е показано по-долу:



За да се види състоянието на компресия на таблицата Users2, командата е следната:
Както е показано по-долу:



sp_estimate_data_compression_savingsОценете спестяванията си, които могат да се постигнат, когато активирате таблици или дялове за редове, страници, колони хранилища, архиви на колони или XML компресия. Командата е следната:
Изходът е следният:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB)        sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB)
Потребители2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Индексът заема ≈ 3.29 MB с текущите настройки на компресия
size_with_requested_compression_setting (KB) 1296 KB Оценен отпечатък ≈ 1.27 MB, ако активирате новия метод за компресия, който искате, като PAGE или ROW
За да се изпълни компресия на страницата, командата е следната:
Сравнение на ефектите:Таблицата Users2 е 3.27 MB преди компресия и 1.23 MB след компресия, както е показано на фигурата по-долу:



Визуализацията е следната:



Препратка:

Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.




Предишен:Проблем с уникалността на полетата за софтуерно изтриване на база данни (tombod)
Следващ:Windows Defender Credential Guard не позволява използването на запазени идентификационни данни
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com