Udostępnij za pośrednictwem


Szacowanie rozmiaru stosu

Poniższe kroki można oszacować ilość miejsca jest wymagana do przechowywania danych w sterty:

  1. Określ liczbę wierszy, które są obecne w tabela:

    Num_Rows = liczba wierszy w tabela

  2. Określ liczbę kolumn o stałej długości i o zmiennej długości i obliczyć miejsca wymaganego dla ich przechowywania.

    Obliczyć ilość miejsca, że zajmuje się każdej z tych grup kolumn w wierszu danych.Specyfikacja typ i długość danych zależy od rozmiaru kolumna.Aby uzyskać więcej informacji, zobacz Typy danych (aparat bazy danych).

    Num_Cols = całkowita liczba kolumn (o stałej długości i o zmiennej długości)

    Fixed_Data_Size = bajt całkowity rozmiar wszystkich kolumn o stałej długości

    Num_Variable_Cols = liczba kolumn o zmiennej długości

    Max_Var_Size = bajt maksymalny całkowity rozmiar wszystkich kolumn o zmiennej długości

  3. Część wiersza, znany jako bitmapy null jest zarezerwowany do zarządzania opcje dopuszczania wartości null kolumna.Obliczyć jej rozmiar:

    Null_Bitmap = 2 + ((Num_Cols + 7) / 8)

    Należy używać tylko część całkowita tego wyrażenie.Odrzucić wszystkie pozostałe.

  4. Oblicz rozmiar danych o zmiennej długości:

    Jeśli istnieją o zmiennej długości kolumny w tabela, ustalić ilość miejsca jest używany do przechowywania kolumny w wierszu:

Variable_Data_Size* = 2 + (Num_Variable_Cols x 2) + *Max_Var_Size

Bajty dodane do ***Max_Var_Size*** dla śledzenia każdej kolumna o zmiennej długości.Formuła ta zakłada, że wszystkie kolumny o zmiennej długości są pełne 100 procent.Jeśli przewidujesz, że będą używane mniejszy procent miejsca o zmiennej długości kolumna, można dopasować ***Max_Var_Size*** wartość przez wartość procentowa na plon dokładniejsze oszacowanie całkowitego rozmiaru tabela.

<div class="alert">


> [!WARNING]
> <P>Można łączyć varchar, nvarchar, varbinary, lub sql_variant kolumny, które powodują szerokość całkowita zdefiniowanej tabela przekracza 8,060 bajtów.The length of each one of these columns must still fall within the limit of 8,000 bytes for a varchar, nvarchar,varbinary, or sql_variant column.Jednak ich szerokości Scalonej może przekroczyć limit bajt 8,060 w tabela.Aby uzyskać więcej informacji, zobacz <A href="ms186981(v=sql.105).md">Przepełnienie wiersz danych powyżej 8 KB</A>.</P>


</div>

Jeśli brak kolumn o zmiennej długości, zestaw ***Variable_Data_Size*** na 0.
  1. Oblicz rozmiar wiersza sumy:

    Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4

    4 W formule wartość narzutów wiersza nagłówka wiersza danych.

  2. Obliczyć liczbę wierszy na strona (8096 bajty wolne na strona):

    Rows_Per_Page = 8096 / (Row_Size + 2)

    Ponieważ wierszy nie obejmują stron, liczbę wierszy strona powinien zaokrąglana niedziałający do najbliższego całego wiersza.2 W formule wartość wpisu wiersza w tablicy gniazdo strona.

  3. Obliczyć liczbę stron wymaganych do przechowywania wszystkich wierszy:

Num_Pages* = Num_Rows / *Rows_Per_Page

Liczba stron szacowany powinny zaokrąglana w górę do najbliższej całej strona.
  1. Obliczyć ilość miejsca jest wymagana do przechowywania danych w stosie (8192 bajty na strona):

    Rozmiar (bajty) sterty = 8192 x Num_Pages

Obliczenie nie rozważyć następujące kwestie:

  • Partycjonowanie

    Miejsca napowietrznych z partycjonowanie jest minimalny, lecz złożone obliczenia.Nie ważne jest uwzględnienie.

  • Podział stron

    Istnieje co najmniej jedna strona IAM, używane do śledzenia stron przydzielonej sterty, ale jest minimalne obciążenie miejsca i nie nie algorytm obliczania deterministically dokładnie używanych stron IAM.

  • Wartości dużych obiektów (LOB)

    The algorithm to determine exactly how much space will be used to store the LOB data types varchar(max), varbinary(max), nvarchar(max), text, ntextxml, and image values is complex.Wystarczy po prostu dodać średni rozmiar wartości LOB, które są oczekiwane i dodać który sterty całkowity rozmiar.

  • Kompresja

    Rozmiar skompresowanych sterty nie pre-calculate.