sp_estimated_rowsize_reduction_for_vardecimal (Transact-SQL)
Вычисляет уменьшение среднего размера строк, если в таблице включен формат хранения vardecimal. С помощью этого числа можно вычислить общее уменьшение размера таблицы. Поскольку для вычисления среднего уменьшения размера строки используется статистическая выборка, это значение следует рассматривать только как приблизительное. В редких случаях размер строки может увеличиваться после включения формата хранения vardecimal. Формат хранения vardecimal доступен только в выпусках SQL Server: Enterprise, Developer и Evaluation, начиная с SQL Server 2005 с пакетом обновления 2.
Примечание |
---|
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Пользуйтесь вместо этого сжатием ROW и PAGE. Дополнительные сведения см. в разделе Создание сжатых таблиц и индексов. Влияние сжатия на размер таблиц и индексов см. в разделе sp_estimate_data_compression_savings (Transact-SQL). |
Синтаксис
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
См. также