Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 173|Odpowiedź: 0

[Napiwki] Kompresja wierszy tabel SQL Server i kompresja stron

[Skopiuj link]
Opublikowano 09.01.2026 11:20:06 | | | |
Wymagania: W bazie danych SQL Server istnieje tabela (np. tabela logów, tabela logów żądań), która zajmuje bardzo dużą przestrzeń na dysku, może setki GB, jak zmniejszyć zużycie przestrzeni w tabeli? Kompresja danych (oszczędzająca miejsce) może być włączona dla bardzo powtarzalnego tekstu (np. HTML, JSON, logi).

Kompresja ROW

Kompresja zmienia fizyczną pamięć danych, ale nie ich strukturę logiczną. Proces kompresji linii:

Zidentyfikuj typ danych każdej kolumny i przekonwertuj go na zmienną długość
Wreszcie, liczba żądań do miejsca przechowywania zostaje zmniejszona do rzeczywistego zapotrzebowania
Po kompresji ilość przechowywanych danych na każdej stronie jest zwiększana
Po kompresji zmniejsz ilość metadanych
Na przykład, jeśli typ danych kolumny jest smallint, system domyślnie przydziela 2 bajty
W rzeczywistości jednak używa się tylko 1 bajtu przestrzeni, a jeśli kompresja jest włączona na tabeli, można ją przydzielać na żądanie

Kompresja PAGE

Kompresja strony wykonuje dodatkowe operacje poprawiające kompresję wierszy
Główne operacje: kompresja linii, kompresja prefiksów, kompresja słownikowa

Zużycie CPU: kompresja PAGE > kompresja wiersza

Test

Utworzenie nowych tabel Users1 i Users2, obie wstaw 100 000 fragmentów danych, a skrypt SQL wygląda następująco:
Aby zobaczyć obsadność przestrzeni w tabeli, która wynosi 3,27 MB, polecenie jest następujące:
Jak pokazano poniżej:



Aby zobaczyć status kompresji tabeli Users2, polecenie jest następujące:
Jak pokazano poniżej:



sp_estimate_data_compression_savingsOszacuj oszczędności, które mogą nastąpić, gdy włączysz tabele lub partycje dla wierszy, stron, magazynów kolumn, archiwów magazynu kolumn lub kompresji XML. Polecenie brzmi następująco:
Wyniki są następujące:
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)
Users2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Indeks zajmuje ≈ 3,29 MB przy obecnych ustawieniach kompresji
size_with_requested_compression_setting (KB) 1296 KB Szacowana powierzchnia ≈ 1,27 MB, jeśli włączysz nową metodę kompresji, o którą prosisz, taką jak PAGE lub ROW
Aby wykonać kompresję strony, polecenie wygląda następująco:
Porównanie efektów:Tabela Users2 to 3,27 MB przed kompresją i 1,23 MB po kompresji, jak pokazano na poniższym rysunku:



Wizualizacja wygląda następująco:



Odniesienie:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.




Poprzedni:Problem z unikalnością pola miękkiego usuwania bazy danych (tombod)
Następny:Windows Defender Credential Guard nie pozwala na korzystanie z zapisanych poświadczeń
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com