sp_estimated_rowsize_reduction_for_vardecimal (Transact-SQL)

Добавления: 12 декабря 2006 г.

Вычисляет уменьшение среднего размера строк, если в таблице включен формат хранения vardecimal. С помощью этого числа можно вычислить общее уменьшение размера таблицы. Поскольку для вычисления среднего уменьшения размера строки используется статистическая выборка, это значение следует рассматривать только как приблизительное. В редких случаях размер строки может увеличиваться после включения формата хранения vardecimal. Формат хранения vardecimal доступен только в следующих выпусках SQL Server 2005: Enterprise, Developer и Evaluation.

Синтаксис

sp_estimated_rowsize_reduction_for_vardecimal [ [ @table_name = ] 'table' ] [;]

Аргументы

  • [ @table= ] 'table'
    Трехсоставное имя таблицы, для которой изменяется формат хранения. Параметр table имеет тип nvarchar(776).

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Приведенный ниже результирующий набор содержит сведения о текущем и вычисленном размере таблицы.

Имя столбца Тип данных Описание

avg_rowlen_fixed_format

decimal (12, 2)

Представляет длину строки в формате хранения fixed decimal.

avg_rowlen_vardecimal_format

decimal (12, 2)

Представляет средний размер строки при использовании формата хранения vardecimal.

row_count

int

Количество строк в таблице.

Замечания

С помощью хранимой процедуры sp_estimated_rowsize_reduction_for_vardecimal можно вычислить экономию, которую дает включение формата хранения vardecimal в таблице. Например, если средний размер строки можно уменьшить на 40%, то размер самой таблицы также можно потенциально уменьшить на 40%. Наличие экономии места зависит от коэффициента заполнения и размера строки. Например, если длина строки, составляющая 8 000 байт, уменьшается на 40%, то на странице данных все равно помещается только одна строка. Экономии места не происходит.

Если результаты выполнения хранимой процедуры sp_estimated_rowsize_reduction_for_vardecimal показывают, что размер таблицы будет увеличиваться, то это означает, что в таблице используется почти полная точность типов данных decimal, а небольшой объем затрат, необходимый для использования формата хранения vardecimal, больше, чем экономия места от применения этого формата. В этом редком случае формат хранения vardecimal включать не следует.

Если в таблице включен формат хранения vardecimal, следует с помощью хранимой процедуры sp_estimated_rowsize_reduction_for_vardecimal вычислить средний размер, который будут иметь строки при отключении этого формата.

Разрешения

Необходимо разрешение CONTROL на таблицу.

Примеры

В следующем примере вычисляется уменьшение размера строк при сжатии таблицы Production.WorkOrderRouting в базе данных AdventureWorks.

USE AdventureWorks
GO
EXEC sp_estimated_rowsize_reduction_for_vardecimal 'Production.WorkOrderRouting' ;
GO

См. также

Справочник

sp_db_vardecimal_storage_format (Transact-SQL)
sp_tableoption (Transact-SQL)
Хранимые процедуры ядра СУБД (Transact-SQL)

Другие ресурсы

Хранение десятичных данных в виде значений переменной длины

Справка и поддержка

Получение помощи по SQL Server 2005