Szacowanie rozmiaru sterty
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
Poniższe kroki umożliwiają oszacowanie ilości miejsca wymaganego do przechowywania danych w stercie:
Określ liczbę wierszy, które będą obecne w tabeli:
Num_Rows = liczba wierszy w tabeli
Określ liczbę kolumn o stałej długości i zmiennej długości oraz oblicz miejsce wymagane dla ich magazynu:
Oblicz przestrzeń zajmowaną przez każdą z tych grup kolumn w wierszu danych. Rozmiar kolumny zależy od typu danych i specyfikacji długości.
Num_Cols = całkowita liczba kolumn (o stałej długości i zmiennej długości)
Fixed_Data_Size = całkowity rozmiar bajtów wszystkich kolumn o stałej długości
Num_Variable_Cols = liczba kolumn o zmiennej długości
Max_Var_Size = maksymalny całkowity rozmiar bajtów wszystkich kolumn o zmiennej długości
Część wiersza, znana jako mapa bitowa null, jest zarezerwowana do zarządzania nullowalnością kolumn. Oblicz jego rozmiar:
Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
Należy użyć tylko części całkowitej tego wyrażenia. Odrzuć resztę.
Oblicz rozmiar danych o zmiennej długości:
Jeśli w tabeli znajdują się kolumny o zmiennej długości, określ, ile miejsca jest używane do przechowywania kolumn w wierszu:
Rozmiar_Danych_Zmiennych = 2 + (Liczba_Kolumn_Zmiennych x 2) + Maks_Rozmiar_Zmiennej
Bajty dodane do Max_Var_Size służą do śledzenia każdej kolumny o zmiennej długości. W tej formule przyjęto założenie, że wszystkie kolumny o zmiennej długości są pełne o 100%. Jeśli przewidujesz, że zostanie użyty mniejszy procent miejsca do magazynowania w kolumnie o zmiennej długości, możesz dostosować wartość Max_Var_Size o ten procent, aby uzyskać dokładniejsze oszacowanie ogólnego rozmiaru tabeli.
Notatka
Można połączyć varchar, nvarchar, varbinarylub kolumny sql_variant, które powodują, że łączna zdefiniowana szerokość tabeli przekroczy 8060 bajtów. Długość każdej z tych kolumn musi nadal mieścić się w granicach 8000 bajtów dla kolumny varchar, nvarchar, varbinarylub sql_variant. Jednak ich połączone szerokości mogą przekraczać limit 8060 bajtów w tabeli.
Jeśli nie ma kolumn o zmiennej długości, ustaw wartość Variable_Data_Size na 0.
Oblicz całkowity rozmiar wiersza:
Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4
Wartość 4 w formule to nagłówek wiersza, który jest narzutem dla wiersza danych.
Oblicz liczbę wierszy na stronę (8096 wolnych bajtów na stronę):
Rows_Per_Page = 8096 / (Row_Size + 2)
Ponieważ wiersze nie obejmują stron, liczba wierszy na stronę powinna być zaokrąglona w dół do najbliższego całego wiersza. Wartość 2 w formule odpowiada wpisowi wiersza w tablicy slotów strony.
Oblicz liczbę stron wymaganych do przechowywania wszystkich wierszy:
Liczba_Str = Liczba_Wierszy / Wiersze_Na_Str
Liczba szacowanych stron powinna być zaokrąglona do najbliższej całej strony.
Oblicz ilość miejsca wymaganego do przechowywania danych w stercie (8192 całkowita liczba bajtów na stronę):
Rozmiar sterty (bajty) = 8192 x Num_Pages
To obliczenie nie uwzględnia następujących elementów:
Partycjonowanie
Narzut przestrzeni związany z partycjonowaniem jest minimalny, ale złożony do obliczenia. Nie jest ważne, aby uwzględnić.
Strony alokacji
Istnieje co najmniej jedna strona IAM używana do śledzenia stron przydzielonych do sterty, ale obciążenie przestrzeni jest minimalne i nie istnieje algorytm umożliwiający deterministyczne obliczenie dokładnej liczby stron IAM, które zostaną użyte.
Wartości obiektów dużych (LOB)
Algorytm określający dokładnie, ile miejsca będzie używane do przechowywania typów danych LOB varchar(max), varbinary(max), nvarchar(max), text, ntextxmloraz image, jest złożony. Wystarczy dodać średni rozmiar oczekiwanych wartości LOB i dodać go do całkowitego rozmiaru sterty.
Kompresja
Nie można wstępnie obliczyć rozmiaru skompresowanej sterty.
Kolumny rozrzedłe
Aby uzyskać informacje na temat wymagań dotyczących przestrzeni w kolumnach rzadkich, zobacz Use Sparse Columns.
Zobacz też
Kupki (Tabele bez indeksów klastrowanych)
Indeksy klastrowane i nieklastrowane opisane
tworzenie indeksów klastrowanych
tworzenie indeksów nieklastrowanych
oszacować rozmiar tabeli
oszacować rozmiar klastrowanego indeksu
oszacować rozmiar indeksu nieklastrowanego
oszacować rozmiar bazy danych