sp_estimated_rowsize_reduction_for_vardecimal (Transact-SQL)

新建日期: 2006 年 12 月 12 日

估计对表启用 vardecimal 存储格式后行平均大小的减少量。使用该数字可估计表大小的总体减少量。因为使用统计采样来计算行大小的平均减少量,因此只能将该计算结果视为估计值。在极个别的情况下,启用 vardecimal 存储格式后行大小可能会增加。Vardecimal 存储格式仅在 SQL Server 2005 Enterprise Edition、Developer Edition 和 Evaluation Edition 中可用。

语法

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

参数

  • [ @table= ] 'table'
    要更改其存储格式的表的三部分名称。table 的数据类型为 nvarchar(776)

返回代码值

0(成功)或 1(失败)

结果集

返回的结果集可提供有关当前表大小和估计的表大小的信息。

列名 数据类型 说明

avg_rowlen_fixed_format

decimal (12, 2)

以固定十进制存储格式表示行的长度。

avg_rowlen_vardecimal_format

decimal (12, 2)

表示使用 vardecimal 存储格式时的平均行大小。

row_count

int

表中的行数。

备注

使用 sp_estimated_rowsize_reduction_for_vardecimal 估计如果对表启用 vardecimal 存储格式后可以节省的空间。例如,如果行的平均大小能够减少 40%,则表的大小则可能减少 40%。根据填充因子和行大小的具体情况,您可能无法节省空间。例如,如果某行长度为 8000 字节并且您将该行的大小减少 40%,则数据页上仍只能容纳一行。因此不会节省空间。

如果运行 sp_estimated_rowsize_reduction_for_vardecimal 的结果指示表的大小将增长,则表示表中的许多行使用的几乎是 decimal 数据类型的完全精度,并且 vardecimal 存储格式所需的额外少量开销大于 vardecimal 存储格式所带来的节约量。在这种极个别的情况下,不要启用 vardecimal 存储格式。

如果对表启用 vardecimal 存储格式,请使用 sp_estimated_rowsize_reduction_for_vardecimal 进行估计:如果禁用 vardecimal 存储格式,则行的平均大小将为多少。

权限

需要对表具有 CONTROL 权限。

示例

下例估计了 AdventureWorks 数据库中的 Production.WorkOrderRouting 表在压缩后行大小变小的情况。

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)

其他资源

将 Decimal 数据存储为可变长度类型

帮助和信息

获取 SQL Server 2005 帮助