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)
Другие ресурсы
Хранение десятичных данных в виде значений переменной длины