Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Система аналитической платформы (PDW)
SQL база данных в Microsoft Fabric
Для оценки размера пространства, требуемого для хранения данных в куче, можно использовать следующую процедуру.
Укажите количество строк в новой таблице:
- Num_Rows = число строк в таблице.
Укажите количество столбцов с фиксированной и изменяемой длиной, а также рассчитайте необходимый размер места для их хранения.
Вычислите размер, занимаемый каждой из этих групп столбцов в строке данных. Размер столбца зависит от типа данных и длины.
- Num_Cols = общее количество столбцов (фиксированной и переменной ширины).
- Fixed_Data_Size = общий размер в байтах всех столбцов фиксированной длины.
- Num_Variable_Cols = количество столбцов переменной длины.
- Max_Var_Size = максимальный общий размер в байтах всех столбцов переменной длины
Часть строки, известная как нулевая битовая карта, зарезервирована для управления возможностью столбца принимать значение NULL. Вычислите ее размер.
- Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
Следует использовать только целую часть этого выражения. Отбросьте остаток.
Расчет размера данных с переменной длиной:
Если таблица содержит столбцы с переменной длиной, определите, сколько пространства потребуется для хранения столбцов в строке:
- Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size
Добавленные к значению Max_Var_Size байты необходимы для отслеживания каждого столбца переменной длины. Эта формула исходит из предположения, что все столбцы переменной длины заполнены на 100 %. Если предполагается, что будет использовано меньше места для хранения столбца изменяемой ширины, можно изменить значение Max_Var_Size в процентах от общей изменяемой ширины для более точного подсчета общего размера таблицы.
Note
Можно сочетать столбцы varchar, nvarchar, varbinaryили sql_variant , в результате чего общая ширина определенной таблицы превысит 8 060 байт. Длина каждого из этих столбцов должна быть в пределах 8000 байт для столбцов типа varchar, nvarchar, varbinary или sql_variant. Однако их объединенные ширины могут превышать 8060-байтового ограничения в таблице.
Если в таблице нет столбцов переменной ширины, присвойте параметру Variable_Data_Size значение 0.
Вычислите общий размер строк:
- Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4
Значение 4 в формуле — это накладные расходы заголовка строки данных.
Вычислите количество строк на страницу (8 096 бесплатных байт на страницу):
- Rows_Per_Page = 8096 / (Row_Size + 2)
Так как строки не охватывают страницы, количество строк на страницу должно быть округлено до ближайшей целой строки. Значение 2 в формуле соответствует записи строки в массиве слотов страницы.
Вычислите количество страниц, необходимое для хранения всех строк:
- Кол-во_страниц = Кол-во_строк / Строк_на_страницу
Вычисленное количество страниц должно быть округлено в большую сторону до ближайшей целой страницы.
Вычислите объем пространства, необходимого для хранения данных в куче (8 192 байтов на страницу):
Размер кучи (в байтах) = 8192 x Num_Pages
Этот расчет не учитывает следующие условия:
Секционирование: затраты на пространство от секционирования минимальны, но сложны для вычисления. Не важно, чтобы это было включено.
Страницы выделения: используется по крайней мере одна страница IAM для отслеживания страниц, выделенных для кучи, но накладные расходы на пространство минимальны, и нет алгоритма, чтобы определённо рассчитать точное количество страниц IAM, которые будут использованы.
Большие значения объектов (LOB): алгоритм, определяющий, сколько пространства будет использоваться для хранения типов данных LOB varchar(max), varbinary(max), nvarchar(max), text, ntextxml и image, является сложным. Достаточно просто добавить средний размер ожидаемых значений LOB и включить его в общий размер кучи.
Сжатие. Вы не можете предварительно вычислить размер сжатой кучы.
Разреженные столбцы: сведения о требованиях к пространству разреженных столбцов см. в разделе "Использование разреженных столбцов".